diff --git a/weblate/docs.pot b/weblate/docs.pot index 9f8dc066f3..1989bb80d6 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: 2019-03-28 09:54+0100\n" +"POT-Creation-Date: 2019-04-09 11:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -141,6 +141,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:7 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:7 #: ../../docs/tutorials/2d/2d_meshes.rst:7 +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:7 #: ../../docs/tutorials/3d/using_transforms.rst:7 #: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:7 #: ../../docs/tutorials/3d/spatial_material.rst:7 @@ -161,6 +162,7 @@ msgstr "" #: ../../docs/tutorials/math/matrices_and_transforms.rst:7 #: ../../docs/tutorials/animation/2d_skeletons.rst:7 #: ../../docs/tutorials/animation/animation_tree.rst:7 +#: ../../docs/tutorials/inputs/input_examples.rst:7 #: ../../docs/tutorials/io/saving_games.rst:7 #: ../../docs/tutorials/i18n/internationalizing_games.rst:7 #: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:7 @@ -2031,9 +2033,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " -"as an excellent design language. This is pretty much what distinguishes " -"Godot from all the other engines out there. Godot was designed from the " -"ground up around this concept." +"as an excellent design language. This distinguishes Godot from all the other " +"engines out there. Godot was designed from the ground up around this concept." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 @@ -3516,8 +3517,8 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:477 msgid "" "Disabling the area's collision shape can cause an error if it happens in the " -"middle of the engine's collision processing. Using ``call_deferred()`` " -"allows us to have Godot wait to disable the shape until it's safe to do so." +"middle of the engine's collision processing. Using ``set_deferred()`` allows " +"us to have Godot wait to disable the shape until it's safe to do so." msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:482 @@ -7538,7 +7539,7 @@ msgstr "" msgid "" "With the animation editor panel open, select the \"logo\" node and set the " "\"Rect / Position\" property to ``(118, -400)`` and press the key button " -"next to the property:" +"next to the property to add a keyframe:" msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:58 @@ -7550,13 +7551,13 @@ msgid "The keyframe will be added in the animation player editor:" msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:64 -msgid "Move the editor cursor to the end by clicking here:" +msgid "Move the editor cursor forward in time by clicking here:" msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:68 msgid "" "Change the logo position to ``(118, 0)`` and add a keyframe again. With two " -"keyframes, the animation happens." +"keyframes with different values, the animation happens." msgstr "" #: ../../docs/getting_started/step_by_step/animations.rst:73 @@ -7725,10 +7726,10 @@ msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:137 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 between the scene instances." +"` function is 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 " +"between the scene instances." msgstr "" #: ../../docs/getting_started/step_by_step/resources.rst:144 @@ -7930,26 +7931,17 @@ msgstr "" #: ../../docs/getting_started/step_by_step/filesystem.rst:9 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." +"A file system manages how 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. Godot stores all assets as " +"files in its file system." msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:14 -msgid "" -"Initial versions of the Godot engine (and previous iterations before it was " -"named Godot) used a database. Assets were stored in it and assigned an ID. " -"Other approaches were tried as well, such as local databases, files with " -"metadata, etc. In the end, the simple approach won and now Godot stores all " -"assets as files in the file system." -msgstr "" - -#: ../../docs/getting_started/step_by_step/filesystem.rst:21 +#: ../../docs/getting_started/step_by_step/filesystem.rst:15 msgid "Implementation" msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:23 +#: ../../docs/getting_started/step_by_step/filesystem.rst:17 msgid "" "The file system stores resources on disk. Anything, from a script, to a " "scene or a PNG image is a resource to the engine. If a resource contains " @@ -7960,41 +7952,40 @@ msgid "" "font textures." msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:30 +#: ../../docs/getting_started/step_by_step/filesystem.rst:24 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 its best to play along with " -"SVN, Git, Mercurial, Perforce, etc." +"The Godot file system avoids using metadata files. Existing asset managers " +"and VCSs are better than anything we can implement, so Godot tries its best " +"to play along with SVN, Git, Mercurial, Perforce, etc." msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:35 -msgid "Example of a file system contents:" +#: ../../docs/getting_started/step_by_step/filesystem.rst:28 +msgid "Example of file system contents:" msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:46 +#: ../../docs/getting_started/step_by_step/filesystem.rst:39 msgid "project.godot" msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:48 +#: ../../docs/getting_started/step_by_step/filesystem.rst:41 msgid "" "The project.godot file is the project description file, and it is always " "found at the root of the project. In fact, its location defines where the " "root is. This is the first file that Godot looks for when opening a project." msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:52 +#: ../../docs/getting_started/step_by_step/filesystem.rst:45 msgid "" "This file contains the project configuration in plain text, using the win." "ini format. Even an empty project.godot can function as a basic definition " "of a blank project." msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:57 +#: ../../docs/getting_started/step_by_step/filesystem.rst:50 msgid "Path delimiter" msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:59 +#: ../../docs/getting_started/step_by_step/filesystem.rst:52 msgid "" "Godot only supports ``/`` as a path delimiter. This is done for portability " "reasons. All operating systems support this, even Windows, so a path such as " @@ -8002,25 +7993,25 @@ msgid "" "godot``." msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:65 +#: ../../docs/getting_started/step_by_step/filesystem.rst:58 #: ../../docs/tutorials/io/data_paths.rst:16 msgid "Resource path" msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:67 +#: ../../docs/getting_started/step_by_step/filesystem.rst:60 msgid "" "When accessing resources, using the host OS file system layout can be " "cumbersome and non-portable. To solve this problem, the special path ``res://" "`` was created." msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:71 +#: ../../docs/getting_started/step_by_step/filesystem.rst:64 msgid "" "The path ``res://`` will always point at the project root (where project." -"godot is located, so in fact ``res://project.godot`` is always valid)." +"godot is located, so ``res://project.godot`` is always valid)." msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:75 +#: ../../docs/getting_started/step_by_step/filesystem.rst:68 msgid "" "This file system is read-write only when running the project locally from " "the editor. When exported or when running on different devices (such as " @@ -8028,34 +8019,34 @@ msgid "" "only and writing will no longer be permitted." msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:81 +#: ../../docs/getting_started/step_by_step/filesystem.rst:74 msgid "User path" msgstr "" +#: ../../docs/getting_started/step_by_step/filesystem.rst:76 +msgid "" +"Writing to disk is still needed for tasks such as saving game state or " +"downloading content packs. To this end, the engine ensures that there is a " +"special path ``user://`` that is always writable." +msgstr "" + +#: ../../docs/getting_started/step_by_step/filesystem.rst:81 +msgid "Host file system" +msgstr "" + #: ../../docs/getting_started/step_by_step/filesystem.rst:83 msgid "" -"Writing to disk is often still needed for various tasks such as saving game " -"state or downloading content packs. To this end, the engine ensures that " -"there is a special path ``user://`` that is always writable." -msgstr "" - -#: ../../docs/getting_started/step_by_step/filesystem.rst:88 -msgid "Host file system" -msgstr "" - -#: ../../docs/getting_started/step_by_step/filesystem.rst:90 -msgid "" "Alternatively host file system paths can also be used, but this is not " "recommended for a released product as these paths are not guaranteed to work " "on all platforms. However, using host file system paths can be useful when " -"writing development tools in Godot!" +"writing development tools in Godot." msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:96 +#: ../../docs/getting_started/step_by_step/filesystem.rst:89 msgid "Drawbacks" msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:98 +#: ../../docs/getting_started/step_by_step/filesystem.rst:91 msgid "" "There are some drawbacks to this simple file system design. The first issue " "is that moving assets around (renaming them or moving them from one path to " @@ -8064,7 +8055,7 @@ msgid "" "location." msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:103 +#: ../../docs/getting_started/step_by_step/filesystem.rst:96 msgid "" "To avoid this, do all your move, delete and rename operations from within " "Godot, on the FileSystem dock. Never move assets from outside Godot, or " @@ -8072,7 +8063,7 @@ msgid "" "you fix them anyway, but why go the hard route?)." msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:108 +#: ../../docs/getting_started/step_by_step/filesystem.rst:101 msgid "" "The second is that, under Windows and macOS, file and path names are case " "insensitive. If a developer working in a case insensitive host file system " @@ -8082,45 +8073,31 @@ msgid "" "compressed package to store all files." msgstr "" -#: ../../docs/getting_started/step_by_step/filesystem.rst:114 +#: ../../docs/getting_started/step_by_step/filesystem.rst:107 msgid "" "It is recommended that your team clearly define a naming convention for " -"files when working with Godot! One simple fool-proof convention is to only " +"files when working with Godot. One simple fool-proof convention is to only " "allow lowercase file and path names." msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:4 -#: ../../docs/getting_started/step_by_step/scene_tree.rst:41 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:33 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:288 msgid "SceneTree" msgstr "" #: ../../docs/getting_started/step_by_step/scene_tree.rst:9 msgid "" -"This is where things start getting abstract, but don't panic. There's not " -"much more depth than this." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scene_tree.rst:12 -msgid "" "In previous tutorials, everything revolved around the concept of nodes. " -"Scenes are simply a collection of nodes. They become active once they enter " -"the *scene tree*." +"Scenes are collections of nodes. They become active once they enter the " +"*scene tree*." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:16 -msgid "" -"This concept deserves going into a little more detail. In fact, the scene " -"system is not even a core component of Godot as it is possible to skip it " -"and write a script (or C++ code) that talks directly to the servers, but " -"making a game that way would be a lot of work." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scene_tree.rst:22 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:14 msgid "MainLoop" msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:24 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:16 msgid "" "The way Godot works internally is as follows. There is the :ref:`OS " "` class, which is the only instance that runs at the beginning. " @@ -8128,7 +8105,7 @@ msgid "" "loaded." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:29 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:21 msgid "" "When initialization is complete, :ref:`OS ` needs to be supplied " "a :ref:`MainLoop ` to run. Up to this point, all this is " @@ -8136,7 +8113,7 @@ msgid "" "you are ever interested to see how this works internally)." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:35 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:27 msgid "" "The user program, or game, starts in the MainLoop. This class has a few " "methods, for initialization, idle (frame-synchronized callback), fixed " @@ -8144,179 +8121,179 @@ msgid "" "when making games in Godot, writing your own MainLoop seldom makes sense." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:43 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:35 msgid "" "One of the ways to explain how Godot works is that it's a high level game " "engine over a low level middleware." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:46 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:38 msgid "" "The scene system is the game engine, while the :ref:`OS ` and " "servers are the low level API." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:49 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:41 msgid "" -"In any case, the scene system provides its own main loop to OS, :ref:" -"`SceneTree `. This is automatically instanced and set when " -"running a scene, no need to do any extra work." +"The scene system provides its own main loop to OS, :ref:`SceneTree " +"`. This is automatically instanced and set when running a " +"scene, no need to do any extra work." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:54 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:46 msgid "" "It's important to know that this class exists because it has a few important " "uses:" msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:57 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:49 msgid "" "It contains the root :ref:`Viewport `, to which a scene is " "added as a child when it's first opened to become part of the *Scene Tree* " "(more on that next)" msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:60 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:52 msgid "" "It contains information about the groups and has the means to call all nodes " "in a group or get a list of them." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:62 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:54 msgid "" "It contains some global state functionality, such as setting pause mode or " "quitting the process." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:65 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:57 msgid "" "When a node is part of the Scene Tree, the :ref:`SceneTree " -"` singleton can be obtained by simply calling :ref:`Node." +"` singleton can be obtained by calling :ref:`Node." "get_tree() `." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:71 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:63 msgid "Root viewport" msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:73 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:65 msgid "" "The root :ref:`Viewport ` is always at the top of the scene. " "From a node, it can be obtained in two different ways:" msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:88 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:80 msgid "" -"This node contains the main viewport, anything that is a child of a :ref:" +"This node contains the main viewport. Anything that is a child of a :ref:" "`Viewport ` is drawn inside of it by default, so it makes " "sense that the top of all nodes is always a node of this type otherwise " -"nothing would be seen!" +"nothing would be seen." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:93 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:85 msgid "" "While other viewports can be created in the scene (for split-screen effects " "and such), this one is the only one that is never created by the user. It's " "created automatically inside SceneTree." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:98 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:90 #: ../../docs/tutorials/threads/thread_safe_apis.rst:22 msgid "Scene tree" msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:100 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:92 msgid "" "When a node is connected, directly or indirectly, to the root viewport, it " "becomes part of the *scene tree*." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:103 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:95 msgid "" "This means that as explained in previous tutorials, it will get the " "_enter_tree() and _ready() callbacks (as well as _exit_tree())." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:108 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:100 msgid "" "When nodes enter the *Scene Tree*, they become active. They get access to " -"everything they need to process, get input, display 2D and 3D, " -"notifications, play sound, groups, etc. When they are removed from the " -"*scene tree*, they lose access." +"everything they need to process, get input, display 2D and 3D visuals, " +"receive and send notifications, play sounds, etc. When they are removed from " +"the *scene tree*, they lose these abilities." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:114 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:106 msgid "Tree order" msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:116 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:108 msgid "" "Most node operations in Godot, such as drawing 2D, processing, or getting " "notifications are done in tree order. This means that parents and siblings " -"with a smaller rank in the tree order will get notified before the current " +"with a lower rank in the tree order will get notified before the current " "node." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:124 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:116 msgid "\"Becoming active\" by entering the *Scene Tree*" msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:126 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:118 msgid "A scene is loaded from disk or created by scripting." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:127 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:119 msgid "" "The root node of that scene (only one root, remember?) is added as either a " "child of the \"root\" Viewport (from SceneTree), or to any child or " "grandchild of it." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:130 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:122 msgid "" "Every node of the newly added scene, will receive the \"enter_tree\" " "notification ( _enter_tree() callback in GDScript) in top-to-bottom order." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:133 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:125 msgid "" "An extra notification, \"ready\" ( _ready() callback in GDScript) is " "provided for convenience, when a node and all its children are inside the " "active scene." msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:136 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:128 msgid "" "When a scene (or part of it) is removed, they receive the \"exit scene\" " "notification ( _exit_tree() callback in GDScript) in bottom-to-top order" msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:141 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:133 msgid "Changing current scene" msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:143 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:135 msgid "" "After a scene is loaded, it is often desired to change this scene for " "another one. The simple way to do this is to use the :ref:`SceneTree." "change_scene() ` function:" msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:161 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:153 msgid "" "Rather than using file paths, one can also use ready-made :ref:`PackedScene " "` resources using the equivalent function :ref:`SceneTree." "change_scene_to(PackedScene scene) `:" msgstr "" -#: ../../docs/getting_started/step_by_step/scene_tree.rst:182 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:174 msgid "" "These are quick and useful ways to switch scenes but have the drawback that " "the game will stall until the new scene is loaded and running. At some point " -"in your game, it may be desired to create proper loading screens with " -"progress bar, animated indicators or thread (background) loading. This must " -"be done manually using autoloads (see next chapter!) and :ref:" -"`doc_background_loading`." +"in the development of your game, it may be preferable to create proper " +"loading screens with progress bar, animated indicators or thread " +"(background) loading. This must be done manually using autoloads (see next " +"chapter) and :ref:`doc_background_loading`." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:4 @@ -8382,7 +8359,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:36 -msgid "Autoloading nodes and scripts caters to this need." +msgid "Autoloading nodes and scripts can give us these characteristics." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:39 @@ -8516,7 +8493,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:272 msgid "" "Run the project and test that you can switch between scenes by pressing the " -"button!" +"button." msgstr "" #: ../../docs/getting_started/step_by_step/singletons_autoload.rst:275 @@ -12319,6 +12296,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/static_typing.rst:400 #: ../../docs/getting_started/workflow/export/exporting_pcks.rst:124 #: ../../docs/tutorials/2d/2d_movement.rst:347 +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:149 msgid "Summary" msgstr "" @@ -16005,6 +15983,7 @@ msgid "Repeating can optionally be set to mirrored mode." msgstr "" #: ../../docs/getting_started/workflow/assets/importing_images.rst:98 +#: ../../docs/tutorials/audio/audio_buses.rst:127 msgid "Filter" msgstr "" @@ -23109,6 +23088,185 @@ msgid "" "ref:`doc_gdscript` reference if you forgot what this does)." msgstr "" +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:4 +msgid "2D Sprite animation" +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:9 +msgid "" +"In this tutorial, you'll learn two different ways to create 2D animated " +"characters. Typically, when you create or download an animated character, it " +"will come in one of two ways: as individual images or as a single sprite " +"sheet containing all the animation's frames. Depending on which type of " +"assets you have, you can choose one of the following solutions." +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:15 +msgid "" +"First, we'll use :ref:`AnimatedSprite ` to animate a " +"collection of individual images. Then, to use a sprite sheet, we'll use :ref:" +"`AnimationPlayer ` along with the *Animation* " +"property of :ref:`Sprite `." +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:20 +msgid "Art for the following examples by https://opengameart.org/users/ansimuz" +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:23 +msgid "Individual images with AnimatedSprite" +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:25 +msgid "" +"In this scenario, you have a collection of images, each containing one of " +"your character's animation frames. For this example, we'll use the following " +"animation:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:31 +msgid "" +"You can download the images here: :download:`run_animation.zip `" +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:34 +msgid "" +"Unzip the images and place them in your project folder. Set up your scene " +"tree with the following nodes:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:39 +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:109 +msgid "" +"The root node could also be :ref:`Area2D ` or :ref:" +"`RigidBody2D `. The animation will still be made in the " +"same way. Once the animation is completed, you can assign a shape to the " +"CollisionShape2D. See :ref:`Physics Introduction ` " +"for more information." +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:46 +msgid "" +"Now select the ``AnimatedSprite`` and in its *SpriteFrames* property, select " +"\"New SpriteFrames\"." +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:51 +msgid "" +"Click on the new SpriteFrames resource and you'll see a new panel appear at " +"the bottom of the editor window:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:56 +msgid "" +"From the FileSystem dock on the left side, drag the 8 individual images into " +"the center part of the SpriteFrames panel. On the left side, change the name " +"of the animation from \"default\" to \"run\"." +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:62 +msgid "" +"Back in the Inspector, check the box for the *Playing* property. You should " +"now see the animation playing in the viewport. However, it is a bit slow. To " +"fix this, change the *Speed (FPS)* setting in the SpriteFrames panel." +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:66 +msgid "" +"You can add additional animations by clicking the \"New Animation\" button " +"and adding additional images." +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:70 +msgid "Controlling the animation" +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:72 +msgid "" +"Once the animation is complete, you can control the animation via code using " +"the ``play()`` and ``stop()`` methods. Here is a brief example to play the " +"animation while the right arrow key is held, and stop it when the key is " +"released." +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:90 +msgid "Sprite sheet with AnimationPlayer" +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:92 +msgid "" +"In the event you have a sprite sheet containing all of your animation " +"frames, you can't easily use ``AnimatedSprite``. Instead, you can use a " +"standard :ref:`Sprite ` node to display the texture, and then " +"animate the change from texture to texture with :ref:`AnimationPlayer " +"`." +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:97 +msgid "Consider this sprite sheet, which contains 6 frames of animation:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:101 +msgid "" +"Right-click the image and choose \"Save Image As\" to download, then copy " +"the image into your project folder." +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:104 +msgid "" +"Our goal is to display these images one after another in a loop. Start by " +"setting up your scene tree:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:116 +msgid "" +"Drag the spritesheet into the Sprite's *Texture* property, and you'll see " +"the whole sheet displayed on the screen. To slice it up into individual " +"frames, expand the *Animation* section in the Inspector and set the " +"*Hframes* to ``6``. *Hframes* and *Vframes* are the number of horizontal and " +"vertical frames in your sprite sheet." +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:124 +msgid "" +"Now try changing the value of the *Frame* property. You'll see that it " +"ranges from ``0`` to ``5`` and the image displayed by the Sprite changes " +"accordingly. This is the property we'll be animating." +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:128 +msgid "" +"Select the ``AnimationPlayer`` and click the \"Animation\" button followed " +"by \"New\". Name the new animation \"walk\". Set the animation length to " +"``0.6`` and click the \"Loop\" button so that our animation will repeat." +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:134 +msgid "" +"Now select the ``Sprite`` node and click the key icon to add a new track." +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:138 +msgid "" +"Continue adding frames at each point in the timeline (``0.1`` seconds by " +"default), until you have all the frames from 0 to 5. You'll see the frames " +"actually appearing in the animation track:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:144 +msgid "Press \"Play\" on the animation to see how it looks." +msgstr "" + +#: ../../docs/tutorials/2d/2d_sprite_animation.rst:151 +msgid "" +"These examples illustrate the two most common situations you'll encounter in " +"2D animation. Each has its benefits. Working with ``AnimationPlayer`` is a " +"bit more complex, but provides additional functionality, since you can also " +"animate other properties like position or scale. Experiment and see which " +"works best for your needs." +msgstr "" + #: ../../docs/tutorials/3d/introduction_to_3d.rst:4 msgid "Introduction to 3D" msgstr "" @@ -35645,23 +35803,27 @@ msgid "" msgstr "" #: ../../docs/tutorials/audio/audio_buses.rst:121 -msgid "EQ6, EQ10, EQ21" +msgid "EQ, EQ6, EQ10, EQ21" msgstr "" #: ../../docs/tutorials/audio/audio_buses.rst:123 msgid "" -"Godot provides three models of equalizers with different band counts. " +"Godot provides four models of equalizers with different band counts. " "Equalizers are useful on the Master Bus to completely master a mix and give " "it character. They are also useful when a game is run on a mobile device, to " "adjust the mix to that kind of speakers (it can be added but disabled when " "headphones are plugged)." msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:127 +#: ../../docs/tutorials/audio/audio_buses.rst:129 +msgid "Filter is what all other filters inherit from and should not be used." +msgstr "" + +#: ../../docs/tutorials/audio/audio_buses.rst:132 msgid "HighPassFilter, HighShelfFilter" msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:129 +#: ../../docs/tutorials/audio/audio_buses.rst:134 msgid "" "These are filters that cut frequencies below a specific *Cutoff*. A common " "use of high pass filters is to add it to effects (or voice) that were " @@ -35669,51 +35831,51 @@ msgid "" "used for some types of environment, like space." msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:133 +#: ../../docs/tutorials/audio/audio_buses.rst:138 msgid "Limiter" msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:135 +#: ../../docs/tutorials/audio/audio_buses.rst:140 msgid "" "A limiter is similar to a compressor, but it's less flexible and designed to " "disallow sound going over a given dB threshold. Adding one in the *Master " "Bus* is always recommended to reduce the effects of clipping." msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:139 +#: ../../docs/tutorials/audio/audio_buses.rst:144 msgid "LowPassFilter, LowShelfFilter" msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:141 +#: ../../docs/tutorials/audio/audio_buses.rst:146 msgid "" "These are the most common filters, they cut frequencies above a specific " "*Cutoff* and can also resonate. They can be used for a wide amount of " "effects, from underwater sound to simulating a sound coming from far away." msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:145 +#: ../../docs/tutorials/audio/audio_buses.rst:150 msgid "NotchFilter" msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:147 +#: ../../docs/tutorials/audio/audio_buses.rst:152 msgid "" "The opposite to the BandPassFilter, it removes a band of sound from the " "frequency spectrum at a given *Cutoff*." msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:150 +#: ../../docs/tutorials/audio/audio_buses.rst:155 msgid "Panner" msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:152 +#: ../../docs/tutorials/audio/audio_buses.rst:157 msgid "This is a simple helper to pan sound left or right." msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:155 +#: ../../docs/tutorials/audio/audio_buses.rst:160 msgid "Phaser" msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:157 +#: ../../docs/tutorials/audio/audio_buses.rst:162 msgid "" "It probably does not make much sense to explain that this effect is formed " "by two signals being dephased and cancelling each other out. It will be " @@ -35721,22 +35883,30 @@ msgid "" "like sounds." msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:161 +#: ../../docs/tutorials/audio/audio_buses.rst:166 msgid "PitchShift" msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:163 +#: ../../docs/tutorials/audio/audio_buses.rst:168 msgid "" "This effect allows for modulating pitch independently of tempo. All " "frequencies can be increased/decreased with minimal effect on transients. " "Can be used for effects such as voice modulation." msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:166 +#: ../../docs/tutorials/audio/audio_buses.rst:171 +msgid "Record" +msgstr "" + +#: ../../docs/tutorials/audio/audio_buses.rst:173 +msgid "This effect is used to record the bus it is on to a file." +msgstr "" + +#: ../../docs/tutorials/audio/audio_buses.rst:176 msgid "Reverb" msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:168 +#: ../../docs/tutorials/audio/audio_buses.rst:178 msgid "" "Reverb simulates rooms of different sizes. It has adjustable parameters that " "can be tweaked to obtain the sound of a specific room. Reverb is commonly " @@ -35745,36 +35915,36 @@ msgid "" "to all sounds." msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:172 +#: ../../docs/tutorials/audio/audio_buses.rst:182 msgid "StereoEnhance" msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:174 +#: ../../docs/tutorials/audio/audio_buses.rst:184 msgid "" "This effect has a few algorithms available to enhance the stereo spectrum, " "in case this is needed." msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:177 +#: ../../docs/tutorials/audio/audio_buses.rst:187 msgid "Automatic bus disabling" msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:179 +#: ../../docs/tutorials/audio/audio_buses.rst:189 msgid "" "There is no need to disable buses manually when not in use; Godot detects " "that the bus has been silent for a few seconds and disables it (including " "all effects)." msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:183 +#: ../../docs/tutorials/audio/audio_buses.rst:193 msgid "Disabled buses have a blue VU meter." msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:186 +#: ../../docs/tutorials/audio/audio_buses.rst:196 msgid "Bus rearrangement" msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:188 +#: ../../docs/tutorials/audio/audio_buses.rst:198 msgid "" "Stream Players use bus names to identify a bus, which allows adding, " "removing and moving buses around while the reference to them is kept. If a " @@ -35783,11 +35953,11 @@ msgid "" "more common process than renaming them." msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:192 +#: ../../docs/tutorials/audio/audio_buses.rst:202 msgid "Default bus layout" msgstr "" -#: ../../docs/tutorials/audio/audio_buses.rst:194 +#: ../../docs/tutorials/audio/audio_buses.rst:204 msgid "" "The default bus layout is automatically saved to the ``res://" "default_bus_layout.tres`` file. Other bus layouts can be saved to/retrieved " @@ -41100,6 +41270,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/inputs/inputevent.rst:202 +#: ../../docs/tutorials/inputs/input_examples.rst:107 msgid "InputMap" msgstr "" @@ -41113,6 +41284,238 @@ msgid "" "needs to store settings in the way the programmer best sees fit." msgstr "" +#: ../../docs/tutorials/inputs/input_examples.rst:4 +msgid "Input examples" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:9 +msgid "" +"In this tutorial, you'll learn how to use Godot's :ref:`InputEvent " +"` system to capture player input. There are many different " +"types of input your game may use - keyboard, gamepad, mouse, etc. - and many " +"different ways to turn those inputs into actions in your game. This document " +"will show you some of the most common scenarios, which you can use as " +"starting points for your own projects." +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:16 +msgid "" +"For a detailed overview of how Godot's input event system works, see :ref:" +"`doc_inputevent`." +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:20 +msgid "Events versus polling" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:22 +msgid "" +"Sometimes you want your game to respond to a certain input event - pressing " +"the \"jump\" button, for example. For other situations, you might want " +"something to happen as long as a key is pressed, such as movement. In the " +"first case, you can use the ``_input()`` function, which will be called " +"whenever an input event occurs. In the second case, Godot provides the :ref:" +"`Input ` singleton, which you can use to query the state of an " +"input." +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:29 +#: ../../docs/tutorials/platform/services_for_ios.rst:397 +msgid "Examples:" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:45 +msgid "" +"This gives you the flexibility to mix-and-match the type of input processing " +"you do." +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:48 +msgid "" +"For the remainder of this tutorial, we'll focus on capturing individual " +"events in ``_input()``." +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:52 +#: ../../docs/tutorials/gui/custom_gui_controls.rst:118 +msgid "Input events" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:54 +msgid "" +"Input events are objects that inherit from :ref:`InputEvent " +"`. Depending on the event type, the object will contain " +"specific properties related to that event. To see what events actually look " +"like, add a Node and attach the following script:" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:67 +msgid "" +"As you press keys, move the mouse, and perform other inputs, you'll see each " +"event scroll by in the output window. Here's an example of the output:" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:81 +msgid "" +"As you can see, the results are very different for the different types of " +"input. Key events are even printed as their key symbols. For example, let's " +"consider :ref:`InputEventMouseButton `. It " +"inherits from the following classes:" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:85 +msgid "" +":ref:`InputEvent ` - the base class for all input events" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:86 +msgid "" +":ref:`InputEventWithModifiers ` - adds the " +"ability to check if modifiers are pressed, such as ``Shift`` or ``Alt``." +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:87 +msgid "" +":ref:`InputEventMouse ` - adds mouse event " +"properties, such as ``position``" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:88 +msgid "" +":ref:`InputEventMouseButton ` - contains the " +"index of the button that was pressed, whether it was a double-click, etc." +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:90 +msgid "" +"It's a good idea to keep the class reference open while you're working with " +"events so you can check the event type's available properties and methods." +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:94 +msgid "" +"You can encounter errors if you try and access a property on an input type " +"that doesn't contain it - calling ``position`` on ``InputEventKey`` for " +"example. To avoid this, make sure to test the event type first:" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:109 +msgid "" +"The :ref:`InputMap ` is the most flexible way to handle a " +"variety of inputs. You use this by creating named input *actions*, to which " +"you can assign any number of input events, such as keypresses or mouse " +"clicks. A new Godot project includes a number of default actions already " +"defined. To see them, and to add your own, open Project -> Project Settings " +"and select the InputMap tab:" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:119 +msgid "Capturing actions" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:121 +msgid "" +"Once you've defined your actions, you can process them in your scripts using " +"``is_action_pressed()`` and ``is_action_released()`` by passing the name of " +"the action you're looking for:" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:133 +msgid "Keyboard events" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:135 +msgid "" +"Keyboard events are captured in :ref:`InputEventKey `. " +"While it's recommended to use input actions instead, there may be cases " +"where you want to specifically look at key events. For this example, let's " +"check for the \"T\" key:" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:148 +#: ../../docs/tutorials/inputs/input_examples.rst:171 +msgid "" +"See :ref:`@GlobalScope_KeyList ` for a list of " +"scancode constants." +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:152 +msgid "Keyboard modifiers" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:154 +msgid "" +"Modifier properties are inherited from :ref:`InputEventWithModifiers " +"`. This allows you to check for modifier " +"combinations using boolean properties. Let's imagine you want one thing to " +"happen when the \"T\" key is pressed, but something different when it's " +"\"Shift+T\":" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:175 +msgid "Mouse events" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:177 +msgid "" +"Mouse events stem from the :ref:`InputEventMouse ` " +"class, and are separated into two types: :ref:`InputEventMouseButton " +"` and :ref:`InputEventMouseMotion " +"`. Note that this means that all mouse events " +"will contain a ``position`` property." +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:183 +msgid "Mouse buttons" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:185 +msgid "" +"Capturing mouse buttons is very similar to handling key events. :ref:" +"`@GlobalScope_ButtonList ` contains a list of " +"``BUTTON_*`` constants for each possible button, which will be reported in " +"the event's ``button_index`` property. Note that the scrollwheel also counts " +"as a button - two buttons, to be precise, with both ``BUTTON_WHEEL_UP`` and " +"``BUTTON_WHEEL_DOWN`` being separate events." +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:202 +msgid "Mouse motion" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:204 +msgid "" +":ref:`InputEventMouseMotion ` events occur " +"whenever the mouse moves. You can find the move's distance with the " +"``relative`` property." +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:208 +msgid "" +"Here's an example using mouse events to drag-and-drop a :ref:`Sprite " +"` node:" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:234 +msgid "Touch events" +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:236 +msgid "" +"If you are using a touchscreen device, you can generate touch events. :ref:" +"`InputEventScreenTouch ` is equivalent to a " +"mouse click event, and :ref:`InputEventScreenDrag " +"` works much the same as mouse motion." +msgstr "" + +#: ../../docs/tutorials/inputs/input_examples.rst:241 +msgid "" +"To test your touch events on a non-touchscreen device, open Project Settings " +"and go to the \"Input Devices/Pointing\" section. Enable \"Emulate Touch " +"From Mouse\" and your project will interpret mouse clicks and motion as " +"touch events." +msgstr "" + #: ../../docs/tutorials/inputs/mouse_and_input_coordinates.rst:4 msgid "Mouse and input coordinates" msgstr "" @@ -41247,9 +41650,10 @@ msgid "" "When switching the main scene of your game (e.g. going to a new level), you " "might want to show a loading screen with some indication that progress is " "being made. The main load method (``ResourceLoader::load`` or just ``load`` " -"from GDScript) blocks your thread while the resource is being loaded, so " -"it's not good. This document discusses the ``ResourceInteractiveLoader`` " -"class for smoother load screens." +"from GDScript) blocks your thread, making your game appear frozen and " +"unresponsive while the resource is being loaded. This document discusses the " +"alternative of using the ``ResourceInteractiveLoader`` class for smoother " +"load screens." msgstr "" #: ../../docs/tutorials/io/background_loading.rst:15 @@ -41343,7 +41747,7 @@ msgstr "" #: ../../docs/tutorials/io/background_loading.rst:92 msgid "" -"Firstly, we set up some variables and initialize the ``current_scene`` with " +"First, we set up some variables and initialize the ``current_scene`` with " "the main scene of the game:" msgstr "" @@ -41352,17 +41756,17 @@ msgid "" "The function ``goto_scene`` is called from the game when the scene needs to " "be switched. It requests an interactive loader, and calls " "``set_process(true)`` to start polling the loader in the ``_process`` " -"callback. It also starts a \"loading\" animation, which can show a progress " -"bar or loading screen, etc." +"callback. It also starts a \"loading\" animation, which could show a " +"progress bar or loading screen." msgstr "" #: ../../docs/tutorials/io/background_loading.rst:128 msgid "" "``_process`` is where the loader is polled. ``poll`` is called, and then we " "deal with the return value from that call. ``OK`` means keep polling, " -"``ERR_FILE_EOF`` means load is done, anything else means there was an error. " -"Also note we skip one frame (via ``wait_frames``, set on the ``goto_scene`` " -"function) to allow the loading screen to show up." +"``ERR_FILE_EOF`` means loading is done, anything else means there was an " +"error. Also note we skip one frame (via ``wait_frames``, set on the " +"``goto_scene`` function) to allow the loading screen to show up." msgstr "" #: ../../docs/tutorials/io/background_loading.rst:134 @@ -41410,11 +41814,11 @@ msgstr "" #: ../../docs/tutorials/io/background_loading.rst:209 msgid "" "If you have a mutex to allow calls from the main thread to your loader " -"class, don't lock the former while you call ``poll`` on the latter. When a " -"resource is done loading, it might require some resources from the low-level " -"APIs (VisualServer, etc), which might need to lock the main thread to " -"acquire them. This might cause a deadlock if the main thread is waiting for " -"your mutex while your thread is waiting to load a resource." +"class, don't lock the main thread while you call ``poll`` on your loader " +"class. When a resource is done loading, it might require some resources from " +"the low-level APIs (VisualServer, etc), which might need to lock the main " +"thread to acquire them. This might cause a deadlock if the main thread is " +"waiting for your mutex while your thread is waiting to load a resource." msgstr "" #: ../../docs/tutorials/io/background_loading.rst:218 @@ -41442,21 +41846,22 @@ msgid "Remove a resource from the queue, discarding any loading done." msgstr "" #: ../../docs/tutorials/io/background_loading.rst:246 -msgid "Returns true if a resource is done loading and ready to be retrieved." +msgid "Returns true if a resource is fully loaded and ready to be retrieved." msgstr "" #: ../../docs/tutorials/io/background_loading.rst:252 msgid "" -"Get the progress of a resource. Returns -1 on error (for example if the " -"resource is not on the queue), or a number between 0.0 and 1.0 with the " -"progress of the load. Use mostly for cosmetic purposes (updating progress " -"bars, etc), use ``is_ready`` to find out if a resource is actually ready." +"Get the progress of a resource. Returns -1 if there was an error (for " +"example if the resource is not in the queue), or a number between 0.0 and " +"1.0 with the progress of the load. Use mostly for cosmetic purposes " +"(updating progress bars, etc), use ``is_ready`` to find out if a resource is " +"actually ready." msgstr "" #: ../../docs/tutorials/io/background_loading.rst:262 msgid "" "Returns the fully loaded resource, or null on error. If the resource is not " -"done loading (``is_ready`` returns false), it will block your thread and " +"fully loaded (``is_ready`` returns false), it will block your thread and " "finish the load. If the resource is not on the queue, it will call " "``ResourceLoader::load`` to load it normally and return it." msgstr "" @@ -45039,10 +45444,6 @@ msgid "" "than regular nodes." msgstr "" -#: ../../docs/tutorials/gui/custom_gui_controls.rst:118 -msgid "Input events" -msgstr "" - #: ../../docs/tutorials/gui/custom_gui_controls.rst:120 msgid "" "There are a few tutorials about input before this one, but it's worth " @@ -57555,10 +57956,6 @@ msgid "" "the aggregate leaderboard." msgstr "" -#: ../../docs/tutorials/platform/services_for_ios.rst:397 -msgid "Examples:" -msgstr "" - #: ../../docs/tutorials/platform/services_for_ios.rst:409 msgid "On close:" msgstr ""