From eef93b19fc8e1656c05030f5efa244a892c0f8ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Tue, 4 Dec 2018 23:32:59 +0100 Subject: [PATCH] Update Weblate template from Sphinx templates --- weblate/docs.pot | 2155 +++++++++++++++++++++++++--------------------- 1 file changed, 1178 insertions(+), 977 deletions(-) diff --git a/weblate/docs.pot b/weblate/docs.pot index 42c6db79d8..ea1c41354a 100644 --- a/weblate/docs.pot +++ b/weblate/docs.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2018-11-20 12:09+0100\n" +"POT-Creation-Date: 2018-12-04 23:31+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -57,9 +57,9 @@ msgid "" "Submit an issue or pull request on the `GitHub repository `_, help us `translate the documentation " "`_ into your language, or " -"discuss with us on either the ``#documentation`` channel on `Discord " -"`_, or the ``#godotengine-doc`` channel on `irc." -"freenode.net `_!" +"talk to us on either the ``#documentation`` channel on `Discord `_, or the ``#godotengine-doc`` channel on `irc.freenode." +"net `_!" msgstr "" #: ../../docs/index.rst:43 @@ -125,7 +125,6 @@ msgstr "" #: ../../docs/tutorials/3d/high_dynamic_range.rst:7 #: ../../docs/tutorials/3d/using_gridmaps.rst:7 #: ../../docs/tutorials/3d/using_multi_mesh_instance.rst:7 -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:7 #: ../../docs/tutorials/audio/audio_buses.rst:7 #: ../../docs/tutorials/audio/audio_streams.rst:7 #: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:7 @@ -144,6 +143,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:7 #: ../../docs/tutorials/shading/screen-reading_shaders.rst:7 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:7 +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:7 #: ../../docs/tutorials/networking/ssl_certificates.rst:7 #: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:7 #: ../../docs/tutorials/vr/vr_starter_tutorial.rst:7 @@ -284,9 +284,9 @@ msgstr "" #: ../../docs/about/introduction.rst:85 msgid "" -"The :ref:`sec-community` gives information related to contributing to the " -"engine development and the life of its community, e.g. how to report bugs, " -"help with the documentation, etc. It also points to various community " +"The :ref:`sec-community` section gives information related to contributing " +"to the engine development and the life of its community, e.g. how to report " +"bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." msgstr "" @@ -1227,7 +1227,7 @@ msgid "It can be extended (to have more functions)." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:39 -msgid "It can be added to other nodes as a child." +msgid "It can be added to another node as a child." msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:43 @@ -1694,7 +1694,7 @@ msgid "" "Designing based on scenes replaces that approach and makes development much " "faster and more straightforward, allowing you to concentrate on the game " "logic itself. Because most game components map directly to a scene, using a " -"design-based on scene instantiation means little other architectural code is " +"design based on scene instantiation means little other architectural code is " "needed." msgstr "" @@ -1769,13 +1769,13 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:13 msgid "" -"This is great, mostly due the large amount of flexibility provided, but it " -"also makes our work supporting languages more difficult." +"This is great, mostly due to the large amount of flexibility provided, but " +"it also makes our work supporting languages more difficult." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:16 msgid "" -"The \"Main\" languages in Godot, though, are GDScript and VisualScript. The " +"The \"main\" languages in Godot, though, are GDScript and VisualScript. The " "main reason to choose them is their level of integration with Godot, as this " "makes the experience smoother; both have slick editor integration, while C# " "and C++ need to be edited in a separate IDE. If you are a big fan of " @@ -2019,8 +2019,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:139 msgid "" -"In GDScript the file itself represents the class, so the class name field is " -"not editable." +"In GDScript, the file itself represents the class, so the class name field " +"is not editable." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:142 @@ -2044,7 +2044,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:156 msgid "" "To edit the script, select either of these buttons, both of which are " -"highlighted in the above image. This will bring you to the script editor " +"highlighted in the above image. This will bring you to the script editor, " "where a default template will be included:" msgstr "" @@ -2118,7 +2118,7 @@ msgid "" "The top-left section displays a list of your scene's nodes with the emitting " "node's name highlighted in red. Select the \"Panel\" node here. When you " "select a node, the NodePath at the bottom will automatically update to point " -"a relative path from the emitting node to the selected node." +"to a relative path from the emitting node to the selected node." msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:210 @@ -2132,7 +2132,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:215 msgid "" "And that concludes the guide on how to use the visual interface. However, " -"this is a scripting tutorial, so for the sake of learning, let's dive in to " +"this is a scripting tutorial, so for the sake of learning, let's dive into " "the manual process!" msgstr "" @@ -2472,6 +2472,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1458 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:183 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:679 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "" @@ -2942,7 +2943,7 @@ msgstr "" msgid "" "Now we can use the ``_process()`` function to define what the player will " "do. ``_process()`` is called every frame, so we'll use it to update elements " -"of our game which we expect will change often. Here we'll make it:" +"of our game, which we expect will change often. Here we'll make it:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:202 @@ -3068,7 +3069,7 @@ msgstr "" msgid "" "Play the scene again and check that the animations are correct in each of " "the directions. When you're sure the movement is working correctly, add this " -"line to ``_ready()`` so the player will be hidden when the game starts:" +"line to ``_ready()``, so the player will be hidden when the game starts:" msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:387 @@ -3277,7 +3278,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:617 msgid "" -"Now add the following nodes as children of ``Main``, and name them as shown " +"Now, add the following nodes as children of ``Main``, and name them as shown " "(values are in seconds):" msgstr "" @@ -3375,7 +3376,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:667 msgid "" -"Add a script to ``Main``. At the top of the script we use ``export " +"Add a script to ``Main``. At the top of the script, we use ``export " "(PackedScene)`` to allow us to choose the Mob scene we want to instance." msgstr "" @@ -3403,7 +3404,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:782 msgid "" -"In ``_on_MobTimer_timeout()`` we will create a mob instance, pick a random " +"In ``_on_MobTimer_timeout()``, we will create a mob instance, pick a random " "starting location along the ``Path2D``, and set the mob in motion. The " "``PathFollow2D`` node will automatically rotate as it follows the path, so " "we will use that to select the mob's direction as well as its position." @@ -3901,7 +3902,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:122 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 #: ../../docs/development/compiling/compiling_with_mono.rst:126 msgid "Export templates" msgstr "" @@ -3957,8 +3958,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:156 msgid "" -"In the \"Resources\" and \"Features\" tabs you can customize how the game is " -"exported for each platform. We can leave those settings alone for now." +"In the \"Resources\" and \"Features\" tabs, you can customize how the game " +"is exported for each platform. We can leave those settings alone for now." msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:160 @@ -4034,7 +4035,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:203 msgid "" -"Next, create a debug keystore with by running the following command on your " +"Next, create a debug keystore by running the following command on your " "system's command line:" msgstr "" @@ -4131,7 +4132,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:273 msgid "" "Viewing the `.html` file in your browser lets you play the game. However, " -"you can't open the file directly, it neds to be served by a web server. If " +"you can't open the file directly, it needs to be served by a web server. If " "you don't have one set up on your computer, you can use Google to find " "suggestions for your specific OS." msgstr "" @@ -4217,14 +4218,14 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:38 msgid "" "A Godot scene could be a Weapon, a Character, an Item, a Door, a Level, part " -"of a level… anything you’d like. It works like a class in pure code except " +"of a level… anything you’d like. It works like a class in pure code, except " "you’re free to design it by using the editor, using only the code, or mixing " "and matching the two." msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:43 msgid "" -"It’s different from prefabs you find in several 3D engines as you can then " +"It’s different from prefabs you find in several 3D engines, as you can then " "inherit from and extend those scenes. You may create a Magician that extends " "your Character. Modify the Character in the editor and the Magician will " "update as well. It helps you build your projects so that their structure " @@ -4333,7 +4334,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 msgid "" "On the other hand, an open codebase means you can **learn from and extend " -"the engine** to your heart’s content. You can also debug games easily as " +"the engine** to your heart’s content. You can also debug games easily, as " "Godot will print errors with a stack trace, even if they come from the " "engine itself." msgstr "" @@ -4379,7 +4380,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:151 msgid "" -"This leads to a reliable and flexible UI system as it powers the editor " +"This leads to a reliable and flexible UI system, as it powers the editor " "itself. With the ``tool`` keyword, you can run any game code in the editor." msgstr "" @@ -4419,7 +4420,7 @@ msgid "" "Computer displays, mobile phones, and TV screen come in all shapes and " "sizes. To ship a game, you'll need to support different screen ratios and " "resolutions. It can be hard to build responsive interfaces that adapt to all " -"platforms. Thankfully, Godot comes with robust tools to design and manage " +"platforms. Thankfully, Godot comes with robust tools to design and manage a " "responsive User Interface. To design your UI, you'll use the Control nodes. " "These are the nodes with green icons in the editor. There are dozens of " "them, to create anything from life bars to complex applications. Godot's " @@ -4460,9 +4461,9 @@ msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:30 msgid "" "Only use Control nodes when you design your interfaces. They have unique " -"properties that allow them to work with one another. Other nodes like " +"properties that allow them to work with one another. Other nodes, like " "Node2D, Sprite, etc. will not work. You can still use some nodes that work " -"with others like the AnimationPlayer, Tween or the StreamPlayer. Control " +"with others, like the AnimationPlayer, Tween or the StreamPlayer. Control " "nodes are CanvasItems like Node2D, so you can apply shaders to them." msgstr "" @@ -4550,7 +4551,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:74 msgid "" "**TextureRect** displays a texture or image inside a UI. It seems similar to " -"the Sprite node but it offers multiple scaling modes. Set the Stretch Mode " +"the Sprite node, but it offers multiple scaling modes. Set the Stretch Mode " "property to change its behavior:" msgstr "" @@ -4667,7 +4668,7 @@ msgid "" "Label section, in the Inspector. Write the text in the ``Text`` property, " "and check Autowrap if you want it to respect the textbox's size. If Autowrap " "is off, you won't be able to scale the node. You can align the text " -"horizontally and vertically with Align and Valign respectively." +"horizontally and vertically with Align and Valign, respectively." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:152 @@ -4715,7 +4716,7 @@ msgstr "" msgid "" "The two approaches are not always compatible. Because a container controls " "its children, you cannot use the layout menu on them. Each container has a " -"specific effect so you may need to nest several of them to get a working " +"specific effect, so you may need to nest several of them to get a working " "interface. With the layout approach you work from the bottom up, on the " "children. As you don't insert extra containers in the scene it can make for " "cleaner hierarchies, but it's harder to arrange items in a row, column, " @@ -4857,7 +4858,7 @@ msgid "" "Containers automatically arrange all children Control nodes including other " "containers in rows, columns, and more. Use them to add padding around your " "interface or center nodes in their bounding rectangles. All built-in " -"containers update in the editor so you can see the effect instantly." +"containers update in the editor, so you can see the effect instantly." msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:281 @@ -4965,7 +4966,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:350 msgid "" "Godot's UI system is complex, and has a lot more to offer. To learn how to " -"design more advanced interface, head to the :ref:`GUI section ` of the docs." msgstr "" @@ -4989,7 +4990,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:12 msgid "" -"You will learn how to design game UI efficiently, and how to use Godot's " +"You will learn how to design game UIs efficiently, and how to use Godot's " "Control nodes. This page focuses on the visual part: everything you do from " "the editor. To learn how to code a life bar, read :doc:`ui_code_a_life_bar`" msgstr "" @@ -5316,9 +5317,10 @@ msgid "" "To center the characters on the right, we'll use a ``CenterContainer``. Add " "a ``CenterContainer`` node as a child of the ``HBoxContainer``. Then in the " "Inspector, scroll down to the ``Size Flags`` category and click on the field " -"to the right of the ``Vertical`` property, and check ``Expand``. Do the same " -"for the ``Horizontal`` property. Finally drag and drop the Characters into " -"the ``CenterContainer``. The Characters element will center automatically." +"to the right of the ``Vertical`` property, and check ``Expand`` in addition " +"to ``Fill``. Do the same for the ``Horizontal`` property. Finally drag and " +"drop the Characters into the ``CenterContainer``. The Characters element " +"will center automatically." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:228 @@ -5348,8 +5350,9 @@ msgid "" "expand to take as much vertical space as possible. Select the " "``MenuOptions`` node. In the Inspector, scroll down to the ``Size Flags`` " "category. Click on the field to the right of the ``Vertical`` property, and " -"check ``Expand``. The container expands to take all the available vertical " -"space. But it respects its neighbors, the ``Logo`` and ``Version`` elements." +"check ``Expand`` in addition to ``Fill``. The container expands to take all " +"the available vertical space. But it respects its neighbors, the ``Logo`` " +"and ``Version`` elements." msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:252 @@ -5389,8 +5392,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/ui_main_menu.rst:279 msgid "" -"Responsive User Interface is all about making sure our UIs scale well on all " -"screen types. TV screens and computer displays have different sizes and " +"A responsive User Interface is all about making sure our UIs scale well on " +"all screen types. TV screens and computer displays have different sizes and " "ratios. In Godot, we use containers to control the position and the size of " "UI elements." msgstr "" @@ -6292,7 +6295,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:9 msgid "" -"In this tutorial you will connect a character to a life bar and animate the " +"In this tutorial, you will connect a character to a life bar and animate the " "health loss." msgstr "" @@ -6361,9 +6364,9 @@ msgid "" "out some message. Other nodes can connect to the object that **emits** the " "signal and receive the information. It's a powerful tool we use a lot for " "User Interface and achievement systems. You don't want to use them " -"everywhere though. Connecting two nodes adds some coupling between them. " +"everywhere, though. Connecting two nodes adds some coupling between them. " "When there's a lot of connections, they become hard to manage. For more " -"information on check out the `signals video tutorial `_ on GDquest." msgstr "" @@ -6380,12 +6383,12 @@ msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:58 msgid "" -"Load the ``start`` project in Godot. In the ``FileSystem`` dock double click " -"on LevelMockup.tscn to open it. It's an RPG game's mockup where 2 characters " -"face each other. The pink enemy attacks and damages the green square at " -"regular time intervals, until its death. Feel free to try out the game: the " -"basic combat mechanics already work. But as the character isn't connected to " -"the life bar the ``GUI`` doesn't do anything." +"Load the ``start`` project in Godot. In the ``FileSystem`` dock, double " +"click on LevelMockup.tscn to open it. It's an RPG game's mockup where 2 " +"characters face each other. The pink enemy attacks and damages the green " +"square at regular time intervals, until its death. Feel free to try out the " +"game: the basic combat mechanics already work. But as the character isn't " +"connected to the life bar, the ``GUI`` doesn't do anything." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:68 @@ -6408,8 +6411,9 @@ msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:77 msgid "" -"The GUI scene encapsulates all of the Game User Interface. It comes with a " -"barebones script where we get the path to nodes that exist inside the scene:" +"The GUI scene encapsulates all of the game's Graphical User Interface. It " +"comes with a barebones script where we get the path to nodes that exist " +"inside the scene:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:105 @@ -6585,10 +6589,10 @@ msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:219 msgid "" -"With this in mind let's connect the ``GUI`` to the ``Player``. Click on the " +"With this in mind, let's connect the ``GUI`` to the ``Player``. Click on the " "``Player`` node in the scene dock to select it. Head down to the Inspector " -"and click on the Node tab. This is the place to connect nodes to listen the " -"one you selected." +"and click on the Node tab. This is the place to connect nodes to listen to " +"the one you selected." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:224 @@ -6667,16 +6671,16 @@ msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:274 msgid "" "Inside the parens after the function name, add a ``player_health`` argument. " -"When the player emits the ``health_changed`` signal it will send its current " -"``health`` alongside it. Your code should look like:" +"When the player emits the ``health_changed`` signal, it will send its " +"current ``health`` alongside it. Your code should look like:" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:292 msgid "" "The engine does not convert PascalCase to snake_case, for C# examples we'll " -"be using PascalCase for method names & camelCase for method parameters which " -"follows the official `C# naming conventions. `_" +"be using PascalCase for method names & camelCase for method parameters, " +"which follows the official `C# naming conventions. `_" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:299 @@ -6687,7 +6691,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:302 msgid "" -"Inside ``_on_Player_health_changed`` let's call a second function called " +"Inside ``_on_Player_health_changed``, let's call a second function called " "``update_health`` and pass it the ``player_health`` variable." msgstr "" @@ -6729,7 +6733,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:350 msgid "" "``str`` is a built-in function that converts about any value to text. " -"``Number``'s ``text`` property requires a string so we can't assign it to " +"``Number``'s ``text`` property requires a string, so we can't assign it to " "``new_value`` directly" msgstr "" @@ -6756,7 +6760,7 @@ msgid "" "Our interface is functional, but it could use some animation. That's a good " "opportunity to introduce the ``Tween`` node, an essential tool to animate " "properties. ``Tween`` animates anything you'd like from a start to an end " -"state over a certain duration. For example it can animate the health on the " +"state over a certain duration. For example, it can animate the health on the " "``TextureProgress`` from its current level to the ``Player``'s new " "``health`` when the character takes damage." msgstr "" @@ -6905,7 +6909,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:531 -msgid "The animation is smooth but the number is broken" +msgid "The animation is smooth, but the number is broken" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:533 @@ -6920,7 +6924,7 @@ msgid "Try the game again to see a nice blocky animation." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:559 -msgid "By rounding out animated\\_health we hit two birds with one stone" +msgid "By rounding out animated\\_health, we kill two birds with one stone" msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:563 @@ -6998,7 +7002,7 @@ msgstr "" msgid "" "``modulate`` takes a ``Color`` value with 4 channels: red, green, blue and " "alpha. If we darken any of the first three channels it darkens the " -"interface. If we lower the alpha channel our interface fades out." +"interface. If we lower the alpha channel, our interface fades out." msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:615 @@ -7025,7 +7029,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:654 msgid "" -"This time we change the ``modulate`` property and have it animate from " +"This time, we change the ``modulate`` property and have it animate from " "``start_color`` to the ``end_color``. The duration is of one second, with a " "linear transition. Here again, because the transition is linear, the easing " "does not matter. Here's the complete ``_on_Player_died`` method:" @@ -7162,9 +7166,9 @@ msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:38 msgid "" -"Now that we have an animation the property editor enters \"animation editing" +"Now that we have an animation, the property editor enters \"animation editing" "\" mode. In this mode, a key icon appears next to every property of the " -"property editor. In Godot any property of an object can be animated:" +"property editor. In Godot, any property of an object can be animated:" msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:46 @@ -7233,16 +7237,16 @@ msgstr "" msgid "" "Up to this tutorial, we focused on the :ref:`Node ` class in " "Godot as that's the one you use to code behavior and most of the engine's " -"features rely on them. There is another datatype that is just as important: :" +"features rely on it. There is another datatype that is just as important: :" "ref:`Resource `." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:15 msgid "" "*Nodes* give you functionality: they draw sprites, 3D models, simulate " -"physics, arrange user interface, etc. **Resources** are **data containers**. " -"They don't do anything on their own: instead nodes use the data contained in " -"resources." +"physics, arrange user interfaces, etc. **Resources** are **data " +"containers**. They don't do anything on their own: instead, nodes use the " +"data contained in resources." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:19 @@ -7259,14 +7263,14 @@ msgstr "" msgid "" "When the engine loads a resource from disk, **it only loads it once**. If a " "copy of that resource is already in memory, trying to load the resource " -"again will return the same copy every time. As resources only contain data " +"again will return the same copy every time. As resources only contain data, " "there is no need to duplicate them." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:31 msgid "" "Every object, be it a Node or a Resource, can export properties. There are " -"many types of Properties like String, integer, Vector2, etc., and any of " +"many types of Properties, like String, integer, Vector2, etc., and any of " "these types can become a resource. This means that both nodes and resources " "can contain resources as properties:" msgstr "" @@ -7297,16 +7301,16 @@ msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:51 msgid "" -"Clicking the resource preview allows us to view and edit the resources " +"Clicking the resource preview allows us to view and edit the resource's " "properties." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:55 msgid "" -"The path property tells us where the resource comes from. In this case it " +"The path property tells us where the resource comes from. In this case, it " "comes from a PNG image called ``robi.png``. When the resource comes from a " "file like this, it is an external resource. If you erase the path or this " -"path is empty, it becomes built-in resource." +"path is empty, it becomes a built-in resource." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:60 @@ -7368,7 +7372,7 @@ msgid "" "The approach has several advantages. As the :ref:`PackedScene.instance() " "` function is pretty fast, you can create new " "enemies, bullets, effects, etc. without having to load them again from disk " -"each time. Remember that as always, images, meshes, etc. are all shared " +"each time. Remember that, as always, images, meshes, etc. are all shared " "between the scene instances." msgstr "" @@ -7398,7 +7402,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:158 msgid "" -"This comes with many distinct advantages over alternative data structures " +"This comes with many distinct advantages over alternative data structures, " "such as JSON, CSV, or custom TXT files. Users can only import these assets " "as a :ref:`Dictionary ` (JSON) or as a :ref:`File " "` to parse. What sets Resources apart is their inheritance of :" @@ -7544,7 +7548,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:352 msgid "" -"CurveTables are the same thing except mapped to an Array of float values or " +"CurveTables are the same thing, except mapped to an Array of float values or " "a :ref:`Curve `/:ref:`Curve2D ` resource object." msgstr "" @@ -7574,7 +7578,7 @@ msgid "" "File systems are yet another hot topic in engine development. The file " "system manages how the assets are stored and how they are accessed. A well-" "designed file system also allows multiple developers to edit the same source " -"files and assets while collaborating together." +"files and assets while collaborating." msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:14 @@ -7606,7 +7610,7 @@ msgstr "" msgid "" "In general, the Godot file system avoids using metadata files. The reason " "for this is simple, existing asset managers and VCSs are simply much better " -"than anything we can implement, so Godot tries the best to play along with " +"than anything we can implement, so Godot tries its best to play along with " "SVN, Git, Mercurial, Perforce, etc." msgstr "" @@ -8041,9 +8045,9 @@ msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:53 msgid "" "Here you can add any number of scenes or scripts. Each entry in the list " -"requires a name, which assigned as the node's ``name`` property. The order " -"of the entries as they added to the global scene tree can be manipulated " -"using the up/down arrow keys." +"requires a name, which is assigned as the node's ``name`` property. The " +"order of the entries as they are added to the global scene tree can be " +"manipulated using the up/down arrow keys." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:60 @@ -8352,7 +8356,7 @@ msgid "" "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." +"to VCS systems, such as Git, Subversion, or Mercurial." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:62 @@ -8432,7 +8436,7 @@ msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:95 msgid "" -"Godot's scene system is different: it actually consists in a tree made of " +"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 " @@ -8549,12 +8553,12 @@ msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:148 msgid "" -"Second, it allows the extraction 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." +"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." msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:151 @@ -8606,7 +8610,7 @@ msgstr "" #: ../../docs/getting_started/editor/unity_to_godot.rst:177 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 " +"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, " @@ -10041,7 +10045,7 @@ msgstr "" msgid "" "GDScript arrays are allocated linearly in memory for speed. Large arrays " "(more than tens of thousands of elements) may however cause memory " -"fragmentation. If this is a concern special types of arrays are available. " +"fragmentation. If this is a concern, special types of arrays are available. " "These only accept a single data type. They avoid memory fragmentation and " "also use less memory but are atomic and tend to run slower than generic " "arrays. They are therefore only recommended to use for large data sets:" @@ -10421,7 +10425,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:869 msgid "" -"Remove any ``break``'s. If you don't want to ``break`` by default you can " +"Remove any ``break``s. If you don't want to ``break`` by default, you can " "use ``continue`` for a fallthrough." msgstr "" @@ -10500,7 +10504,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:935 msgid "" "The length of the array is tested first, it has to be the same size as the " -"pattern, otherwise the pattern don't match." +"pattern, otherwise the pattern doesn't match." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:937 @@ -10526,7 +10530,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:954 msgid "" "The size of the dictionary is tested first, it has to be the same size as " -"the pattern, otherwise the pattern don't match." +"the pattern, otherwise the pattern doesn't match." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:956 @@ -10737,9 +10741,9 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1212 msgid "" "One of the fundamental benefits of exporting member variables is to have " -"them visible and editable in the editor. This way artists and game designers " -"can modify values that later influence how the program runs. For this, a " -"special export syntax is provided." +"them visible and editable in the editor. This way, artists and game " +"designers can modify values that later influence how the program runs. For " +"this, a special export syntax is provided." msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1298 @@ -10784,7 +10788,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1333 msgid "" -"Exporting arrays works but with an important caveat: While regular arrays " +"Exporting arrays works, but with an important caveat: While regular arrays " "are created local to every class instance, exported arrays are *shared* " "between all instances. This means that editing them in one instance will " "cause them to change in all other instances. Exported arrays can have " @@ -10830,7 +10834,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1411 msgid "" -"As said *local* access will *not* trigger the setter and getter. Here is an " +"As said, *local* access will *not* trigger the setter and getter. Here is an " "illustration of this:" msgstr "" @@ -10841,7 +10845,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1428 msgid "" "Scripts, by default, don't run inside the editor and only the exported " -"properties can be changed. In some cases it is desired that they do run " +"properties can be changed. In some cases, it is desired that they do run " "inside the editor (as long as they don't execute game code or manually avoid " "doing so). For this, the ``tool`` keyword exists and must be placed at the " "top of the file:" @@ -10912,7 +10916,7 @@ msgid "" "immediately return from the current function, with the current frozen state " "of the same function as the return value. Calling ``resume`` on this " "resulting object will continue execution and return whatever the function " -"returns. Once resumed the state object becomes invalid. Here is an example:" +"returns. Once resumed, the state object becomes invalid. Here is an example:" msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1542 @@ -10932,7 +10936,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1577 msgid "" "The real strength of using ``yield`` is when combined with signals. " -"``yield`` can accept two parameters, an object and a signal. When the signal " +"``yield`` can accept two arguments, an object and a signal. When the signal " "is received, execution will recommence. Here are some examples:" msgstr "" @@ -19305,7 +19309,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:469 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:132 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 msgid "Tools" msgstr "" @@ -22239,8 +22243,7 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:111 msgid "" "Always make sure to set a shadow *Max Distance* according to what the scene " -"needs. The closer the max distance, the higher quality they shadows will " -"have." +"needs. A lower maximum distance will result in better-looking shadows." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:114 @@ -22453,9 +22456,9 @@ msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:228 msgid "" -"This allocation strategy works for most games, but you may to use a separate " -"one in some cases (as example, a top-down game where all lights are around " -"the same size and quadrands may have all the same subdivision)." +"This allocation strategy works for most games, but you may want to use a " +"separate one in some cases (as example, a top-down game where all lights are " +"around the same size and quadrants may have all the same subdivision)." msgstr "" #: ../../docs/tutorials/3d/lights_and_shadows.rst:232 @@ -24439,7 +24442,7 @@ msgid ":ref:`CSGMesh `" msgstr "" #: ../../docs/tutorials/3d/csg_tools.rst:23 -msgid ":ref:`CSGCombiner '" +msgid ":ref:`CSGCombiner `" msgstr "" #: ../../docs/tutorials/3d/csg_tools.rst:30 @@ -25170,437 +25173,6 @@ msgid "" "Then modify the ``_ready()`` function to look like this:" msgstr "" -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:4 -msgid "Vertex displacement with shaders" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:9 -msgid "" -"This tutorial will teach you how to displace the vertices of a :ref:`Plane " -"Mesh` inside a shader. Vertex displacement can be used for " -"a wide variety of effects, but most commonly it is used as a quick way to " -"turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " -"deformed plane that looks like a miniature terrain complete with dynamic " -"lighting." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:20 -msgid "How to create and subdivide a :ref:`Plane Mesh`" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:21 -msgid "" -"How to create and assign a material to a :ref:`Mesh`" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:22 -msgid "" -"How to write a :ref:`Shader` that displaces the vertices of a :" -"ref:`Mesh`" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:23 -msgid "" -"How to pass values (Uniforms) into a :ref:`Shader` to update " -"the :ref:`Mesh` in realtime" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:24 -msgid "How to approximate normals from a height function" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:25 -msgid "How to use a light with a custom material" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:28 -msgid "The plane mesh" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:30 -msgid "" -"First, add a :ref:`Spatial` node to the scene to act as the " -"root. Next, add a :ref:`MeshInstance` as a child." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:35 -msgid "" -"Select the newly created :ref:`MeshInstance`. Then click " -"on the button that says \"null\" next to the :ref:`Mesh` " -"in the Inspector. This will bring up a list of :ref:" -"`PrimitiveMeshes`. Select \"New PlaneMesh\"." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:41 -msgid "" -"The button will change into a small image of a plane. Click on it to enter " -"into the Inspector for the :ref:`Plane Mesh`." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:44 -msgid "" -"Then, in the viewport, click in the upper left corner where it says " -"[Perspective]. A menu will appear. In the middle of the menu are options for " -"how to display the scene. Select 'Display Wireframe'." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:50 -msgid "This will allow you to see the triangles making up the plane." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:54 -msgid "Now set the ``Subdivide Width`` and ``Subdivide Height`` to ``32``." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:58 -msgid "" -"You can see that there are now way more triangles in the :ref:" -"`Mesh`. This will give us more vertices to work with and " -"thus allow us to add more detail." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:65 -msgid "Shader magic" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:67 -msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:69 -msgid "" -"Click beside material in the :ref:`Plane Mesh` Menu and " -"create a new :ref:`ShaderMaterial`." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:73 -msgid "Then click on the created :ref:`ShaderMaterial`." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:75 -msgid "" -"Then click beside 'shader' and create a new :ref:`Shader`." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:79 -msgid "" -"Click into the newly created :ref:`Shader`. You should now see " -"Godot's Shader editor." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:83 -msgid "" -"Notice how it is throwing an error? This is because the shader editor " -"reloads shaders on the fly automatically. The first thing Godot shaders need " -"is a declaration of what type of shader they are. Accordingly, we set the " -"variable ``shader_type`` to ``spatial``. One more thing we will add is the " -"``render_mode``, we will set it to ``unshaded``. This means that Godot won't " -"run the light shader on this object." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:94 -msgid "" -"This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " -"would appear blue because it would pick up the sky colors." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:97 -msgid "" -"Next we will define a vertex shader. The vertex shader determines where the " -"vertices of your :ref:`Mesh` appear in the final scene. " -"We will be using it to offset the height of each vertex and make our flat " -"plane appear like a little terrain." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:101 -msgid "We define the vertex shader like so:" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:109 -msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " -"shader. We can easily start to make changes by adding a single line:" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:122 -msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " -"increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:126 -msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " -"``sin`` already look kind of like hills. We do so by scaling the inputs to " -"the ``cos`` and ``sin`` functions." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:137 -msgid "" -"This looks better, but it is still too spiky. This is because ``cos`` and " -"``sin`` output values between ``-1`` and ``1``, so the range of the output " -"is much too high. We correct this by multiplying the result by ``0.5`` to " -"reduce the size." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:148 -msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " -"onto something more interesting." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:151 -msgid "Noise" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:153 -msgid "" -"Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:158 -msgid "" -"The first function we use to generate the noise is the ``hash`` function. It " -"gives the random height for each of the hill tops." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:167 -msgid "" -"You will find similar functions to this all over the internet. It is " -"lovingly referred to as the 'one-liner hash function'. It works well for " -"simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:171 -msgid "" -"Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " -"paste and move on with the tutorial." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:185 -msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " -"level, decrease the amplitude, and calculate a new layer of noise." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:204 -msgid "" -"We can now use this noise function in place of ``cos`` and ``sin`` in the " -"previous section." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:213 -msgid "" -"With the noise function in place we already have something that looks kind " -"of cool. There is a lot of detail, it kind of looks hilly or mountainous." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:217 -msgid "Fragment shader" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:219 -msgid "" -"The difference between a vertex shader and a fragment shader is that the " -"vertex shader runs per vertex and sets properties such as ``VERTEX`` " -"(position) and ``NORMAL``, while the fragment shader runs per pixel and, " -"most importantly, sets the ``ALBEDO`` color of the :ref:" -"`Mesh`." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:223 -msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " -"instead of the wireframe. Set the viewport back to 'Display Normal'." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:228 -msgid "" -"The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:245 -msgid "" -"With this change we can see the detail of the :ref:" -"`Mesh`, even without displaying the :ref:" -"`Mesh`'s wireframe." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:250 -#: ../../docs/tutorials/shading/shading_language.rst:405 -msgid "Uniforms" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:252 -msgid "" -"Uniform variables allow you to pass data from the game into the shader. They " -"can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:264 -msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " -"``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " -"in the shader." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:273 -msgid "" -"Remember that the string passed into ``set_shader_param`` must match the " -"name of the uniform variable in the :ref:`Shader`. You can use " -"the uniform variable anywhere inside your :ref:`Shader`. Here, " -"we will use it to set the height value instead of arbitrarily multiplying by " -"``0.5``." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:282 -msgid "" -"The terrain should look exactly the same, but now we have control over the " -"height easily. Here is the same terrain with ``height_scale`` set to ``1``:" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:287 -msgid "And here it is with ``height_scale`` set to ``0.2``:" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:291 -msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " -"especially useful for simple animations." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:295 -msgid "Interacting with light" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:297 -msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:303 -msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " -"remove that." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:313 -msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " -"and it has turned blue as a result of the sky. The problem is the light is " -"affecting the terrain as if it were a flat plane. This is because the light " -"shader uses the normals of the :ref:`Mesh` to calculate " -"light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " -"calculations for us." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:322 -msgid "" -"To calculate the normal from noise we are going to use a technique called " -"'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " -"noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:328 -msgid "We calculate the normal with one line in the vertex shader." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:336 -msgid "" -"The variable ``e`` just makes it easier to add and subtract the right value " -"from the ``VERTEX``. Setting ``e`` to a lower number will increase the level " -"of detail of the normal." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:343 -msgid "" -"This still does not look how we want it to. The issue here is that the noise " -"changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " -"``subdivision`` set to ``100``." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:351 -msgid "" -"Now we can drag the light around and the lighting will update automatically." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:357 -msgid "" -"If you zoom the camera out you can see that the :ref:" -"`Mesh` now looks like a small terrain." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:361 -msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " -"``height_scale`` from gdscript, try using different :ref:`Primitive " -"Meshes`, and try making your own functions to calculate " -"``height``." -msgstr "" - -#: ../../docs/tutorials/3d/vertex_displacement_with_shaders.rst:366 -msgid "" -"For further information on how to use shaders in Godot you should check out " -"the :ref:`doc_shading_language` page." -msgstr "" - #: ../../docs/tutorials/3d/fps_tutorial/index.rst:2 msgid "FPS tutorial" msgstr "" @@ -27366,7 +26938,7 @@ msgstr "" #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:451 msgid "" -"Why are we using a :ref:`Area ` and not a :ref:`RigidBody " +"Why are we using an :ref:`Area ` and not a :ref:`RigidBody " "`? The main reason we're not using a :ref:`RigidBody " "` is because we do not want the bullet to interact with " "other :ref:`RigidBody ` nodes. By using an :ref:`Area " @@ -27376,7 +26948,7 @@ msgstr "" #: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:455 msgid "" -"Another reason is simply because it is easier to detect collisions with a :" +"Another reason is simply because it is easier to detect collisions with an :" "ref:`Area `!" msgstr "" @@ -42669,9 +42241,9 @@ msgstr "" #: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:55 msgid "" -"We are assuming you are familiar with the basics of shading for this " -"tutorial. Even if you aren't, all the code will still be provided so you " -"should have no problem following along." +"Basic familiarity with shading is recommended for this tutorial. However, " +"even if you are new to shaders, all the code will be provided so you should " +"have no problem following along." msgstr "" #: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:66 @@ -42721,9 +42293,9 @@ msgid "" "Notice the ugly seam that forms where the texture wraps around? This is " "because we are picking a color based on UV coordinates and UV coordinates do " "not wrap around the texture. This is a classic problem in 2D map projection. " -"Gamedevs often have a 2-dimensional map they want to project onto a sphere " -"but when it wraps around it has large seams. There is an elegant work around " -"for this problem that we will illustrate in the next section." +"Game developers often have a 2-dimensional map they want to project onto a " +"sphere but when it wraps around it has large seams. There is an elegant work " +"around for this problem that we will illustrate in the next section." msgstr "" #: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:101 @@ -42777,46 +42349,44 @@ msgstr "" msgid "" "Now that we can calculate the 3D position of the surface of the sphere we " "can use 3D noise to make the planet. We will be using this noise function " -"directly from a `Shadertoy `_:" +"directly from a `Shadertoy `_:" msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:198 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:175 msgid "" -"All credit goes to the initial author Inigo Quilez. It is published with the " +"All credit goes to the author, Inigo Quilez. It is published with the " "``MIT`` licence." msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:200 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:177 msgid "" -"Now to use ``noised``, add the following to the ``fragment`` function:" +"Now to use ``noise``, add the following to the ``fragment`` function:" msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:209 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:186 msgid "In order to highlight the texture, we set the material to unshaded." msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:211 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:188 msgid "" "You can see now that the noise indeed wraps seamlessly around the sphere. " "Although this looks nothing like the planet you were promised. So lets move " "onto something more colorful." msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:215 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:192 msgid "Coloring the planet" msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:217 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:194 msgid "" -"Now to make the planet colors. There are many ways to do this, if you look " -"on `Shadertoy `_ you will find all kinds of ways " -"of mapping colors to procedural planet terrain. For now we will stick with a " -"simple gradient between water and land." +"Now to make the planet colors. While, there are many ways to do this, for " +"now we will stick with a gradient between water and land." msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:221 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:197 msgid "" -"To make a gradient in glsl we use the ``mix`` function. ``mix`` takes two " +"To make a gradient in GLSL we use the ``mix`` function. ``mix`` takes two " "values to interpolate between and a third parameter to choose how much to " "interpolate between them, in essence it *mixes* the two values together. In " "other APIs this function is often called ``lerp``. Although, ``lerp`` is " @@ -42824,7 +42394,7 @@ msgid "" "values whether it be floats or vector types." msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:231 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:207 msgid "" "The first color is blue for the ocean. The second color is a kind of reddish " "color (because all alien planets need red terrain). And finally they are " @@ -42833,7 +42403,7 @@ msgid "" "Now you can see that the colors change between blue and red." msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:238 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:214 msgid "" "That is a little more blurry than we want. Planets typically have a " "relatively clear separation between land and sea. In order to do that we " @@ -42841,7 +42411,7 @@ msgid "" "whole line becomes:" msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:246 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:222 msgid "" "What ``smoothstep`` does is return ``0`` if the third parameter is below the " "first and return 1 if the third parameter is larger than the second and " @@ -42851,7 +42421,7 @@ msgid "" "``0``." msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:253 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:229 msgid "" "One more thing to make this a little more planet-y. The land shouldn't be so " "blobby lets make the edges a little rougher. A trick that is often used in " @@ -42862,19 +42432,19 @@ msgid "" "with four lines of shader code instead of just one. ``n`` becomes:" msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:267 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:243 msgid "And now the planet looks like:" msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:271 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:247 msgid "And with shading turned back on it looks like:" msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:276 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:252 msgid "Making an ocean" msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:278 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:254 msgid "" "One final thing to make this look more like a planet. The ocean and the land " "reflect light differently. So we want the ocean to shine a little more than " @@ -42882,13 +42452,13 @@ msgid "" "channel of our output ``COLOR`` and using it as a Roughness map." msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:286 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:262 msgid "" "This line returns ``0.3`` for water and ``1.0`` for land. This means that " "the land is going to be quite rough while the water will be quite smooth." msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:289 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:265 msgid "" "And then in the material under the \"Metallic\" section make sure " "``Metallic`` is set to ``0`` and ``Specular`` is set to ``1``. The reason " @@ -42896,7 +42466,7 @@ msgid "" "values are not physically accurate, but they are good enough for this demo." msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:293 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:269 msgid "" "Next under the \"Roughness\" section set ``Roughness`` to ``1`` and set the " "roughness texture to a :ref:`Viewport Texture ` " @@ -42905,7 +42475,7 @@ msgid "" "``alpha`` channel of our output ``COLOR`` as the ``Roughness`` value." msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:300 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:276 msgid "" "You'll notice that very little changes except that the planet is no longer " "reflecting the sky. This is happening because by default when something is " @@ -42919,7 +42489,7 @@ msgid "" "object on top of another we want to enable ``blend_premul_alpha``:" msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:313 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:289 msgid "" "This pre-multiplies the colors by the ``alpha`` value and then blends them " "correctly together. Typically when blending one transparent color on top of " @@ -42928,7 +42498,7 @@ msgid "" "``blend_premul_alpha`` fixes that." msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:317 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:293 msgid "" "Now the planet should look like it is reflecting light on the ocean but not " "the land. If you haven't done so already, add an :ref:`OmniLight " @@ -42936,10 +42506,10 @@ msgid "" "of the reflections on the ocean." msgstr "" -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:323 +#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:299 msgid "" -"And there you have it. A simple procedural planet generated using a :ref:" -"`Viewport `." +"And there you have it. A procedural planet generated using a :ref:`Viewport " +"`." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:4 @@ -43904,6 +43474,11 @@ msgid "" "default" msgstr "" +#: ../../docs/tutorials/shading/shading_language.rst:405 +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:250 +msgid "Uniforms" +msgstr "" + #: ../../docs/tutorials/shading/shading_language.rst:407 msgid "" "Passing values to shaders is possible. These are global to the whole shader " @@ -46819,6 +46394,432 @@ msgid "" "`." msgstr "" +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:4 +msgid "Vertex displacement with shaders" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:9 +msgid "" +"This tutorial will teach you how to displace the vertices of a :ref:`Plane " +"Mesh` inside a shader. Vertex displacement can be used for " +"a wide variety of effects, but most commonly it is used as a quick way to " +"turn a flat plane into a simple terrain. Typically this is done using a " +"heightmap, but in order to keep everything self contained, in this tutorial " +"we will use noise in a shader. At the end of this tutorial we will have a " +"deformed plane that looks like a miniature terrain complete with dynamic " +"lighting." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 +msgid "By reading this tutorial you should gain a basic understanding of:" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 +msgid "How to create and subdivide a :ref:`Plane Mesh`" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:21 +msgid "" +"How to create and assign a material to a :ref:`Mesh`" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:22 +msgid "" +"How to write a :ref:`Shader` that displaces the vertices of a :" +"ref:`Mesh`" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:23 +msgid "" +"How to pass values (Uniforms) into a :ref:`Shader` to update " +"the :ref:`Mesh` in realtime" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:24 +msgid "How to approximate normals from a height function" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:25 +msgid "How to use a light with a custom material" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:28 +msgid "The plane mesh" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:30 +msgid "" +"First, add a :ref:`Spatial` node to the scene to act as the " +"root. Next, add a :ref:`MeshInstance` as a child." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:35 +msgid "" +"Select the newly created :ref:`MeshInstance`. Then click " +"on the button that says \"null\" next to the :ref:`Mesh` " +"in the Inspector. This will bring up a list of :ref:" +"`PrimitiveMeshes`. Select \"New PlaneMesh\"." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:41 +msgid "" +"The button will change into a small image of a plane. Click on it to enter " +"into the Inspector for the :ref:`Plane Mesh`." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:44 +msgid "" +"Then, in the viewport, click in the upper left corner where it says " +"[Perspective]. A menu will appear. In the middle of the menu are options for " +"how to display the scene. Select 'Display Wireframe'." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:50 +msgid "This will allow you to see the triangles making up the plane." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:54 +msgid "Now set the ``Subdivide Width`` and ``Subdivide Height`` to ``32``." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 +msgid "" +"You can see that there are now way more triangles in the :ref:" +"`Mesh`. This will give us more vertices to work with and " +"thus allow us to add more detail." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:65 +msgid "Shader magic" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 +msgid "" +"Now that we have a :ref:`Plane Mesh` to draw lets setup " +"the material that will deform the :ref:`Mesh`." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 +msgid "" +"Click beside material in the :ref:`Plane Mesh` Menu and " +"create a new :ref:`ShaderMaterial`." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:73 +msgid "Then click on the created :ref:`ShaderMaterial`." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:75 +msgid "" +"Then click beside 'shader' and create a new :ref:`Shader`." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:79 +msgid "" +"Click into the newly created :ref:`Shader`. You should now see " +"Godot's Shader editor." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:83 +msgid "" +"Notice how it is throwing an error? This is because the shader editor " +"reloads shaders on the fly automatically. The first thing Godot shaders need " +"is a declaration of what type of shader they are. Accordingly, we set the " +"variable ``shader_type`` to ``spatial``. One more thing we will add is the " +"``render_mode``, we will set it to ``unshaded``. This means that Godot won't " +"run the light shader on this object." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 +msgid "" +"This should remove the errors and your :ref:`Mesh` " +"should turn white. If you were to comment out the ``render_mode`` the plane " +"would appear blue because it would pick up the sky colors." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:97 +msgid "" +"Next we will define a vertex shader. The vertex shader determines where the " +"vertices of your :ref:`Mesh` appear in the final scene. " +"We will be using it to offset the height of each vertex and make our flat " +"plane appear like a little terrain." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:101 +msgid "We define the vertex shader like so:" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 +msgid "" +"With nothing in the ``vertex`` function Godot will use its default vertex " +"shader. We can easily start to make changes by adding a single line:" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 +msgid "Adding this line you should get an image like the one below." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 +msgid "" +"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"increased. And we are passing the ``x`` and ``z`` components of the " +"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " +"appearance across the ``x`` and ``z`` axis." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 +msgid "" +"What we want to achieve is the look of little hills, after all ``cos`` and " +"``sin`` already look kind of like hills. We do so by scaling the inputs to " +"the ``cos`` and ``sin`` functions." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:137 +msgid "" +"This looks better, but it is still too spiky. This is because ``cos`` and " +"``sin`` output values between ``-1`` and ``1``, so the range of the output " +"is much too high. We correct this by multiplying the result by ``0.5`` to " +"reduce the size." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 +msgid "" +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"onto something more interesting." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:151 +msgid "Noise" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 +msgid "" +"Noise is a very popular tool for procedural generation. Think of it as " +"similar to the cosine function where you have repeating hills except with " +"noise each hill has a different height. Understanding noise is not necessary " +"for this tutorial. There is nothing wrong with simply copying and pasting " +"the code below." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 +msgid "" +"The first function we use to generate the noise is the ``hash`` function. It " +"gives the random height for each of the hill tops." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:167 +msgid "" +"You will find similar functions to this all over the internet. It is " +"lovingly referred to as the 'one-liner hash function'. It works well for " +"simple noise, but there are many better alternatives floating around as " +"well. For this tutorial it will work fine." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 +msgid "" +"Next we define the ``noise`` function. It smoothly interpolates between the " +"random heights. Again, if this code seems daunting, do not worry, just copy " +"paste and move on with the tutorial." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 +msgid "" +"Lastly, to add detail we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " +"together layers of noise with increase frequency and decreasing amplitude. " +"To implement it we run over a for loop where we increase the frequency each " +"level, decrease the amplitude, and calculate a new layer of noise." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:204 +msgid "" +"We can now use this noise function in place of ``cos`` and ``sin`` in the " +"previous section." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 +msgid "" +"With the noise function in place we already have something that looks kind " +"of cool. There is a lot of detail, it kind of looks hilly or mountainous." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:217 +msgid "Fragment shader" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:219 +msgid "" +"The difference between a vertex shader and a fragment shader is that the " +"vertex shader runs per vertex and sets properties such as ``VERTEX`` " +"(position) and ``NORMAL``, while the fragment shader runs per pixel and, " +"most importantly, sets the ``ALBEDO`` color of the :ref:" +"`Mesh`." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 +msgid "" +"Now lets look at the :ref:`Mesh` with a regular shader " +"instead of the wireframe. Set the viewport back to 'Display Normal'." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 +msgid "" +"The :ref:`Mesh` appears completely white because the " +"fragment shader is coloring each pixel white, but if every pixel is white we " +"lose detail on the :ref:`Mesh`. So lets color each pixel " +"based on the height calculated in the vertex shader. We do so by setting the " +"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " +"the fragment shader to the calculated ``COLOR`` variable." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 +msgid "" +"With this change we can see the detail of the :ref:" +"`Mesh`, even without displaying the :ref:" +"`Mesh`'s wireframe." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:252 +msgid "" +"Uniform variables allow you to pass data from the game into the shader. They " +"can be very useful for controlling shader effects. Uniforms can be almost " +"any datatype that can be used in the shader. To use a uniform you declare it " +"in your :ref:`Shader` using the keyword ``uniform``." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 +msgid "Lets make a uniform that changes the height of the terrain." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 +msgid "" +"Godot lets you initialize a uniform with a value, here ``height_scale`` is " +"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"``set_shader_param`` on the material corresponding to the shader. The value " +"passed from gdscript takes precedence over the value used to initialize it " +"in the shader." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:273 +msgid "" +"Remember that the string passed into ``set_shader_param`` must match the " +"name of the uniform variable in the :ref:`Shader`. You can use " +"the uniform variable anywhere inside your :ref:`Shader`. Here, " +"we will use it to set the height value instead of arbitrarily multiplying by " +"``0.5``." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:282 +msgid "" +"The terrain should look exactly the same, but now we have control over the " +"height easily. Here is the same terrain with ``height_scale`` set to ``1``:" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:287 +msgid "And here it is with ``height_scale`` set to ``0.2``:" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 +msgid "" +"Using uniforms we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens` this can be " +"especially useful for simple animations." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:295 +msgid "Interacting with light" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 +msgid "" +"As a final part of this tutorial lets try to set up the terrain to interact " +"with light. First, we will add an :ref:`OmniLight` to the " +"scene." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 +msgid "" +"You should notice that nothing changes, this is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"remove that." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 +msgid "" +"It looks slightly better now, you can see the light affecting the terrain, " +"and it has turned blue as a result of the sky. The problem is the light is " +"affecting the terrain as if it were a flat plane. This is because the light " +"shader uses the normals of the :ref:`Mesh` to calculate " +"light. The normals are stored in the :ref:`Mesh`, but we " +"are changing the shape of the :ref:`Mesh` in the shader " +"so the normals are no longer correct. To fix this we need to recalculate the " +"normals in the shader. Godot makes this easy for us, all we have to do is " +"calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"calculations for us." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 +msgid "" +"To calculate the normal from noise we are going to use a technique called " +"'central differences'. This is used a lot, especially in places like " +"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"noise at four points surrounding the vertex in the ``x`` and ``z`` " +"directions and then calculate the slope at the vertex from that. After all a " +"normal is just an indicator of the slope of the noise." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 +msgid "We calculate the normal with one line in the vertex shader." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:336 +msgid "" +"The variable ``e`` just makes it easier to add and subtract the right value " +"from the ``VERTEX``. Setting ``e`` to a lower number will increase the level " +"of detail of the normal." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 +msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 +msgid "" +"This still does not look how we want it to. The issue here is that the noise " +"changes faster than the vertices do. So when we calculate the normal at the " +"point of the ``VERTEX`` it does not align with what we see in the final :ref:" +"`Mesh`. In order to fix this we add more vertices. The " +"below image is made with a :ref:`Mesh` with " +"``subdivision`` set to ``100``." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 +msgid "" +"Now we can drag the light around and the lighting will update automatically." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 +msgid "" +"If you zoom the camera out you can see that the :ref:" +"`Mesh` now looks like a small terrain." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 +msgid "" +"That is everything for this tutorial. Hopefully you understand the basics of " +"vertex shaders in Godot. As a further exercise try changing the " +"``height_scale`` from gdscript, try using different :ref:`Primitive " +"Meshes`, and try making your own functions to calculate " +"``height``." +msgstr "" + +#: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 +msgid "" +"For further information on how to use shaders in Godot you should check out " +"the :ref:`doc_shading_language` page." +msgstr "" + #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" @@ -51363,11 +51364,11 @@ msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 #: ../../docs/development/compiling/index.rst:2 -#: ../../docs/development/compiling/compiling_for_windows.rst:87 -#: ../../docs/development/compiling/compiling_for_x11.rst:80 -#: ../../docs/development/compiling/compiling_for_osx.rst:19 -#: ../../docs/development/compiling/compiling_for_ios.rst:16 -#: ../../docs/development/compiling/compiling_for_uwp.rst:21 +#: ../../docs/development/compiling/compiling_for_windows.rst:90 +#: ../../docs/development/compiling/compiling_for_x11.rst:83 +#: ../../docs/development/compiling/compiling_for_osx.rst:22 +#: ../../docs/development/compiling/compiling_for_ios.rst:19 +#: ../../docs/development/compiling/compiling_for_uwp.rst:24 msgid "Compiling" msgstr "" @@ -51561,73 +51562,70 @@ msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 msgid "" -"We'll be looking at NativeScript 1.0 which is available in Godot 3.0. Godot " -"3.1 will see the introduction of NativeScript 1.1, which comes with a number " -"of improvements. We'll update this tutorial once it is officially released, " -"but the overall structure remains similar." +"Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " +"enabled the GDNative team to build a nicer C++ bindings library. These " +"changes have now been merged into the master branch and will be the way we " +"go forward. If you want to write a C++ GDNative plugin that also supports " +"Godot 3.0 you will need to use the 3.0 branch and the NativeScript 1.0 " +"syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:23 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 msgid "" "You can download the full example we'll be creating in this tutorial `on " "GitHub `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:27 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:31 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 -msgid "" -"a copy of the `godot_headers repository `_," -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 msgid "" "a copy of the `godot-cpp repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:40 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " "versions of Godot. GDNative modules written for an earlier version of Godot " "will work in newer versions (with the exception of one breaking change in " "ARVR interfaces between 3.0 and 3.1) but not vise versa so make sure you " -"download the correct branch." +"download the correct branch. Also note that the version of Godot you use to " +"generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:44 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:58 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -51635,131 +51633,127 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:63 -msgid "" -"Do make sure you clone recursive to pull in both repositories: .. code-" -"block:: none" +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:66 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 msgid "" -"mkdir gdnative_cpp_example cd gdnative_cpp_example git clone --recursive -b " -"3.0 https://github.com/GodotNativeTools/godot-cpp" +"``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " +"you've manually downloaded them please make sure to place ``godot_headers`` " +"inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:70 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 msgid "" -"The ``-b 3.0`` I've added as an example to show how to select a specific " -"branch for a specific version of Godot. Also ``godot-cpp`` now includes " -"``godot_headers`` as a nested submodule, if you've manually downloaded them " -"please make sure to place ``godot_headers`` inside of the ``godot-cpp`` " -"folder." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:73 -msgid "" -"You don't have to do it this way but I've found it easiest to manage. If you " -"decide to just download the repositories or just clone them into your " -"folder, makes sure to keep the folder layout the same as I've setup here as " +"You don't have to do it this way but we've found it easiest to manage. If " +"you decide to just download the repositories or just clone them into your " +"folder, make sure to keep the folder layout the same as we've setup here as " "much of the code we'll be showcasing here assumes the project has this " "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:75 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:84 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:89 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:100 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:118 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +msgid "" +"You may need to add ``bits=64`` to the command on Windows. We're still " +"working on better auto detection." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:120 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:126 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:129 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:132 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:167 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -51767,55 +51761,55 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:172 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:175 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 msgid "" "Then we have our class definition, which inherits from our Sprite through a " -"container class. We'll see a few side effects of this later on. This is also " -"the main bit that is going to improve in NativeScript 1.1. The " +"container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:180 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:182 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " -"will likely look familiar to some." +"will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:186 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " "which properties it exposes. The second is our ``_process`` function, which " "will work exactly the same as the ``_process`` function you're used to in " -"GDScript." +"GDScript. The third is our ``_init`` function which is called after Godot " +"has properly set up our object. It has to exist even if you don't place any " +"code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:192 -msgid "" -"So, let's implement our functions by creating our ``gdexample.cpp`` file:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:221 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " "call **must** expose the ``_process`` method, otherwise Godot will not be " -"able to use it. However, we do not have to tell Godot about our constructor " -"and destructor." +"able to use it. However, we do not have to tell Godot about our constructor, " +"destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:227 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -51826,22 +51820,22 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " -"header and source file like we've implemented ``gdexample`` up above. What " +"header and source file like we've implemented ``GDExample`` up above. What " "we need now is a small bit of code that tells Godot about all the " "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:260 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:263 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -51850,7 +51844,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:269 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -51858,11 +51852,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:275 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:277 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -51871,42 +51865,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:283 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +msgid "" +"This ``SConstruct`` file was written to be used with the latest godot-cpp " +"master, you may need to make small changes using it with older versions or " +"refer to the ``SConstruct`` file in the Godot 3.0 documentation." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:375 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:291 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:383 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:295 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:387 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:300 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:302 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:394 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:306 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:398 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:329 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:422 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -51916,7 +51917,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:336 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:429 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -51925,7 +51926,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:342 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:435 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -51933,58 +51934,255 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:440 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:352 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:445 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:369 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:462 msgid "" -"This is a standard Godot resource; you could just create it directly in of " -"your scene, but saving it to a file makes it much easier to reuse it in " -"other places. This resource points to our gdnlib file, so that Godot can " -"know which dynamic library contains our NativeScript. It also defines the " +"This is a standard Godot resource; you could just create it directly in your " +"scene, but saving it to a file makes it much easier to reuse it in other " +"places. This resource points to our gdnlib file, so that Godot can know " +"which dynamic library contains our NativeScript. It also defines the " "``class_name`` which identifies the NativeScript in our plugin we want to " "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:376 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:469 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:474 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:387 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:480 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:485 +msgid "Adding properties" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 +msgid "" +"GDScript allows you to add properties to your script using the ``export`` " +"keyword. In GDNative you have to register the properties and there are two " +"ways of doing this. You can either bind directly to a member or use a setter " +"and getter function." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:493 +msgid "" +"There is a third option, just like in GDScript you can directly implement " +"the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " +"that goes far beyond the scope of this tutorial." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:497 +msgid "" +"We'll examine both starting with the direct bind. Lets add a property that " +"allows us to control the amplitude of our wave." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +msgid "" +"In our ``gdexample.h`` file we simply need to add a member variable like so:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:510 +msgid "" +"In our ``gdexample.cpp`` file we need to make a number of changes, we will " +"only show the methods we end up changing, don't remove the lines we're " +"omitting:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:562 +msgid "" +"Once you compile the module with these changes in place you will see that a " +"property has been added to our interface. You can now change this property " +"and when you run your project, you will see that our Godot icon travels " +"along a larger figure." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:567 +msgid "" +"Lets do the same but for the speed of our animation and use a setter and " +"getter function. Our ``gdexample.h`` header file again only needs a few more " +"lines of code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 +msgid "" +"This requires a few more changes to our ``gdexample.cpp`` file, again we're " +"only showing the methods that have changed so don't remove anything we're " +"omitting:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:653 +msgid "" +"Now when the project is compiled we'll see another property called speed. " +"Changing its value will make the animation go faster or slower." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:656 +msgid "" +"For this example there is no obvious advantage of using a setter and getter. " +"It is just more code to write. For a simple example as this there may be a " +"good reason for a setter if you want to react on the variable being changed " +"but in many cases just binding the variable will be enough." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:661 +msgid "" +"Getters and setters become far more useful in more complex scenarios where " +"you need to make additional choices based on the state of your object." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:667 +msgid "" +"For simplicity we've left out the optional parameters in the " +"register_property method call. These parameters are " +"``rpc_mode``, ``usage``, ``hint`` and ``hint_string``. These can be used to " +"further configure how properties are displayed and set on the Godot side." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:673 +msgid "" +"Modern C++ compilers are able to infer the class and variable type and allow " +"you to omit the ```` part of our ``register_property`` " +"method. we've had mixed experiences with this however." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:681 +msgid "" +"Last but not least, signals fully work in GDNative as well. Having your " +"module react to a signal given out by another object requires you to call " +"``connect`` on that object. We can't think of a good example for our " +"wobbling Godot icon, we would need to showcase a far more complete example." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:687 +msgid "This however is the required syntax:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:698 +msgid "" +"Note that you can only call ``my_method`` if you've previously registered it " +"in your ``_register_methods`` method." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:701 +msgid "" +"Having your object sending out signals is far more common. For our wobbling " +"Godot icon we'll do something silly just to show how it works. We're going " +"to emit a signal every time a second has passed and pass the new location " +"along." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:706 +msgid "" +"In our ``gdexample.h`` header file we just need to define a new member " +"``time_emit``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +msgid "" +"The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " +"you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " +"our constructor. But the other two needed changes we'll look at one by one." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 +msgid "" +"In our ``_register_methods`` method we need to declare our signal and we do " +"this as follows:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:747 +msgid "" +"Here we see a nice improvement in the latest version of godot-cpp where our " +"``register_signal`` method can be a single call first taking the signals " +"name, then having pairs of values specificying the parameter name and type " +"of each parameter we'll send along with this signal." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:752 +msgid "" +"For NativeScript 1.0 we first build a dictionary in which we tell Godot " +"about the types of arguments we will pass to our signal, and then register " +"it." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:755 +msgid "Next we'll need to change our ``_process`` method:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:801 +msgid "" +"After a second has passed we emit our signal and reset our counter. Again in " +"the new version of godot-cpp we can add our parameter values directly to " +"``emit_signal``. In NativeScript 1.0 We first build an array of values and " +"then call ``emit_signal``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:807 +msgid "" +"Once compiled we can go into Godot and select our sprite node. On our " +"``Node`` tab we find our new signal and link it up by pressing connect. " +"We've added a script on our main node and implemented our signal like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:818 +msgid "Every second we simply output our position to the console." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:822 +msgid "NativeScript 1.1 v.s. NativeScript 1.0" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:824 +msgid "" +"So far in our example above there doesn't seem to be a lot of difference " +"between the old and new syntax. The class is defined slightly differently " +"and we no longer use the ``owner`` member to call methods on the Godot side " +"of our object. A lot of the improvements are hidden under the hood." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:829 +msgid "" +"This example only deals with simple variables and simple methods. Especially " +"once you start passing references to other objects or when you start calling " +"methods that require more complex parameters, NativeScript 1.1 does start to " +"show its benefits." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:394 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:398 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:841 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -54074,7 +54272,7 @@ msgid "" "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -54082,18 +54280,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:44 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:49 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -54101,23 +54299,23 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 msgid "SCons is invoked by just calling ``scons``." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:56 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 msgid "" "However, this will do nothing except list the available platforms, for " "example:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " "just ``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 msgid "" "This will start the build process, which will take a while. If you want " "scons to build faster, use the ``-j `` parameter to specify how many " @@ -54125,35 +54323,35 @@ msgid "" "can use your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 msgid "" "The resulting binaries will be placed in the bin/ subdirectory, generally " "with this naming convention:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:105 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 msgid "For the previous build attempt the result would look like this:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:112 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:115 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "A Windows binary with the same configuration will look like this." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 msgid "" "Just copy that binary to wherever you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " @@ -54162,103 +54360,103 @@ msgid "" "godotengine.org/>`__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:134 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:146 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:148 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:150 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " "binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:153 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 msgid "" "**release**: Build without symbols, with optimization and with little to no " "runtime checks. This target can't be used together with tools=yes, as the " "tools require some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:162 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " "debug with tools enabled). When optimization is enabled (release) it appends " "the \".opt\" suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:173 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 msgid "**32**: Build binaries for 32 bits platform." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 msgid "**64**: Build binaries for 64 bits platform." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" "**default**: Build whatever the build system feels is best. On Linux this " "depends on the host platform (if not cross compiling), on Mac it defaults to " "64 bits and on Windows it defaults to 32 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:183 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 msgid "" "This flag appends \".32\" or \".64\" suffixes to resulting binaries when " "relevant." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:187 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:189 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:193 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:199 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -54266,20 +54464,20 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:204 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 msgid "" "If you download the official export templates package and unzip it, you will " "notice that most are just optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:227 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 msgid "" "To create those yourself, just follow the instructions detailed for each " "platform in this same tutorial section. Each platform explains how to create " "its own template." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:231 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " "convenient host platform for cross compilation, since you can cross-compile " @@ -54318,11 +54516,23 @@ msgstr "" msgid "`SCons `__ build system." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:24 +#: ../../docs/development/compiling/compiling_for_windows.rst:23 +#: ../../docs/development/compiling/compiling_for_x11.rst:27 +#: ../../docs/development/compiling/compiling_for_osx.rst:18 +#: ../../docs/development/compiling/compiling_for_android.rst:33 +#: ../../docs/development/compiling/compiling_for_ios.rst:15 +#: ../../docs/development/compiling/compiling_for_uwp.rst:20 +#: ../../docs/development/compiling/compiling_for_web.rst:19 +msgid "" +"For a general overview of SCons usage for Godot, see :ref:" +"`doc_introduction_to_the_buildsystem`." +msgstr "" + +#: ../../docs/development/compiling/compiling_for_windows.rst:27 msgid "Setting up SCons" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:26 +#: ../../docs/development/compiling/compiling_for_windows.rst:29 msgid "" "Python adds the interpreter (python.exe) to the path. It usually installs in " "``C:\\Python`` (or ``C:\\Python[Version]``). SCons installs inside the " @@ -54332,24 +54542,24 @@ msgid "" "interpreter executable." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:33 +#: ../../docs/development/compiling/compiling_for_windows.rst:36 msgid "" "To check whether you have installed Python and SCons correctly, you can type " "``python --version`` and ``scons --version`` into the Windows Command Prompt " "(``cmd.exe``)." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:37 +#: ../../docs/development/compiling/compiling_for_windows.rst:40 msgid "" "If commands above do not work, make sure you add Python to your PATH " "environment variable after installing it, and check again." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:41 +#: ../../docs/development/compiling/compiling_for_windows.rst:44 msgid "Setting up Pywin32" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:43 +#: ../../docs/development/compiling/compiling_for_windows.rst:46 msgid "" "Pywin32 is required for parallel builds using multiple CPU cores. If SCons " "is issuing a warning about Pywin32 after parsing SConstruct build " @@ -54358,7 +54568,7 @@ msgid "" "`__" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:49 +#: ../../docs/development/compiling/compiling_for_windows.rst:52 msgid "" "For example, if you installed a 32-bit version of Python 2.7, you would want " "to install the latest version of Pywin32 that is built for the mentioned " @@ -54366,18 +54576,18 @@ msgid "" "win32-py2.7.exe``." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:53 +#: ../../docs/development/compiling/compiling_for_windows.rst:56 msgid "" "The ``amd64`` version of Pywin32 is for a 64-bit version of Python " "``pywin32-221.win-amd64-py2.7.exe``. Change the ``py`` number to install for " "your version of Python (check via ``python --version`` mentioned above)." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:60 +#: ../../docs/development/compiling/compiling_for_windows.rst:63 msgid "Installing Visual Studio caveats" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:62 +#: ../../docs/development/compiling/compiling_for_windows.rst:65 msgid "" "If installing Visual Studio 2015 or later, make sure to run **Custom** " "installation, not **Typical** and select C++ as language there (and any " @@ -54387,7 +54597,7 @@ msgid "" ">`__ in Visual Studio 2015." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:68 +#: ../../docs/development/compiling/compiling_for_windows.rst:71 msgid "" "If you have already made the mistake of installing a **Typical**, " "installation, rerun the executable installer you downloaded from internet, " @@ -54396,37 +54606,37 @@ msgid "" "nothing for your problem." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:74 +#: ../../docs/development/compiling/compiling_for_windows.rst:77 msgid "" "If you're using Express, make sure you get/have a version that can compile " "for ***C++, Desktop***." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:78 +#: ../../docs/development/compiling/compiling_for_windows.rst:81 msgid "Downloading Godot's source" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:80 +#: ../../docs/development/compiling/compiling_for_windows.rst:83 msgid "" "`Godot's `__ source is hosted on " "GitHub. Downloading it (cloning) via `Git `__ is " "recommended." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:83 +#: ../../docs/development/compiling/compiling_for_windows.rst:86 msgid "" "The tutorial will presume from now on that you placed the source into ``C:" "\\godot``." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:89 +#: ../../docs/development/compiling/compiling_for_windows.rst:92 msgid "" "SCons will not be able out of the box to compile from the Windows Command " "Prompt (``cmd.exe``) because SCons and Visual C++ compiler will not be able " "to locate environment variables and executables they need for compilation." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:94 +#: ../../docs/development/compiling/compiling_for_windows.rst:97 msgid "" "Therefore, you need to start a Visual Studio command prompt. It sets up " "environment variables needed by SCons to locate the compiler. It should be " @@ -54434,63 +54644,63 @@ msgid "" "Visual Studio):" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:99 +#: ../../docs/development/compiling/compiling_for_windows.rst:102 msgid "\"Developer Command Prompt for VS2013\"" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:100 +#: ../../docs/development/compiling/compiling_for_windows.rst:103 msgid "\"VS2013 x64 Native Tools Command Prompt\"" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:101 +#: ../../docs/development/compiling/compiling_for_windows.rst:104 msgid "\"VS2013 x86 Native Tools Command Prompt\"" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:102 +#: ../../docs/development/compiling/compiling_for_windows.rst:105 msgid "\"VS2013 x64 Cross Tools Command Prompt\"" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:103 +#: ../../docs/development/compiling/compiling_for_windows.rst:106 msgid "\"VS2013 x86 Cross Tools Command Prompt\"" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:105 +#: ../../docs/development/compiling/compiling_for_windows.rst:108 msgid "" "You should be able to find at least the Developer Command Prompt for your " "version of Visual Studio in your start menu." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:108 +#: ../../docs/development/compiling/compiling_for_windows.rst:111 msgid "" "However Visual Studio sometimes seems to not install some of the above " "shortcuts, except the Developer Console at these locations that are " "automatically searched by the start menu search option:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:118 +#: ../../docs/development/compiling/compiling_for_windows.rst:121 msgid "" "If you found the Developer Console, it will do for now to create a 32-bit " "version of Godot, but if you want the 64-bit version, you might need to " "setup the prompts manually for easy access." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:122 +#: ../../docs/development/compiling/compiling_for_windows.rst:125 msgid "" "If you don't see some of the shortcuts, \"How the prompts actually work\" " "section below will explain how to setup these prompts if you need them." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:126 +#: ../../docs/development/compiling/compiling_for_windows.rst:129 msgid "About the Developer/Tools Command Prompts and the Visual C++ compiler" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:128 +#: ../../docs/development/compiling/compiling_for_windows.rst:131 msgid "" "There is a few things you need to know about these consoles and the Visual C+" "+ compiler." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:131 +#: ../../docs/development/compiling/compiling_for_windows.rst:134 msgid "" "Your Visual Studio installation will ship with several Visual C++ compilers, " "them being more or less identical, however each ``cl.exe`` (Visual C++ " @@ -54498,13 +54708,13 @@ msgid "" "bit x86; the ARM compiler is not supported)." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:136 +#: ../../docs/development/compiling/compiling_for_windows.rst:139 msgid "" "The **Developer Command Prompt** will build a 32-bit version of Godot by " "using the 32-bit Visual C++ compiler." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:139 +#: ../../docs/development/compiling/compiling_for_windows.rst:142 msgid "" "**Native Tools** Prompts (mentioned above) are used when you want the 32-bit " "cl.exe to compile a 32-bit executable (x86 Native Tools Command Prompt). For " @@ -54512,7 +54722,7 @@ msgid "" "Command Prompt)." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:144 +#: ../../docs/development/compiling/compiling_for_windows.rst:147 msgid "" "The **Cross Tools** are used when your Windows is using one architecture (32-" "bit, for example) and you need to compile to a different architecture (64-" @@ -54520,25 +54730,25 @@ msgid "" "executables, but you still might need to compile for them." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:149 +#: ../../docs/development/compiling/compiling_for_windows.rst:152 #: ../../docs/development/cpp/object_class.rst:134 msgid "For example:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:151 +#: ../../docs/development/compiling/compiling_for_windows.rst:154 msgid "" "\"VS2013 x64 Cross Tools Command Prompt\" will use a 32-bit cl.exe that will " "compile a 64 bit application." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:154 +#: ../../docs/development/compiling/compiling_for_windows.rst:157 msgid "" "\"VS2013 x86 Cross Tools Command Prompt\" will use a 64-bit cl.exe that will " "compile a 32-bit application. This one is useful if you are running a 32-bit " "Windows." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:158 +#: ../../docs/development/compiling/compiling_for_windows.rst:161 msgid "" "On a 64-bit Windows, you can run any of above prompts and compilers (``cl." "exe`` executables) because 64-bit Windows can run any 32-bit application. 32-" @@ -54546,30 +54756,30 @@ msgid "" "won't even install shortcuts for some of these prompts." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:164 +#: ../../docs/development/compiling/compiling_for_windows.rst:167 msgid "" "Note that you need to choose the **Developer Console** or the correct " "**Tools Prompt** to build Godot for the correct architecture. Use only " "Native Prompts if you are not sure yet what exactly Cross Compile Prompts do." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:170 +#: ../../docs/development/compiling/compiling_for_windows.rst:173 msgid "Running SCons" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:172 +#: ../../docs/development/compiling/compiling_for_windows.rst:175 msgid "" "Once inside the **Developer Console/Tools Console Prompt**, go to the root " "directory of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:179 +#: ../../docs/development/compiling/compiling_for_windows.rst:182 msgid "" "Tip: if you installed \"Pywin32 Python Extension\" you can append the -j " "command to instruct SCons to run parallel builds like this:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:186 +#: ../../docs/development/compiling/compiling_for_windows.rst:189 msgid "" "In general, it is OK to have at least as many threads compiling Godot as you " "have cores in your CPU, if not one or two more. Feel free to add the -j " @@ -54577,7 +54787,7 @@ msgid "" "Extension\"." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:191 +#: ../../docs/development/compiling/compiling_for_windows.rst:194 msgid "" "If all goes well, the resulting binary executable will be placed in ``C:" "\\godot\\bin\\`` with the name of ``godot.windows.tools.32.exe`` or ``godot." @@ -54586,25 +54796,25 @@ msgid "" "corresponding executable." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:197 +#: ../../docs/development/compiling/compiling_for_windows.rst:200 msgid "" "This executable file contains the whole engine and runs without any " "dependencies. Executing it will bring up the Project Manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:200 -#: ../../docs/development/compiling/compiling_for_x11.rst:108 +#: ../../docs/development/compiling/compiling_for_windows.rst:203 +#: ../../docs/development/compiling/compiling_for_x11.rst:111 msgid "" "If you are compiling Godot for production use, then you can make the final " "executable smaller and faster by adding the SCons option " "``target=release_debug``." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:205 +#: ../../docs/development/compiling/compiling_for_windows.rst:208 msgid "How the prompts actually work" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:207 +#: ../../docs/development/compiling/compiling_for_windows.rst:210 msgid "" "The Visual Studio command prompts are just shortcuts that call the standard " "Command Prompt and have it run a batch file before giving you control. The " @@ -54615,46 +54825,46 @@ msgid "" "enables are needed by Godot/SCons." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:215 +#: ../../docs/development/compiling/compiling_for_windows.rst:218 msgid "" "Since you are probably using Visual Studio 2013 or 2015, if you need to " "recreate them manually, use the below folders, or place them on the desktop/" "taskbar:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:224 +#: ../../docs/development/compiling/compiling_for_windows.rst:227 msgid "" "Start the creation of the shortcut by pressing the ``right mouse button/New/" "Shortcut`` in an empty place in your desired location." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:227 +#: ../../docs/development/compiling/compiling_for_windows.rst:230 msgid "" "Then copy one of these commands below for the corresponding tool you need " "into the \"Path\" and \"Name\" sections of the shortcut creation wizard, and " "fix the path to the batch file if needed." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:231 +#: ../../docs/development/compiling/compiling_for_windows.rst:234 msgid "Visual Studio 2013 is in the \"Microsoft Visual Studio 12.0\" folder." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:232 +#: ../../docs/development/compiling/compiling_for_windows.rst:235 msgid "Visual Studio 2015 is in the \"Microsoft Visual Studio 14.0\" folder." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:233 +#: ../../docs/development/compiling/compiling_for_windows.rst:236 msgid "etc." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:252 +#: ../../docs/development/compiling/compiling_for_windows.rst:255 msgid "" "After you create the shortcut, in the shortcut's properties, that you can " "access by right clicking with your mouse on the shortcut itself, you can " "choose the starting directory of the command prompt (\"Start in\" field)." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:257 +#: ../../docs/development/compiling/compiling_for_windows.rst:260 msgid "" "Some of these shortcuts (namely the 64-bit compilers) seem to not be " "available in the Express edition of Visual Studio or Visual C++. Before " @@ -54663,68 +54873,68 @@ msgid "" "architecture you want to build from the command prompt." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:278 +#: ../../docs/development/compiling/compiling_for_windows.rst:281 msgid "" "In case you are wondering what these prompt shortcuts do, they call ``cmd." "exe`` with the ``\\k`` option and have it run a Batch file." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:290 +#: ../../docs/development/compiling/compiling_for_windows.rst:293 msgid "How to run an automated build of Godot" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:292 +#: ../../docs/development/compiling/compiling_for_windows.rst:295 msgid "" "If you just need to run the compilation process via a Batch file or directly " "in the Windows Command Prompt you need to use the following command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:300 +#: ../../docs/development/compiling/compiling_for_windows.rst:303 msgid "with one of the following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:302 +#: ../../docs/development/compiling/compiling_for_windows.rst:305 msgid "x86 (32-bit cl.exe to compile for the 32-bit architecture)" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:303 +#: ../../docs/development/compiling/compiling_for_windows.rst:306 msgid "amd64 (64-bit cl.exe to compile for the 64-bit architecture)" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:304 +#: ../../docs/development/compiling/compiling_for_windows.rst:307 msgid "x86_amd64 (32-bit cl.exe to compile for the 64-bit architecture)" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:305 +#: ../../docs/development/compiling/compiling_for_windows.rst:308 msgid "amd64_x86 (64-bit cl.exe to compile for the 32-bit architecture)" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:307 +#: ../../docs/development/compiling/compiling_for_windows.rst:310 msgid "and after that one, you can run SCons:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:313 +#: ../../docs/development/compiling/compiling_for_windows.rst:316 msgid "or you can run them together:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:324 +#: ../../docs/development/compiling/compiling_for_windows.rst:327 msgid "Development in Visual Studio or other IDEs" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:326 +#: ../../docs/development/compiling/compiling_for_windows.rst:329 msgid "" "For most projects, using only scripting is enough but when development in C+" "+ is needed, for creating modules or extending the engine, working with an " "IDE is usually desirable." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:330 +#: ../../docs/development/compiling/compiling_for_windows.rst:333 msgid "" "You can create a Visual Studio solution via SCons by running SCons with the " "``vsproj=yes`` parameter, like this:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:337 +#: ../../docs/development/compiling/compiling_for_windows.rst:340 msgid "" "You will be able to open Godot's source in a Visual Studio solution now, and " "able to build Godot via the Visual Studio **Build** button. However, make " @@ -54732,7 +54942,7 @@ msgid "" "properly." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:342 +#: ../../docs/development/compiling/compiling_for_windows.rst:345 msgid "" "If you need to edit the compilation commands, they are located in \"Godot\" " "project settings, NMAKE sheet. SCons is called at the end of the commands. " @@ -54741,11 +54951,11 @@ msgid "" "They are equivalent." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:349 +#: ../../docs/development/compiling/compiling_for_windows.rst:352 msgid "Cross-compiling for Windows from other operating systems" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:351 +#: ../../docs/development/compiling/compiling_for_windows.rst:354 msgid "" "If you are a Linux or macOS user, you need to install `MinGW-w64 `_, which typically comes in 32-bit and 64-bit " @@ -54753,114 +54963,114 @@ msgid "" "known ones:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:356 -#: ../../docs/development/compiling/compiling_for_x11.rst:30 +#: ../../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:360 -#: ../../docs/development/compiling/compiling_for_x11.rst:34 +#: ../../docs/development/compiling/compiling_for_windows.rst:363 +#: ../../docs/development/compiling/compiling_for_x11.rst:37 msgid "**Debian** / **Ubuntu**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:364 -#: ../../docs/development/compiling/compiling_for_x11.rst:40 +#: ../../docs/development/compiling/compiling_for_windows.rst:367 +#: ../../docs/development/compiling/compiling_for_x11.rst:43 msgid "**Fedora**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:368 +#: ../../docs/development/compiling/compiling_for_windows.rst:371 msgid "**macOS**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:372 -#: ../../docs/development/compiling/compiling_for_x11.rst:57 +#: ../../docs/development/compiling/compiling_for_windows.rst:375 +#: ../../docs/development/compiling/compiling_for_x11.rst:60 msgid "**Mageia**" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:377 +#: ../../docs/development/compiling/compiling_for_windows.rst:380 msgid "" "Before allowing you to attempt the compilation, SCons will check for the " "following binaries in your ``$PATH``:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:385 +#: ../../docs/development/compiling/compiling_for_windows.rst:388 msgid "" "If the binaries are not located in the ``$PATH`` (e.g. ``/usr/bin``), you " "can define the following environment variables to give a hint to the build " "system:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:394 +#: ../../docs/development/compiling/compiling_for_windows.rst:397 msgid "" "To make sure you are doing things correctly, executing the following in the " "shell should result in a working compiler (the version output may differ " "based on your system):" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:404 -#: ../../docs/development/compiling/compiling_for_android.rst:131 -#: ../../docs/development/compiling/compiling_for_android.rst:178 +#: ../../docs/development/compiling/compiling_for_windows.rst:407 +#: ../../docs/development/compiling/compiling_for_android.rst:122 +#: ../../docs/development/compiling/compiling_for_android.rst:169 #: ../../docs/development/cpp/creating_android_modules.rst:335 msgid "Troubleshooting" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:406 +#: ../../docs/development/compiling/compiling_for_windows.rst:409 msgid "" "Cross-compiling from some versions of Ubuntu may lead to `this bug `_, due to a default configuration " "lacking support for POSIX threading." msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:409 +#: ../../docs/development/compiling/compiling_for_windows.rst:412 msgid "" "You can change that configuration following those instructions, for 32-bit:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:419 +#: ../../docs/development/compiling/compiling_for_windows.rst:422 msgid "And for 64-bit:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:429 +#: ../../docs/development/compiling/compiling_for_windows.rst:432 msgid "Creating Windows export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:431 +#: ../../docs/development/compiling/compiling_for_windows.rst:434 msgid "" "Windows export templates are created by compiling Godot as release, with the " "following flags:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:434 +#: ../../docs/development/compiling/compiling_for_windows.rst:437 msgid "(using Mingw32 command prompt, using the bits parameter)" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:441 +#: ../../docs/development/compiling/compiling_for_windows.rst:444 msgid "(using Mingw-w64 command prompt, using the bits parameter)" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:448 +#: ../../docs/development/compiling/compiling_for_windows.rst:451 msgid "" "(using the Visual Studio command prompts for the correct architecture, " "notice the lack of bits parameter)" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:456 +#: ../../docs/development/compiling/compiling_for_windows.rst:459 msgid "If you plan on replacing the standard templates, copy these to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:462 +#: ../../docs/development/compiling/compiling_for_windows.rst:465 msgid "With the following names:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:471 -#: ../../docs/development/compiling/compiling_for_x11.rst:150 +#: ../../docs/development/compiling/compiling_for_windows.rst:474 +#: ../../docs/development/compiling/compiling_for_x11.rst:153 msgid "" "However, if you are writing your custom modules or custom C++ code, you " "might instead want to configure your binaries as custom export templates " "here:" msgstr "" -#: ../../docs/development/compiling/compiling_for_windows.rst:477 +#: ../../docs/development/compiling/compiling_for_windows.rst:480 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 " @@ -54927,37 +55137,37 @@ msgstr "" msgid "*Optional* - yasm (for WebM SIMD optimizations)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:28 +#: ../../docs/development/compiling/compiling_for_x11.rst:31 msgid "Distro-specific oneliners" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:46 +#: ../../docs/development/compiling/compiling_for_x11.rst:49 msgid "**FreeBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:51 +#: ../../docs/development/compiling/compiling_for_x11.rst:54 msgid "**Gentoo**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:63 +#: ../../docs/development/compiling/compiling_for_x11.rst:66 msgid "**OpenBSD**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:67 +#: ../../docs/development/compiling/compiling_for_x11.rst:70 msgid "**openSUSE**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:73 +#: ../../docs/development/compiling/compiling_for_x11.rst:76 msgid "**Solus**" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:82 -#: ../../docs/development/compiling/compiling_for_osx.rst:21 +#: ../../docs/development/compiling/compiling_for_x11.rst:85 +#: ../../docs/development/compiling/compiling_for_osx.rst:24 msgid "" "Start a terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:88 +#: ../../docs/development/compiling/compiling_for_x11.rst:91 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 " @@ -54965,61 +55175,61 @@ msgid "" "below." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:92 -#: ../../docs/development/compiling/compiling_for_osx.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:95 +#: ../../docs/development/compiling/compiling_for_osx.rst:30 msgid "" "If all goes well, the resulting binary executable will be placed in the \"bin" "\" subdirectory. This executable file contains the whole engine and runs " "without any dependencies. Executing it will bring up the project manager." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:99 +#: ../../docs/development/compiling/compiling_for_x11.rst:102 msgid "If you wish to compile using Clang rather than GCC, use this command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:105 +#: ../../docs/development/compiling/compiling_for_x11.rst:108 msgid "" "Using Clang appears to be a requirement for OpenBSD, otherwise fonts would " "not build." msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:113 -#: ../../docs/development/compiling/compiling_for_web.rst:20 +#: ../../docs/development/compiling/compiling_for_x11.rst:116 +#: ../../docs/development/compiling/compiling_for_web.rst:23 msgid "Building export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:115 +#: ../../docs/development/compiling/compiling_for_x11.rst:118 msgid "" "To build X11 (Linux, \\*BSD) export templates, run the build system with the " "following parameters:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:118 +#: ../../docs/development/compiling/compiling_for_x11.rst:121 msgid "(32 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:125 +#: ../../docs/development/compiling/compiling_for_x11.rst:128 msgid "(64 bits)" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:132 +#: ../../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:135 +#: ../../docs/development/compiling/compiling_for_x11.rst:138 msgid "" "To create standard export templates, the resulting files must be copied to:" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:141 +#: ../../docs/development/compiling/compiling_for_x11.rst:144 msgid "" "and named like this (even for \\*BSD which is seen as \"Linux X11\" by " "Godot):" msgstr "" -#: ../../docs/development/compiling/compiling_for_x11.rst:156 +#: ../../docs/development/compiling/compiling_for_x11.rst:159 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 " @@ -55039,18 +55249,18 @@ msgstr "" msgid "Xcode (or the more lightweight Command Line Tools for Xcode)" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:32 +#: ../../docs/development/compiling/compiling_for_osx.rst:35 msgid "" "To create an .app like in the official builds, you need to use the template " "located in ``misc/dist/osx_tools.app``. Typically, for a \".64\" optimised " "binary built with `scons p=osx target=release_debug`:" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:44 +#: ../../docs/development/compiling/compiling_for_osx.rst:47 msgid "Compiling for 32 and 64-bit" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:46 +#: ../../docs/development/compiling/compiling_for_osx.rst:49 msgid "" "All macOS versions after 10.6 are 64-bit exclusive, so the executable will " "be a \".64\" file by default for most users. If you would like to compile a " @@ -55058,11 +55268,11 @@ msgid "" "specifying the bits in the scons command like so:" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:56 +#: ../../docs/development/compiling/compiling_for_osx.rst:59 msgid "Cross-compiling" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:58 +#: ../../docs/development/compiling/compiling_for_osx.rst:61 msgid "" "It is possible to compile for macOS in a Linux environment (and maybe also " "in Windows with Cygwin). For that you will need `OSXCross ` " "somewhere on your machine (or download a zip file and extract it somewhere), " "e.g.:" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:71 +#: ../../docs/development/compiling/compiling_for_osx.rst:74 msgid "" "Follow the instructions to package the SDK: https://github.com/tpoechtrager/" "osxcross#packaging-the-sdk" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:73 +#: ../../docs/development/compiling/compiling_for_osx.rst:76 msgid "" "Follow the instructions to install OSXCross: https://github.com/tpoechtrager/" "osxcross#installation" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:76 +#: ../../docs/development/compiling/compiling_for_osx.rst:79 msgid "" "After that, you will need to define the ``OSXCROSS_ROOT`` as the path to the " "OSXCross installation (the same place where you cloned the repository/" "extracted the zip), e.g.:" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:84 +#: ../../docs/development/compiling/compiling_for_osx.rst:87 msgid "Now you can compile with SCons like you normally would:" msgstr "" -#: ../../docs/development/compiling/compiling_for_osx.rst:90 +#: ../../docs/development/compiling/compiling_for_osx.rst:93 msgid "" "If you have an OSXCross SDK version different from the one expected by the " "SCons buildsystem, you can specify a custom one with the ``osxcross_sdk`` " @@ -55161,27 +55371,27 @@ msgid "" "current Gradle." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:34 +#: ../../docs/development/compiling/compiling_for_android.rst:37 msgid "Setting up the buildsystem" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:36 +#: ../../docs/development/compiling/compiling_for_android.rst:39 msgid "Set the environment variable ANDROID_HOME to point to the Android SDK." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:39 +#: ../../docs/development/compiling/compiling_for_android.rst:42 msgid "" "Set the environment variable ANDROID_NDK_ROOT to point to the Android NDK." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:42 +#: ../../docs/development/compiling/compiling_for_android.rst:45 msgid "" "To set those environment variables on Windows, press Windows+R, type " "\"control system\", then click on **Advanced system settings** in the left " "pane, then click on **Environment variables** on the window that appears." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:47 +#: ../../docs/development/compiling/compiling_for_android.rst:50 msgid "" "To set those environment variables on Unix (e.g. Linux, macOS), use ``export " "ANDROID_HOME=/path/to/android-sdk`` and ``export ANDROID_NDK_ROOT=/path/to/" @@ -55189,24 +55399,11 @@ msgid "" "path where Android SDK and Android NDK are placed on your PC." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:54 -#: ../../docs/development/compiling/cross-compiling_for_ios_on_linux.rst:101 -msgid "Toolchain" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_android.rst:56 -msgid "" -"We usually try to keep the Godot Android build code up to date, but Google " -"changes their toolchain versions often, so if compilation fails due to wrong " -"toolchain version, go to your NDK directory and check the current number, " -"then set the following environment variable:" -msgstr "" - -#: ../../docs/development/compiling/compiling_for_android.rst:66 +#: ../../docs/development/compiling/compiling_for_android.rst:57 msgid "Building the export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:68 +#: ../../docs/development/compiling/compiling_for_android.rst:59 msgid "" "Godot needs two export templates for Android: the optimized \"release\" " "template (`android_release.apk`) and the debug version (`android_debug." @@ -55214,29 +55411,29 @@ msgid "" "the following arguments:" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:73 +#: ../../docs/development/compiling/compiling_for_android.rst:64 msgid "Release template (used when exporting with \"Debugging Enabled\" OFF)" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:81 +#: ../../docs/development/compiling/compiling_for_android.rst:72 msgid "" "(on Linux or macOS, execute the `gradlew` script with `./gradlew build`)" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:83 -#: ../../docs/development/compiling/compiling_for_android.rst:97 +#: ../../docs/development/compiling/compiling_for_android.rst:74 +#: ../../docs/development/compiling/compiling_for_android.rst:88 msgid "The resulting APK is in:" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:89 +#: ../../docs/development/compiling/compiling_for_android.rst:80 msgid "Debug template (used when exporting with \"Debugging Enabled\" ON)" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:104 +#: ../../docs/development/compiling/compiling_for_android.rst:95 msgid "Faster compilation" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:106 +#: ../../docs/development/compiling/compiling_for_android.rst:97 msgid "" "If you are on Unix or installed PyWin32 on Windows and have multiple CPU " "cores available, you can speed up the compilation by adding the ``-jX`` " @@ -55244,35 +55441,35 @@ msgid "" "want to allocate to the compilation, e.g. ``scons -j4``." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:113 +#: ../../docs/development/compiling/compiling_for_android.rst:104 msgid "Adding support for x86 devices" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:115 +#: ../../docs/development/compiling/compiling_for_android.rst:106 msgid "" "If you also want to include support for x86 devices, run the scons command a " "second time with the ``android_arch=x86`` argument before building the APK " "with Gradle. For example for the release template:" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:127 +#: ../../docs/development/compiling/compiling_for_android.rst:118 msgid "" "This will create a fat binary that works in both platforms, but will add " "about 6 megabytes to the APK." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:133 +#: ../../docs/development/compiling/compiling_for_android.rst:124 msgid "" "It might be necessary to clean the build cache between two APK compilations, " "as some users have reported issues when building the two export templates " "one after the other." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:138 +#: ../../docs/development/compiling/compiling_for_android.rst:129 msgid "Using the export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:140 +#: ../../docs/development/compiling/compiling_for_android.rst:131 msgid "" "As export templates for Android, Godot needs release and debug APKs that " "were compiled against the same version/commit as the editor. If you are " @@ -55280,40 +55477,40 @@ msgid "" "export templates, or to build your own from the same version." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:145 +#: ../../docs/development/compiling/compiling_for_android.rst:136 msgid "" "When exporting your game, Godot opens the APK, changes a few things inside " "and adds your files." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:149 +#: ../../docs/development/compiling/compiling_for_android.rst:140 msgid "Installing the templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:151 +#: ../../docs/development/compiling/compiling_for_android.rst:142 msgid "" "The newly-compiled templates (android_debug.apk and android_release.apk) " "must be copied to Godot's templates folder with their respective names. The " "templates folder can be located in:" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:155 +#: ../../docs/development/compiling/compiling_for_android.rst:146 msgid "" "Windows: ``C:\\Users\\[username]\\AppData\\Roaming\\Godot\\templates" "\\[version]\\``" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:156 +#: ../../docs/development/compiling/compiling_for_android.rst:147 msgid "Linux: ``/home/[username]/.local/share/godot/templates/[version]/``" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:157 +#: ../../docs/development/compiling/compiling_for_android.rst:148 msgid "" "macOS: ``/Users/[username]/Library/Application Support/Godot/templates/" "[version]/``" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:159 +#: ../../docs/development/compiling/compiling_for_android.rst:150 msgid "" "``[version]`` is of the form ``major.minor[.patch].status`` using values " "from ``version.py`` in your Godot source repository (e.g. ``3.0.5.stable`` " @@ -55321,131 +55518,131 @@ msgid "" "``version.txt`` file located next to your export templates." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:166 +#: ../../docs/development/compiling/compiling_for_android.rst:157 msgid "" "However, if you are writing your custom modules or custom C++ code, you " "might instead want to configure your APKs as custom export templates here:" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:172 +#: ../../docs/development/compiling/compiling_for_android.rst:163 msgid "" "You don't even need to copy them, you can just reference the resulting file " "in the ``bin\\`` directory of your Godot source folder, so that the next " "time you build you will automatically have the custom templates referenced." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:181 +#: ../../docs/development/compiling/compiling_for_android.rst:172 msgid "Application not installed" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:183 +#: ../../docs/development/compiling/compiling_for_android.rst:174 msgid "" "Android might complain the application is not correctly installed. If so, " "check the following:" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:186 +#: ../../docs/development/compiling/compiling_for_android.rst:177 msgid "Check that the debug keystore is properly generated." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:187 +#: ../../docs/development/compiling/compiling_for_android.rst:178 msgid "Check that jarsigner is from JDK 6, 7 or 8." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:189 +#: ../../docs/development/compiling/compiling_for_android.rst:180 msgid "If it still fails, open a command line and run logcat:" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:195 +#: ../../docs/development/compiling/compiling_for_android.rst:186 msgid "" "And check the output while the application is installed. Reason for failure " "should be presented there." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:198 +#: ../../docs/development/compiling/compiling_for_android.rst:189 msgid "Seek assistance if you can't figure it out." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:201 +#: ../../docs/development/compiling/compiling_for_android.rst:192 msgid "Application exits immediately" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:203 +#: ../../docs/development/compiling/compiling_for_android.rst:194 msgid "" "If the application runs but exits immediately, there might be one of the " "following reasons:" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:206 +#: ../../docs/development/compiling/compiling_for_android.rst:197 msgid "" "Make sure to use export templates that match your editor version; if you use " "a new Godot version, you *have* to update the templates too." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:208 +#: ../../docs/development/compiling/compiling_for_android.rst:199 msgid "libgodot_android.so is not in ``lib/armeabi-v7a`` or ``lib/armeabi``" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:209 +#: ../../docs/development/compiling/compiling_for_android.rst:200 msgid "Device does not support armv7 (try compiling yourself for armv6)" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:210 +#: ../../docs/development/compiling/compiling_for_android.rst:201 msgid "Device is Intel, and apk is compiled for ARM." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:212 +#: ../../docs/development/compiling/compiling_for_android.rst:203 msgid "In any case, ``adb logcat`` should also show the cause of the error." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:215 +#: ../../docs/development/compiling/compiling_for_android.rst:206 msgid "Compilation fails" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:217 +#: ../../docs/development/compiling/compiling_for_android.rst:208 msgid "" "On Linux systems with Kernel version 4.3 or newer, compilation may fail with " "the error \"pthread_create failed: Resource temporarily unavailable.\"" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:220 +#: ../../docs/development/compiling/compiling_for_android.rst:211 msgid "" "This is because of a change in the way Linux limits thread creation. But you " "can change those limits through the command line. Please read this section " "thoroughly before beginning." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:224 +#: ../../docs/development/compiling/compiling_for_android.rst:215 msgid "" "First open a terminal, then begin compilation as usual (it may be a good " "idea to run a --clean first). While compiling enter the following in your " "terminal:" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:232 +#: ../../docs/development/compiling/compiling_for_android.rst:223 msgid "" "The output should list a scons process, with its PID as the first number in " "the output. For example the PID 1077 in the output shown below:" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:240 +#: ../../docs/development/compiling/compiling_for_android.rst:231 msgid "" "Now you can use another command to increase the number of processes that " "scons is allowed to spawn. You can check its current limits with:" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:247 +#: ../../docs/development/compiling/compiling_for_android.rst:238 msgid "You can increase those limits with the command:" msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:253 +#: ../../docs/development/compiling/compiling_for_android.rst:244 msgid "" "Obviously you should substitute the scons PID output by top and a limits " "that you think suitable. These are in the form --nproc=soft:hard where soft " "must be lesser than or equal to hard. See the man page for more information." msgstr "" -#: ../../docs/development/compiling/compiling_for_android.rst:258 +#: ../../docs/development/compiling/compiling_for_android.rst:249 msgid "" "If all went well, and you entered the prlimit command while scons was " "running, then your compilation should continue without the error." @@ -55465,29 +55662,29 @@ msgstr "" msgid "Xcode with the iOS SDK and the command line tools." msgstr "" -#: ../../docs/development/compiling/compiling_for_ios.rst:18 +#: ../../docs/development/compiling/compiling_for_ios.rst:21 msgid "Open a Terminal, go to the root dir of the engine source code and type:" msgstr "" -#: ../../docs/development/compiling/compiling_for_ios.rst:24 +#: ../../docs/development/compiling/compiling_for_ios.rst:27 msgid "for a debug build, or:" msgstr "" -#: ../../docs/development/compiling/compiling_for_ios.rst:30 +#: ../../docs/development/compiling/compiling_for_ios.rst:33 msgid "" "for a release build (check ``platform/iphone/detect.py`` for the compiler " "flags used for each configuration)." msgstr "" -#: ../../docs/development/compiling/compiling_for_ios.rst:33 +#: ../../docs/development/compiling/compiling_for_ios.rst:36 msgid "Alternatively, you can run" msgstr "" -#: ../../docs/development/compiling/compiling_for_ios.rst:39 +#: ../../docs/development/compiling/compiling_for_ios.rst:42 msgid "for a Simulator executable." msgstr "" -#: ../../docs/development/compiling/compiling_for_ios.rst:41 +#: ../../docs/development/compiling/compiling_for_ios.rst:44 msgid "" "Additionally since some time Apple requires 64 bit version of application " "binary when you are uploading to iStore. The best way to provide these is to " @@ -55498,17 +55695,17 @@ msgid "" "following commands:" msgstr "" -#: ../../docs/development/compiling/compiling_for_ios.rst:53 +#: ../../docs/development/compiling/compiling_for_ios.rst:56 msgid "Run" msgstr "" -#: ../../docs/development/compiling/compiling_for_ios.rst:55 +#: ../../docs/development/compiling/compiling_for_ios.rst:58 msgid "" "To run on a device or simulator, follow these instructions: :ref:" "`doc_exporting_for_ios`." msgstr "" -#: ../../docs/development/compiling/compiling_for_ios.rst:58 +#: ../../docs/development/compiling/compiling_for_ios.rst:61 msgid "" "Replace or add your executable to the Xcode project, and change the " "\"executable name\" property on Info.plist accordingly if you use an " @@ -55618,6 +55815,10 @@ msgstr "" msgid "Pack the SDK:" msgstr "" +#: ../../docs/development/compiling/cross-compiling_for_ios_on_linux.rst:101 +msgid "Toolchain" +msgstr "" + #: ../../docs/development/compiling/cross-compiling_for_ios_on_linux.rst:103 msgid "Build cctools:" msgstr "" @@ -55702,61 +55903,61 @@ msgid "" "(default) branch. Keep it in a path without spaces to avoid problems." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:23 +#: ../../docs/development/compiling/compiling_for_uwp.rst:26 msgid "" "You need to open a proper Visual Studio prompt for the target architecture " "you want to build. Check :ref:`doc_compiling_for_windows` to see how these " "prompts work." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:27 +#: ../../docs/development/compiling/compiling_for_uwp.rst:30 msgid "" "There are three target architectures for UWP: x86 (32-bits), x64 (64-bits) " "and ARM (32-bits). For the latter, you can run ``vcvarsall.bat`` with " "``x86_arm`` or ``amd64_arm`` as argument to set the environment." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:31 +#: ../../docs/development/compiling/compiling_for_uwp.rst:34 msgid "" "Set the ``ANGLE_SRC_PATH`` to the directory where you downloaded the ANGLE " "source code. The build process will also build ANGLE to produce the required " "DLLs for the selected architecture." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:35 +#: ../../docs/development/compiling/compiling_for_uwp.rst:38 msgid "" "Once you're set, run the SCons command similarly to the other platforms::" msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:40 +#: ../../docs/development/compiling/compiling_for_uwp.rst:43 msgid "Creating UWP export templates" msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:42 +#: ../../docs/development/compiling/compiling_for_uwp.rst:45 msgid "" "To export using the editor you need to properly build package the templates. " "You need all three architectures with ``debug`` and ``release`` templates to " "be able to export." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:46 +#: ../../docs/development/compiling/compiling_for_uwp.rst:49 msgid "" "Open the command prompt for one architecture and run SCons twice (once for " "each target)::" msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:52 +#: ../../docs/development/compiling/compiling_for_uwp.rst:55 msgid "Repeat for the other architectures." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:54 +#: ../../docs/development/compiling/compiling_for_uwp.rst:57 msgid "" "In the end your ``bin`` folder will have the ``.exe`` binaries with a name " "like ``godot.uwp.opt.debug.32.x86.exe`` (with variations for each target/" "arch)." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:58 +#: ../../docs/development/compiling/compiling_for_uwp.rst:61 msgid "" "Copy one of these to ``misc/dist/uwp_template`` inside the Godot source " "folder and rename the binary to ``godot.uwp.exe``. From the ANGLE source, " @@ -55765,13 +55966,13 @@ msgid "" "putting them along with the executable." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:64 +#: ../../docs/development/compiling/compiling_for_uwp.rst:67 msgid "" "Add the files in the ``uwp_template`` folder to a ZIP. Rename the resulting " "Zip according to the target/architecture of the template::" msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:74 +#: ../../docs/development/compiling/compiling_for_uwp.rst:77 msgid "" "Move those templates to the ``[versionstring]\\templates`` folder in Godot " "settings path, where `versionstring` is the version of Godot you have " @@ -55780,11 +55981,11 @@ msgid "" "\"Custom Package\" property in the export window." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:81 +#: ../../docs/development/compiling/compiling_for_uwp.rst:84 msgid "Running UWP apps with Visual Studio" msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:83 +#: ../../docs/development/compiling/compiling_for_uwp.rst:86 msgid "" "If you want to debug the UWP port or simply run your apps without packaging " "and signing, you can deploy and launch them using Visual Studio. It might be " @@ -55792,14 +55993,14 @@ msgid "" "Xbox One." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:88 +#: ../../docs/development/compiling/compiling_for_uwp.rst:91 msgid "" "Within the ANGLE source folder, open ``templates`` and double-click the " "``install.bat`` script file. This will install the Visual Studio project " "templates for ANGLE apps." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:92 +#: ../../docs/development/compiling/compiling_for_uwp.rst:95 msgid "" "If you have not built Godot yet, open the ``winrt/10/src/angle.sln`` " "solution from the ANGLE source and build it to Release/Win32 target. You may " @@ -55807,14 +56008,14 @@ msgid "" "use MSBuild if you're comfortable with the command line." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:97 +#: ../../docs/development/compiling/compiling_for_uwp.rst:100 msgid "" "Create a new Windows App project using the \"App for OpenGL ES (Windows " "Universal)\" project template, which can be found under the ``Visual C++/" "Windows/Universal`` category." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:101 +#: ../../docs/development/compiling/compiling_for_uwp.rst:104 msgid "" "This is a base project with the ANGLE dependencies already set up. However, " "by default it picks the debug version of the DLLs which usually have poor " @@ -55823,14 +56024,14 @@ msgid "" "``Debug_Win32`` to ``Release_Win32`` (or ``Release_ARM`` for devices)." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:107 +#: ../../docs/development/compiling/compiling_for_uwp.rst:110 msgid "" "In the same \"Binaries\" filter, select \"Add > Existing Item\" and point to " "the Godot executable for UWP you have. In the \"Properties\" window, set " "\"Content\" to ``True`` so it's included in the project." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:111 +#: ../../docs/development/compiling/compiling_for_uwp.rst:114 msgid "" "Right-click the ``Package.appxmanifest`` file and select \"Open With... > " "XML (Text) Editor\". In the ``Package/Applications/Application`` element, " @@ -55840,7 +56041,7 @@ msgid "" "Godot executable is correctly called when the app starts." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:118 +#: ../../docs/development/compiling/compiling_for_uwp.rst:121 msgid "" "Create a folder (*not* a filter) called ``game`` in your Visual Studio " "project folder and there you can put either a ``data.pck`` file or your " @@ -55849,7 +56050,7 @@ msgid "" "they're copied to the app." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:124 +#: ../../docs/development/compiling/compiling_for_uwp.rst:127 msgid "" "To ease the workflow, you can open the \"Solution Properties\" and in the " "\"Configuration\" section untick the \"Build\" option for the app. You still " @@ -55858,7 +56059,7 @@ msgid "" "\" and selecting \"Build\"." msgstr "" -#: ../../docs/development/compiling/compiling_for_uwp.rst:130 +#: ../../docs/development/compiling/compiling_for_uwp.rst:133 msgid "" "Now you can just run the project and your app should open. You can use also " "the \"Start Without Debugging\" from the \"Debug\" menu (Ctrl+F5) to make it " @@ -55889,7 +56090,7 @@ msgstr "" msgid "`SCons `__ build system" msgstr "" -#: ../../docs/development/compiling/compiling_for_web.rst:22 +#: ../../docs/development/compiling/compiling_for_web.rst:25 msgid "" "Before starting, confirm that the Emscripten configuration file exists and " "specifies all settings correctly. This file is available as ``~/." @@ -55899,7 +56100,7 @@ msgid "" "when starting Emscripten's ``emcc`` program if the file doesn't exist." msgstr "" -#: ../../docs/development/compiling/compiling_for_web.rst:29 +#: ../../docs/development/compiling/compiling_for_web.rst:32 msgid "" "Open a terminal and navigate to the root directory of the engine source " "code. Then instruct SCons to build the JavaScript platform. Specify " @@ -55907,14 +56108,14 @@ msgid "" "for a debug build::" msgstr "" -#: ../../docs/development/compiling/compiling_for_web.rst:36 +#: ../../docs/development/compiling/compiling_for_web.rst:39 msgid "" "By default, the :ref:`JavaScript singleton ` will be " "built into the engine. Since ``eval()`` calls can be a security concern, the " "``javascript_eval`` option can be used to build without the singleton::" msgstr "" -#: ../../docs/development/compiling/compiling_for_web.rst:43 +#: ../../docs/development/compiling/compiling_for_web.rst:46 msgid "" "The engine will now be compiled to WebAssembly by Emscripten. Once finished, " "the resulting file will be placed in the ``bin`` subdirectory. Its name is " @@ -55922,21 +56123,21 @@ msgid "" "zip`` for debug." msgstr "" -#: ../../docs/development/compiling/compiling_for_web.rst:48 +#: ../../docs/development/compiling/compiling_for_web.rst:51 msgid "" "Finally, rename the zip archive to ``webassembly_release.zip`` for the " "release template::" msgstr "" -#: ../../docs/development/compiling/compiling_for_web.rst:53 +#: ../../docs/development/compiling/compiling_for_web.rst:56 msgid "And ``webassembly_debug.zip`` for the debug template::" msgstr "" -#: ../../docs/development/compiling/compiling_for_web.rst:58 +#: ../../docs/development/compiling/compiling_for_web.rst:61 msgid "Building per asm.js translation or LLVM backend" msgstr "" -#: ../../docs/development/compiling/compiling_for_web.rst:60 +#: ../../docs/development/compiling/compiling_for_web.rst:63 msgid "" "WebAssembly can be compiled in two ways: The default is to first compile to " "asm.js, a highly optimizable subset of JavaScript, using Emscripten's " @@ -55945,7 +56146,7 @@ msgid "" "processes, we simply run SCons." msgstr "" -#: ../../docs/development/compiling/compiling_for_web.rst:66 +#: ../../docs/development/compiling/compiling_for_web.rst:69 msgid "" "The other method uses LLVM's WebAssembly backend. This backend is not yet " "available in release versions of LLVM, only in development builds built with " @@ -55955,7 +56156,7 @@ msgid "" "processes as well, so we just invoke SCons." msgstr "" -#: ../../docs/development/compiling/compiling_for_web.rst:73 +#: ../../docs/development/compiling/compiling_for_web.rst:76 msgid "" "In order to choose one of the two methods, the ``LLVM_ROOT`` variable in the " "Emscripten configuration file is used. If it points to a directory "