diff --git a/weblate/ar.po b/weblate/ar.po index ade265054a..7696229464 100644 --- a/weblate/ar.po +++ b/weblate/ar.po @@ -4,6 +4,7 @@ # # Anas Khalil , 2018. # Aymen B'm , 2018. +# Bellachia Mohamed Bahaa Eddine , 2019. # Codes Otaku , 2018. # Ibraheem Tawfik , 2019. # Mohamed El-Baz , 2018. @@ -19,7 +20,7 @@ msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" "POT-Creation-Date: 2019-09-02 11:13+0200\n" -"PO-Revision-Date: 2019-09-01 08:26+0000\n" +"PO-Revision-Date: 2019-10-04 03:16+0000\n" "Last-Translator: Omar Aglan \n" "Language-Team: Arabic \n" @@ -269,7 +270,7 @@ msgstr "" #: ../../docs/about/introduction.rst:21 msgid "Before you start" -msgstr "" +msgstr "قبل ان تبدا" #: ../../docs/about/introduction.rst:23 msgid "" @@ -23277,7 +23278,7 @@ msgstr "" #: ../../docs/tutorials/2d/particle_systems_2d.rst:331 msgid "Emission Colors" -msgstr "" +msgstr "الوان الإنبعاث" #: ../../docs/tutorials/2d/particle_systems_2d.rst:333 msgid "" @@ -71302,7 +71303,7 @@ msgstr "" #: ../../docs/development/editor/creating_icons.rst:39 msgid "Name" -msgstr "" +msgstr "الأسم" #: ../../docs/development/editor/creating_icons.rst:39 msgid "Filename" diff --git a/weblate/bg.po b/weblate/bg.po deleted file mode 100644 index e0d4bad497..0000000000 --- a/weblate/bg.po +++ /dev/null @@ -1,74665 +0,0 @@ -# Godot Engine Documentation in Bulgarian -# Copyright (C) 2014-2019, Juan Linietsky, Ariel Manzur and the Godot community (CC-BY 3.0) -# This file is distributed under the same license as the Godot Engine package. -# -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-09-02 11:13+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Automatically generated\n" -"Language-Team: Bulgarian \n" -"Language: bg\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../docs/index.rst:2 -msgid "Godot Docs – *master* branch" -msgstr "" - -#: ../../docs/index.rst:6 -msgid "" -"Godot's documentation is available in various languages and versions. Expand " -"the \"Read the Docs\" panel at the bottom of the sidebar to see the list." -msgstr "" - -#: ../../docs/index.rst:10 -msgid "" -"This is the documentation for the development (master) branch. Looking for " -"the documentation of the current **stable** branch? `Have a look here " -"`_." -msgstr "" - -#: ../../docs/index.rst:16 -msgid "" -"This documentation is translated from the `original English one `_ by community members on `Weblate `_." -msgstr "" - -#: ../../docs/index.rst:20 -msgid "" -"Depending on the translation effort's completion level, you may find " -"paragraphs or whole pages which are still in English. You can help the " -"community by providing new translations or reviewing existing ones on " -"Weblate." -msgstr "" - -#: ../../docs/index.rst:25 -msgid "" -"For the time being, localized translations are only available for the " -"\"latest\" (development) branch, but should be suitable to learn how to use " -"stable Godot releases nevertheless." -msgstr "" - -#: ../../docs/index.rst:29 -msgid "" -"Welcome to the official documentation of Godot Engine, the free and open " -"source community-driven 2D and 3D game engine! If you are new to this " -"documentation, we recommend that you read the :ref:`introduction page " -"` to get an overview of what this documentation has to " -"offer." -msgstr "" - -#: ../../docs/index.rst:34 -msgid "" -"The table of contents below and in the sidebar should let you easily access " -"the documentation for your topic of interest. You can also use the search " -"function in the top left corner." -msgstr "" - -#: ../../docs/index.rst:38 -msgid "" -"Godot Engine is an open source project developed by a community of " -"volunteers. The documentation team can always use your feedback and help to " -"improve the tutorials and class reference. If you don't understand " -"something, or cannot find what you are looking for in the docs, help us make " -"the documentation better by letting us know!" -msgstr "" - -#: ../../docs/index.rst:45 -msgid "" -"Submit an issue or pull request on the `GitHub repository `_, help us `translate the documentation " -"`_ into your language, or " -"talk to us on either the ``#documentation`` channel on `Discord `_, or the ``#godotengine-doc`` channel on `irc.freenode." -"net `_!" -msgstr "" - -#: ../../docs/index.rst:55 -msgid "weblate_widget" -msgstr "" - -#: ../../docs/index.rst:56 -msgid "" -"The main documentation for the site is organized into the following sections:" -msgstr "" - -#: ../../docs/index.rst:58 -msgid "General" -msgstr "" - -#: ../../docs/index.rst:66 -msgid "Getting started" -msgstr "" - -#: ../../docs/index.rst:77 -msgid "Tutorials" -msgstr "" - -#: ../../docs/index.rst:107 -msgid "Development" -msgstr "" - -#: ../../docs/index.rst:118 -msgid "Community" -msgstr "" - -#: ../../docs/about/index.rst:2 -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:7 -#: ../../docs/tutorials/inputs/mouse_and_input_coordinates.rst:7 -#: ../../docs/development/cpp/variant_class.rst:7 -msgid "About" -msgstr "" - -#: ../../docs/about/introduction.rst:4 -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:7 -#: ../../docs/getting_started/step_by_step/instancing.rst:7 -#: ../../docs/getting_started/step_by_step/scripting.rst:7 -#: ../../docs/getting_started/step_by_step/signals.rst:7 -#: ../../docs/getting_started/step_by_step/animations.rst:7 -#: ../../docs/getting_started/step_by_step/filesystem.rst:7 -#: ../../docs/getting_started/step_by_step/scene_tree.rst:7 -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:7 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:7 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:4 -#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:7 -#: ../../docs/getting_started/workflow/export/feature_tags.rst:7 -#: ../../docs/getting_started/workflow/best_practices/introduction_best_practices.rst:4 -#: ../../docs/tutorials/2d/2d_transforms.rst:7 -#: ../../docs/tutorials/2d/using_tilemaps.rst:7 -#: ../../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 -#: ../../docs/tutorials/3d/lights_and_shadows.rst:7 -#: ../../docs/tutorials/3d/reflection_probes.rst:7 -#: ../../docs/tutorials/3d/gi_probes.rst:7 -#: ../../docs/tutorials/3d/baked_lightmaps.rst:7 -#: ../../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/audio/audio_buses.rst:7 -#: ../../docs/tutorials/audio/audio_streams.rst:7 -#: ../../docs/tutorials/audio/sync_with_audio.rst:7 -#: ../../docs/tutorials/physics/using_area_2d.rst:7 -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:7 -#: ../../docs/tutorials/physics/ray-casting.rst:7 -#: ../../docs/tutorials/physics/ragdoll_system.rst:7 -#: ../../docs/tutorials/physics/kinematic_character_2d.rst:7 -#: ../../docs/tutorials/math/vector_math.rst:7 -#: ../../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 -#: ../../docs/tutorials/viewports/viewports.rst:7 -#: ../../docs/tutorials/viewports/using_viewport_as_texture.rst:7 -#: ../../docs/tutorials/viewports/custom_postprocessing.rst:7 -#: ../../docs/tutorials/shading/shading_reference/shaders.rst:7 -#: ../../docs/tutorials/shading/shading_reference/shading_language.rst:7 -#: ../../docs/tutorials/shading/your_first_shader/what_are_shaders.rst:7 -#: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:7 -#: ../../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/advanced_postprocessing.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 -#: ../../docs/tutorials/plugins/editor/import_plugins.rst:7 -#: ../../docs/tutorials/plugins/editor/spatial_gizmos.rst:7 -#: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:7 -#: ../../docs/tutorials/plugins/editor/visual_shader_plugins.rst:7 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:7 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:7 -#: ../../docs/tutorials/plugins/android/android_plugin.rst:7 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:7 -#: ../../docs/tutorials/debug/overview_of_debugging_tools.rst:7 -#: ../../docs/development/cpp/custom_resource_format_loaders.rst:7 -#: ../../docs/development/cpp/custom_audiostreams.rst:7 -#: ../../docs/development/cpp/custom_godot_servers.rst:7 -#: ../../docs/development/editor/introduction.rst:4 -msgid "Introduction" -msgstr "" - -#: ../../docs/about/introduction.rst:11 -msgid "" -"Welcome to the official documentation of Godot Engine, the free and open " -"source community-driven 2D and 3D game engine! Behind this mouthful, you " -"will find a powerful yet user-friendly tool that you can use to develop any " -"kind of game, for any platform and with no usage restriction whatsoever." -msgstr "" - -#: ../../docs/about/introduction.rst:16 -msgid "" -"This page gives a broad presentation of the engine and of the contents of " -"this documentation, so that you know where to start if you are a beginner or " -"where to look if you need info on a specific feature." -msgstr "" - -#: ../../docs/about/introduction.rst:21 -msgid "Before you start" -msgstr "" - -#: ../../docs/about/introduction.rst:23 -msgid "" -"The :ref:`Tutorials and resources ` page lists " -"video tutorials contributed by the community. If you prefer video to text, " -"those may be worth a look." -msgstr "" - -#: ../../docs/about/introduction.rst:27 -msgid "" -"In case you have trouble with one of the tutorials or your project, you can " -"find help on the various :ref:`Community channels `, " -"especially the Godot Discord community, Q&A, and IRC." -msgstr "" - -#: ../../docs/about/introduction.rst:32 -msgid "About Godot Engine" -msgstr "" - -#: ../../docs/about/introduction.rst:34 -msgid "" -"A game engine is a complex tool, and it is therefore difficult to present " -"Godot in a few words. Here's a quick synopsis, which you are free to reuse " -"if you need a quick writeup about Godot Engine." -msgstr "" - -#: ../../docs/about/introduction.rst:38 -msgid "" -"Godot Engine is a feature-packed, cross-platform game engine to create 2D " -"and 3D games from a unified interface. It provides a comprehensive set of " -"common tools, so users can focus on making games without having to reinvent " -"the wheel. Games can be exported in one click to a number of platforms, " -"including the major desktop platforms (Linux, macOS, Windows) as well as " -"mobile (Android, iOS) and web-based (HTML5) platforms." -msgstr "" - -#: ../../docs/about/introduction.rst:45 -msgid "" -"Godot is completely free and open source under the permissive MIT license. " -"No strings attached, no royalties, nothing. Users' games are theirs, down to " -"the last line of engine code. Godot's development is fully independent and " -"community-driven, empowering users to help shape their engine to match their " -"expectations. It is supported by the `Software Freedom Conservancy `_ not-for-profit." -msgstr "" - -#: ../../docs/about/introduction.rst:52 -msgid "" -"For a more in-depth view of the engine, you are encouraged to read this " -"documentation further, especially the :ref:`Step by step ` tutorial." -msgstr "" - -#: ../../docs/about/introduction.rst:57 -msgid "About the documentation" -msgstr "" - -#: ../../docs/about/introduction.rst:59 -msgid "" -"This documentation is continuously written, corrected, edited, and revamped " -"by members of the Godot Engine community. It is edited via text files in the " -"`reStructuredText `_ markup " -"language and then compiled into a static website/offline document using the " -"open source `Sphinx `_ and `ReadTheDocs `_ tools." -msgstr "" - -#: ../../docs/about/introduction.rst:66 -msgid "" -"You can contribute to Godot's documentation by opening issue tickets or " -"sending patches via pull requests on its GitHub `source repository `_, or translating it into your language " -"on `Hosted Weblate `_." -msgstr "" - -#: ../../docs/about/introduction.rst:72 -msgid "" -"All the contents are under the permissive Creative Commons Attribution 3.0 " -"(`CC-BY 3.0 `_) license, with " -"attribution to \"Juan Linietsky, Ariel Manzur and the Godot Engine community" -"\"." -msgstr "" - -#: ../../docs/about/introduction.rst:77 -msgid "Organization of the documentation" -msgstr "" - -#: ../../docs/about/introduction.rst:79 -msgid "" -"This documentation is organised in five sections with an impressively " -"unbalanced distribution of contents – but the way it is split up should be " -"relatively intuitive:" -msgstr "" - -#: ../../docs/about/introduction.rst:83 -msgid "" -"The :ref:`sec-general` section contains this introduction as well as " -"information about the engine, its history, its licensing, authors, etc. It " -"also contains the :ref:`doc_faq`." -msgstr "" - -#: ../../docs/about/introduction.rst:86 -msgid "" -"The :ref:`sec-learn` section is the main *raison d'être* of this " -"documentation, as it contains all the necessary information on using the " -"engine to make games. It starts with the :ref:`Step by step ` tutorial which should be the entry point for all new users." -msgstr "" - -#: ../../docs/about/introduction.rst:91 -msgid "" -"The :ref:`sec-tutorials` section can be read as needed, in any order. It " -"contains feature-specific tutorials and documentation." -msgstr "" - -#: ../../docs/about/introduction.rst:93 -msgid "" -"The :ref:`sec-devel` section is intended for advanced users and contributors " -"to the engine development, with information on compiling the engine, " -"developing C++ modules or editor plugins." -msgstr "" - -#: ../../docs/about/introduction.rst:96 -msgid "" -"The :ref:`sec-community` section gives information related to contributing " -"to 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 "" - -#: ../../docs/about/introduction.rst:101 -msgid "" -"Finally, the :ref:`sec-class-ref` is the documentation of the Godot API, " -"which is also available directly within the engine's script editor. It is " -"generated automatically from a file in the main source repository, therefore " -"the generated files of the documentation are not meant to be modified. See :" -"ref:`doc_updating_the_class_reference` for details." -msgstr "" - -#: ../../docs/about/introduction.rst:107 -msgid "" -"In addition to this documentation you may also want to take a look at the " -"various `Godot demo projects `_." -msgstr "" - -#: ../../docs/about/introduction.rst:110 -msgid "Have fun reading and making games with Godot Engine!" -msgstr "" - -#: ../../docs/about/faq.rst:4 -#: ../../docs/tutorials/assetlib/what_is_assetlib.rst:29 -msgid "Frequently asked questions" -msgstr "" - -#: ../../docs/about/faq.rst:7 -msgid "" -"What can I do with Godot? How much does it cost? What are the license terms?" -msgstr "" - -#: ../../docs/about/faq.rst:9 -msgid "" -"Godot is `Free and Open-Source Software `_ available under the `OSI-approved `_ MIT license. This means it is free as in " -"\"free speech\" as well as in \"free beer.\"" -msgstr "" - -#: ../../docs/about/faq.rst:11 -msgid "In short:" -msgstr "" - -#: ../../docs/about/faq.rst:13 -msgid "" -"You are free to download and use Godot for any purpose, personal, non-" -"profit, commercial, or otherwise." -msgstr "" - -#: ../../docs/about/faq.rst:14 -msgid "" -"You are free to modify, distribute, redistribute, and remix Godot to your " -"heart's content, for any reason, both non-commercially and commercially." -msgstr "" - -#: ../../docs/about/faq.rst:16 -msgid "" -"All the contents of this accompanying documentation are published under the " -"permissive Creative Commons Attribution 3.0 (`CC-BY 3.0 `_) license, with attribution to \"Juan " -"Linietsky, Ariel Manzur and the Godot Engine community.\"" -msgstr "" - -#: ../../docs/about/faq.rst:20 -msgid "" -"Logos and icons are generally under the same Creative Commons license. Note " -"that some third-party libraries included with Godot's source code may have " -"different licenses." -msgstr "" - -#: ../../docs/about/faq.rst:24 -msgid "" -"For full details, look at the `COPYRIGHT.txt `_ as well as the `LICENSE.txt `_ and `LOGO_LICENSE." -"txt `_ " -"files in the Godot repository." -msgstr "" - -#: ../../docs/about/faq.rst:28 -msgid "" -"Also, see `the license page on the Godot website `_." -msgstr "" - -#: ../../docs/about/faq.rst:31 -msgid "Which platforms are supported by Godot?" -msgstr "" - -#: ../../docs/about/faq.rst:33 -msgid "**For the editor:**" -msgstr "" - -#: ../../docs/about/faq.rst:35 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:39 -#: ../../docs/tutorials/misc/jitter_stutter.rst:53 -msgid "Windows" -msgstr "" - -#: ../../docs/about/faq.rst:36 ../../docs/about/faq.rst:42 -#: ../../docs/tutorials/misc/jitter_stutter.rst:78 -msgid "macOS" -msgstr "" - -#: ../../docs/about/faq.rst:37 ../../docs/about/faq.rst:43 -msgid "X11 (Linux, \\*BSD)" -msgstr "" - -#: ../../docs/about/faq.rst:39 -msgid "**For exporting your games:**" -msgstr "" - -#: ../../docs/about/faq.rst:41 -msgid "Windows (and UWP)" -msgstr "" - -#: ../../docs/about/faq.rst:44 -#: ../../docs/getting_started/step_by_step/exporting.rst:186 -#: ../../docs/tutorials/misc/jitter_stutter.rst:84 -msgid "Android" -msgstr "" - -#: ../../docs/about/faq.rst:45 -#: ../../docs/getting_started/step_by_step/exporting.rst:238 -#: ../../docs/tutorials/misc/jitter_stutter.rst:90 -msgid "iOS" -msgstr "" - -#: ../../docs/about/faq.rst:46 -msgid "Web" -msgstr "" - -#: ../../docs/about/faq.rst:48 -msgid "" -"Both 32- and 64-bit binaries are supported where it makes sense, with 64 " -"being the default." -msgstr "" - -#: ../../docs/about/faq.rst:51 -msgid "" -"Some users also report building and using Godot successfully on ARM-based " -"systems with Linux, like the Raspberry Pi." -msgstr "" - -#: ../../docs/about/faq.rst:54 -msgid "" -"Additionally, there is some unofficial third-party work being done on " -"building for some consoles. However, none of this is included in the default " -"build scripts or export templates at this time." -msgstr "" - -#: ../../docs/about/faq.rst:58 -msgid "" -"For more on this, see the sections on :ref:`exporting ` and :ref:`compiling Godot yourself `." -msgstr "" - -#: ../../docs/about/faq.rst:62 -msgid "Which programming languages are supported in Godot?" -msgstr "" - -#: ../../docs/about/faq.rst:64 -msgid "" -"The officially supported languages for Godot are GDScript, Visual Scripting, " -"C#, and C++. See the subcategories for each language in the :ref:`scripting " -"` section." -msgstr "" - -#: ../../docs/about/faq.rst:68 -msgid "" -"If you are just starting out with either Godot or game development in " -"general, GDScript is the recommended language to learn and use since it is " -"native to Godot. While scripting languages tend to be less performant than " -"lower-level languages in the long run, for prototyping, developing Minimum " -"Viable Products (MVPs), and focusing on Time-To-Market (TTM), GDScript will " -"provide a fast, friendly, and capable way of developing your games." -msgstr "" - -#: ../../docs/about/faq.rst:75 -msgid "" -"Note that C# support is still relatively new, and as such, you may encounter " -"some issues along the way. Our friendly and hard-working development " -"community is always ready to tackle new problems as they arise, but since " -"this is an open-source project, we recommend that you first do some due " -"diligence yourself. Searching through discussions on `open issues `_ is a great way to start your " -"troubleshooting." -msgstr "" - -#: ../../docs/about/faq.rst:82 -msgid "" -"As for new languages, support is possible via third parties using the " -"GDNative / NativeScript / PluginScript facilities. (See the question about " -"plugins below.) Work is currently underway, for example, on unofficial " -"bindings for Godot to `Python `_ " -"and `Nim `_." -msgstr "" - -#: ../../docs/about/faq.rst:88 -msgid "What is GDScript and why should I use it?" -msgstr "" - -#: ../../docs/about/faq.rst:90 -msgid "" -"GDScript is Godot's integrated scripting language. It was built from the " -"ground up to maximize Godot's potential in the least amount of code, " -"affording both novice and expert developers alike to capitalize on Godot's " -"strengths as fast as possible. If you've ever written anything in a language " -"like Python before then you'll feel right at home. For examples, history, " -"and a complete overview of the power GDScript offers you, check out the :ref:" -"`GDScript scripting guide `." -msgstr "" - -#: ../../docs/about/faq.rst:97 -msgid "" -"There are several reasons to use GDScript--especially when you are " -"prototyping, in alpha/beta stages of your project, or are not creating the " -"next AAA title--but the most salient reason is the overall **reduction of " -"complexity.**" -msgstr "" - -#: ../../docs/about/faq.rst:101 -msgid "" -"The original intent of creating a tightly integrated, custom scripting " -"language for Godot was two-fold: first, it reduces the amount of time " -"necessary to get up and running with Godot, giving developers a rapid way of " -"exposing themselves to the engine with a focus on productivity; second, it " -"reduces the overall burden of maintenance, attenuates the dimensionality of " -"issues, and allows the developers of the engine to focus on squashing bugs " -"and improving features related to the engine core--rather than spending a " -"lot of time trying to get a small set of incremental features working across " -"a large set of languages." -msgstr "" - -#: ../../docs/about/faq.rst:109 -msgid "" -"Since Godot is an open-source project, it was imperative from the start to " -"prioritize a more integrated and seamless experience over attracting " -"additional users by supporting more familiar programming languages--" -"especially when supporting those more familiar languages would result in a " -"worse experience. We understand if you would rather use another language in " -"Godot (see the list of supported options above). That being said, if you " -"haven't given GDScript a try, try it for **three days**. Just like Godot, " -"once you see how powerful it is and rapid your development becomes, we think " -"GDScript will grow on you." -msgstr "" - -#: ../../docs/about/faq.rst:118 -msgid "" -"More information about getting comfortable with GDScript or dynamically " -"typed languages can be found in the :ref:`doc_gdscript_more_efficiently` " -"tutorial." -msgstr "" - -#: ../../docs/about/faq.rst:122 -msgid "What were the motivations behind creating GDScript?" -msgstr "" - -#: ../../docs/about/faq.rst:124 -msgid "" -"The main reasons for creating a custom scripting language for Godot were:" -msgstr "" - -#: ../../docs/about/faq.rst:126 -msgid "" -"Poor thread support in most script VMs, and Godot uses threads (Lua, Python, " -"Squirrel, JS, AS, etc.)." -msgstr "" - -#: ../../docs/about/faq.rst:128 -msgid "" -"Poor class-extending support in most script VMs, and adapting to the way " -"Godot works is highly inefficient (Lua, Python, JS)." -msgstr "" - -#: ../../docs/about/faq.rst:130 -msgid "" -"Many existing languages have horrible interfaces for binding to C++, " -"resulting in large amount of code, bugs, bottlenecks, and general " -"inefficiency (Lua, Python, Squirrel, JS, etc.) We wanted to focus on a great " -"engine, not a great amount of integrations." -msgstr "" - -#: ../../docs/about/faq.rst:133 -msgid "" -"No native vector types (vector3, matrix4, etc.), resulting in highly reduced " -"performance when using custom types (Lua, Python, Squirrel, JS, AS, etc.)." -msgstr "" - -#: ../../docs/about/faq.rst:136 -msgid "" -"Garbage collector results in stalls or unnecessarily large memory usage " -"(Lua, Python, JS, AS, etc.)." -msgstr "" - -#: ../../docs/about/faq.rst:138 -msgid "" -"Difficulty to integrate with the code editor for providing code completion, " -"live editing, etc. (all of them). This is well supported by GDScript." -msgstr "" - -#: ../../docs/about/faq.rst:142 -msgid "GDScript was designed to curtail the issues above and more." -msgstr "" - -#: ../../docs/about/faq.rst:145 -msgid "What type of 3D model formats does Godot support?" -msgstr "" - -#: ../../docs/about/faq.rst:147 -msgid "" -"Godot supports Collada via the `OpenCollada `_ exporter (Maya, 3DSMax)." -msgstr "" - -#: ../../docs/about/faq.rst:149 -msgid "" -"If you are using Blender, take a look at our own `Better Collada Exporter " -"`_." -msgstr "" - -#: ../../docs/about/faq.rst:151 -msgid "As of Godot 3.0, glTF is supported." -msgstr "" - -#: ../../docs/about/faq.rst:153 -msgid "" -"FBX SDK has a `restrictive license `_, that is incompatible with the `open license " -"`_ provided by Godot. That being said, " -"FBX support could still be provided by third parties as a plugin. (See " -"Plugins question below.)" -msgstr "" - -#: ../../docs/about/faq.rst:159 -msgid "" -"Will [insert closed SDK such as FMOD, GameWorks, etc.] be supported in Godot?" -msgstr "" - -#: ../../docs/about/faq.rst:161 -msgid "" -"The aim of Godot is to create a free and open-source MIT-licensed engine " -"that is modular and extendable. There are no plans for the core engine " -"development community to support any third-party, closed-source/proprietary " -"SDKs, as integrating with these would go against Godot's ethos." -msgstr "" - -#: ../../docs/about/faq.rst:166 -msgid "" -"That said, because Godot is open-source and modular, nothing prevents you or " -"anyone else interested in adding those libraries as a module and shipping " -"your game with them--as either open- or closed-source." -msgstr "" - -#: ../../docs/about/faq.rst:170 -msgid "" -"To see how support for your SDK of choice could still be provided, look at " -"the Plugins question below." -msgstr "" - -#: ../../docs/about/faq.rst:173 -msgid "" -"If you know of a third-party SDK that is not supported by Godot but that " -"offers free and open-source integration, consider starting the integration " -"work yourself. Godot is not owned by one person; it belongs to the " -"community, and it grows along with ambitious community contributors like you." -msgstr "" - -#: ../../docs/about/faq.rst:179 -msgid "" -"How should assets be created to handle multiple resolutions and aspect " -"ratios?" -msgstr "" - -#: ../../docs/about/faq.rst:181 -msgid "" -"This question pops up often and it's probably thanks to the misunderstanding " -"created by Apple when they originally doubled the resolution of their " -"devices. It made people think that having the same assets in different " -"resolutions was a good idea, so many continued towards that path. That " -"originally worked to a point and only for Apple devices, but then several " -"Android and Apple devices with different resolutions and aspect ratios were " -"created, with a very wide range of sizes and DPIs." -msgstr "" - -#: ../../docs/about/faq.rst:189 -msgid "" -"The most common and proper way to achieve this is to, instead, use a single " -"base resolution for the game and only handle different screen aspect ratios. " -"This is mostly needed for 2D, as in 3D it's just a matter of Camera XFov or " -"YFov." -msgstr "" - -#: ../../docs/about/faq.rst:193 -msgid "" -"Choose a single base resolution for your game. Even if there are devices " -"that go up to 2K and devices that go down to 400p, regular hardware scaling " -"in your device will take care of this at little or no performance cost. Most " -"common choices are either near 1080p (1920x1080) or 720p (1280x720). Keep in " -"mind the higher the resolution, the larger your assets, the more memory they " -"will take and the longer the time it will take for loading." -msgstr "" - -#: ../../docs/about/faq.rst:201 -msgid "" -"Use the stretch options in Godot; 2D stretching while keeping aspect ratios " -"works best. Check the :ref:`doc_multiple_resolutions` tutorial on how to " -"achieve this." -msgstr "" - -#: ../../docs/about/faq.rst:205 -msgid "" -"Determine a minimum resolution and then decide if you want your game to " -"stretch vertically or horizontally for different aspect ratios, or if there " -"is one aspect ratio and you want black bars to appear instead. This is also " -"explained in :ref:`doc_multiple_resolutions`." -msgstr "" - -#: ../../docs/about/faq.rst:210 -msgid "" -"For user interfaces, use the :ref:`anchoring ` to " -"determine where controls should stay and move. If UIs are more complex, " -"consider learning about Containers." -msgstr "" - -#: ../../docs/about/faq.rst:214 -msgid "And that's it! Your game should work in multiple resolutions." -msgstr "" - -#: ../../docs/about/faq.rst:216 -msgid "" -"If there is a desire to make your game also work on ancient devices with " -"tiny screens (fewer than 300 pixels in width), you can use the export option " -"to shrink images, and set that build to be used for certain screen sizes in " -"the App Store or Google Play." -msgstr "" - -#: ../../docs/about/faq.rst:222 -msgid "How can I extend Godot?" -msgstr "" - -#: ../../docs/about/faq.rst:224 -msgid "" -"For extending Godot, like creating Godot Editor plugins or adding support " -"for additional languages, take a look at :ref:`EditorPlugins " -"` and tool scripts." -msgstr "" - -#: ../../docs/about/faq.rst:228 -msgid "Also, see the official blog posts on these topics:" -msgstr "" - -#: ../../docs/about/faq.rst:230 -msgid "" -"`A look at the GDNative architecture `_" -msgstr "" - -#: ../../docs/about/faq.rst:231 -msgid "`GDNative is here! `_" -msgstr "" - -#: ../../docs/about/faq.rst:233 -msgid "" -"You can also take a look at the GDScript implementation, the Godot modules, " -"as well as the `unofficial Python support `_ for Godot. This would be a good starting point to see how " -"another third-party library integrates with Godot." -msgstr "" - -#: ../../docs/about/faq.rst:239 -msgid "I would like to contribute! How can I get started?" -msgstr "" - -#: ../../docs/about/faq.rst:241 -msgid "" -"Awesome! As an open-source project, Godot thrives off of the innovation and " -"ambition of developers like you." -msgstr "" - -#: ../../docs/about/faq.rst:244 -msgid "" -"The first place to get started is in the `issues `_. Find an issue that resonates with you, then " -"proceed to the `How to Contribute `_ guide to learn how to " -"fork, modify, and submit a Pull Request (PR) with your changes." -msgstr "" - -#: ../../docs/about/faq.rst:249 -msgid "I have a great idea for Godot. How can I share it?" -msgstr "" - -#: ../../docs/about/faq.rst:251 -msgid "" -"It might be tempting to want to bring ideas to Godot, like ones that result " -"in massive core changes, some sort of mimicry of what another game engine " -"does, or alternative workflows that you'd like built into the editor. These " -"are great and we are thankful to have such motivated people want to " -"contribute, but Godot's focus is and always will be the core functionality " -"as outlined in the `Roadmap `_, `squashing bugs and addressing issues `_, and conversations between Godot " -"community members." -msgstr "" - -#: ../../docs/about/faq.rst:260 -msgid "" -"Most developers in the Godot community will be more interested to learn " -"about things like:" -msgstr "" - -#: ../../docs/about/faq.rst:263 -msgid "" -"Your experience using the software and the problems you have (we care about " -"this much more than ideas on how to improve it)." -msgstr "" - -#: ../../docs/about/faq.rst:265 -msgid "" -"The features you would like to see implemented because you need them for " -"your project." -msgstr "" - -#: ../../docs/about/faq.rst:267 -msgid "" -"The concepts that were difficult to understand while learning the software." -msgstr "" - -#: ../../docs/about/faq.rst:268 -msgid "The parts of your workflow you would like to see optimized." -msgstr "" - -#: ../../docs/about/faq.rst:269 -msgid "" -"Parts where you missed clear tutorials or where the documentation wasn't " -"clear." -msgstr "" - -#: ../../docs/about/faq.rst:271 -msgid "" -"Please don't feel like your ideas for Godot are unwelcome. Instead, try to " -"reformulate them as a problem first, so developers and the community have a " -"functional foundation to ground your ideas on." -msgstr "" - -#: ../../docs/about/faq.rst:275 -msgid "" -"A good way to approach sharing your ideas and problems with the community is " -"as a set of user stories. Explain what you are trying to do, what behavior " -"you expect to happen, and then what behavior actually happened. Framing " -"problems and ideas this way will help the whole community stay focused on " -"improving developer experiences as a whole." -msgstr "" - -#: ../../docs/about/faq.rst:281 -msgid "" -"Bonus points for bringing screenshots, concrete numbers, test cases, or " -"example projects (if applicable)." -msgstr "" - -#: ../../docs/about/faq.rst:286 -msgid "Why does Godot not use STL (Standard Template Library)" -msgstr "" - -#: ../../docs/about/faq.rst:288 -msgid "" -"Like many other libraries (Qt as an example), Godot does not make use of " -"STL. We believe STL is a great general purpose library, but we had special " -"requirements for Godot." -msgstr "" - -#: ../../docs/about/faq.rst:292 -msgid "" -"STL templates create very large symbols, which results in huge debug " -"binaries. We use few templates with very short names instead." -msgstr "" - -#: ../../docs/about/faq.rst:293 -msgid "" -"Most of our containers cater to special needs, like Vector, which uses copy " -"on write and we use to pass data around, or the RID system, which requires " -"O(1) access time for performance. Likewise, our hash map implementations are " -"designed to integrate seamlessly with internal engine types." -msgstr "" - -#: ../../docs/about/faq.rst:294 -msgid "" -"Our containers have memory tracking built-in, which helps better track " -"memory usage." -msgstr "" - -#: ../../docs/about/faq.rst:295 -msgid "" -"For large arrays, we use pooled memory, which can be mapped to either a " -"preallocated buffer or virtual memory." -msgstr "" - -#: ../../docs/about/faq.rst:296 -msgid "" -"We use our custom String type, as the one provided by STL is too basic and " -"lacks proper internationalization support." -msgstr "" - -#: ../../docs/about/faq.rst:299 -msgid "Why does Godot not use exceptions?" -msgstr "" - -#: ../../docs/about/faq.rst:301 -msgid "" -"We believe games should not crash, no matter what. If an unexpected " -"situation happens, Godot will print an error (which can be traced even to " -"script), but then it will try to recover as gracefully as possible and keep " -"going." -msgstr "" - -#: ../../docs/about/faq.rst:306 -msgid "" -"Additionally, exceptions significantly increase binary size for the " -"executable." -msgstr "" - -#: ../../docs/about/faq.rst:310 -msgid "Why does Godot not enforce RTTI?" -msgstr "" - -#: ../../docs/about/faq.rst:312 -msgid "" -"Godot provides its own type-casting system, which can optionally use RTTI " -"internally. Disabling RTTI in Godot means considerably smaller binary sizes " -"can be achieved, at a little performance cost." -msgstr "" - -#: ../../docs/about/faq.rst:317 -msgid "Why does Godot not force users to implement DoD (Data oriented Design)?" -msgstr "" - -#: ../../docs/about/faq.rst:319 -msgid "" -"While Godot internally for a lot of the heavy performance tasks attempts to " -"use cache coherency as best as possible, we believe most users don't really " -"need to be forced to use DoD practices." -msgstr "" - -#: ../../docs/about/faq.rst:323 -msgid "" -"DoD is mostly a cache coherency optimization that can only gain you " -"significant performance improvements when dealing with dozens of thousands " -"of objects (which are processed every frame with little modification). As " -"in, if you are moving a few hundred sprites or enemies per frame, DoD won't " -"help you, and you should consider a different approach to optimization." -msgstr "" - -#: ../../docs/about/faq.rst:330 -msgid "" -"The vast majority of games do not need this and Godot provides handy helpers " -"to do the job for most cases when you do." -msgstr "" - -#: ../../docs/about/faq.rst:333 -msgid "" -"If a game that really needs to process such large amount of objects is " -"needed, our recommendation is to use C++ and GDNative for the high " -"performance parts and GDScript (or C#) for the rest of the game." -msgstr "" - -#: ../../docs/about/faq.rst:338 -msgid "How can I support Godot development or contribute?" -msgstr "" - -#: ../../docs/about/faq.rst:340 -msgid "See :ref:`doc_ways_to_contribute`." -msgstr "" - -#: ../../docs/about/faq.rst:343 -msgid "Who is working on Godot? How can I contact you?" -msgstr "" - -#: ../../docs/about/faq.rst:345 -msgid "" -"See the corresponding page on the `Godot website `_." -msgstr "" - -#: ../../docs/about/docs_changelog.rst:4 -msgid "Documentation changelog" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:6 -msgid "" -"The documentation is continually being improved. The release of version 3.1 " -"includes many new tutorials, many fixes and updates for old tutorials, and " -"many updates to the class reference. Below is a list of new tutorials added " -"since version 3.0." -msgstr "" - -#: ../../docs/about/docs_changelog.rst:10 -msgid "" -"This document only contains new tutorials so not all changes are reflected, " -"many tutorials have been substantially updated but are not reflected in this " -"document." -msgstr "" - -#: ../../docs/about/docs_changelog.rst:14 -msgid "New tutorials since version 3.1" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:110 -#: ../../docs/getting_started/workflow/index.rst:2 -msgid "Project workflow" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:19 -msgid ":ref:`doc_android_custom_build`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/2d/index.rst:2 -msgid "2D" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:24 -msgid ":ref:`doc_2d_sprite_animation`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:27 -#: ../../docs/tutorials/audio/index.rst:2 -msgid "Audio" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:29 -msgid ":ref:`doc_sync_with_audio`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:32 ../../docs/tutorials/math/index.rst:2 -msgid "Math" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:34 -msgid ":ref:`doc_beziers_and_curves`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:35 -msgid ":ref:`doc_interpolation`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:38 -#: ../../docs/tutorials/inputs/index.rst:2 -msgid "Inputs" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:40 -msgid ":ref:`doc_input_examples`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:43 ../../docs/tutorials/i18n/index.rst:2 -msgid "Internationalization" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:45 -msgid ":ref:`doc_localization_using_gettext`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:162 -#: ../../docs/tutorials/shading/index.rst:2 -msgid "Shading" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:50 -msgid "Your First Shader Series:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:52 -msgid ":ref:`doc_what_are_shaders`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:53 -msgid ":ref:`doc_your_first_canvasitem_shader`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:54 -msgid ":ref:`doc_your_first_spatial_shader`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:55 -msgid ":ref:`doc_your_second_spatial_shader`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:58 -#: ../../docs/tutorials/networking/index.rst:2 -msgid "Networking" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:60 -msgid ":ref:`doc_webrtc`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:63 -#: ../../docs/about/docs_changelog.rst:182 -#: ../../docs/tutorials/plugins/index.rst:2 -msgid "Plugins" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:65 -msgid ":ref:`doc_android_plugin`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:66 -msgid ":ref:`doc_inspector_plugins`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:67 -msgid ":ref:`doc_visual_shader_plugins`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:70 -#: ../../docs/about/docs_changelog.rst:193 -#: ../../docs/tutorials/threads/index.rst:2 -msgid "Multi-threading" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:72 -msgid ":ref:`doc_using_multiple_threads`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:75 -#: ../../docs/about/docs_changelog.rst:198 -#: ../../docs/tutorials/content/index.rst:2 -msgid "Creating content" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:82 -msgid "Procedural geometry series:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:78 -msgid ":ref:`Procedural geometry `" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:79 -msgid ":ref:`doc_arraymesh`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:80 -msgid ":ref:`doc_surfacetool`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:81 -msgid ":ref:`doc_meshdatatool`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:82 -msgid ":ref:`doc_immediategeometry`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:85 -#: ../../docs/tutorials/optimization/index.rst:2 -msgid "Optimization" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:87 -msgid ":ref:`doc_using_multimesh`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:88 -msgid ":ref:`doc_using_servers`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:91 -#: ../../docs/tutorials/legal/index.rst:2 -msgid "Legal" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:93 -msgid ":ref:`doc_complying_with_licenses`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:96 -msgid "New tutorials since version 3.0" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:99 -#: ../../docs/getting_started/step_by_step/index.rst:2 -#: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 -#: ../../docs/development/compiling/compiling_with_script_encryption_key.rst:18 -msgid "Step by step" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:101 -msgid ":ref:`doc_signals`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:102 -msgid ":ref:`doc_exporting`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:105 -#: ../../docs/getting_started/step_by_step/scripting.rst:4 -#: ../../docs/getting_started/scripting/index.rst:2 -#: ../../docs/tutorials/networking/http_request_class.rst:22 -msgid "Scripting" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:107 -msgid ":ref:`doc_gdscript_static_typing`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:112 -msgid "Best Practices:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:114 -msgid ":ref:`doc_introduction_best_practices`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:115 -msgid ":ref:`doc_what_are_godot_classes`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:116 -msgid ":ref:`doc_scene_organization`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:117 -msgid ":ref:`doc_scenes_versus_scripts`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:118 -msgid ":ref:`doc_autoloads_versus_internal_nodes`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:119 -msgid ":ref:`doc_node_alternatives`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:120 -msgid ":ref:`doc_godot_interfaces`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:121 -msgid ":ref:`doc_godot_notifications`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:122 -msgid ":ref:`doc_data_preferences`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:123 -msgid ":ref:`doc_logic_preferences`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:128 -msgid ":ref:`doc_2d_lights_and_shadows`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:129 -msgid ":ref:`doc_2d_meshes`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:132 ../../docs/tutorials/3d/index.rst:2 -msgid "3D" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:134 -msgid ":ref:`doc_csg_tools`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:135 -msgid ":ref:`doc_animating_thousands_of_fish`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:136 -msgid ":ref:`doc_controlling_thousands_of_fish`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:139 -#: ../../docs/tutorials/physics/index.rst:2 -msgid "Physics" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:141 -msgid ":ref:`doc_ragdoll_system`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:142 -msgid ":ref:`doc_soft_body`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:145 -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 -#: ../../docs/tutorials/animation/index.rst:2 -#: ../../docs/development/file_formats/tscn.rst:375 -msgid "Animation" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:147 -msgid ":ref:`doc_2d_skeletons`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:148 -msgid ":ref:`doc_animation_tree`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:151 ../../docs/tutorials/gui/index.rst:2 -msgid "GUI" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:153 -msgid ":ref:`doc_gui_containers`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:156 -#: ../../docs/tutorials/viewports/index.rst:2 -#: ../../docs/tutorials/viewports/viewports.rst:4 -msgid "Viewports" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:158 -msgid ":ref:`doc_viewport_as_texture`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:159 -msgid ":ref:`doc_custom_postprocessing`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:164 -msgid ":ref:`doc_intro_to_shaders_water_workshop`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:165 -msgid ":ref:`doc_migrating_to_godot_shader_language`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:166 -msgid ":ref:`doc_advanced_postprocessing`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:168 -msgid "Shading Reference:" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:170 -msgid ":ref:`doc_shaders`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:171 -msgid ":ref:`doc_shading_language`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:172 -msgid ":ref:`doc_spatial_shader`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:173 -msgid ":ref:`doc_canvas_item_shader`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:174 -msgid ":ref:`doc_particle_shader`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:177 ../../docs/tutorials/vr/index.rst:2 -msgid "VR" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:179 -msgid ":ref:`doc_vr_starter_tutorial`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:184 -msgid ":ref:`doc_making_main_screen_plugins`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:185 -msgid ":ref:`doc_spatial_gizmo_plugins`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:188 -#: ../../docs/tutorials/platform/index.rst:2 -msgid "Platform-specific" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:190 -msgid ":ref:`doc_customizing_html5_shell`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:195 -msgid ":ref:`doc_thread_safe_apis`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:200 -msgid ":ref:`doc_making_trees`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:203 -#: ../../docs/tutorials/misc/index.rst:2 -msgid "Miscellaneous" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:205 -msgid ":ref:`doc_jitter_stutter`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:206 -msgid ":ref:`doc_running_code_in_the_editor`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:207 -msgid ":ref:`doc_change_scenes_manually`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:208 -msgid ":ref:`doc_gles2_gles3_differences`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:211 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 -#: ../../docs/development/compiling/index.rst:2 -#: ../../docs/development/compiling/compiling_for_windows.rst:72 -#: ../../docs/development/compiling/compiling_for_x11.rst:79 -#: ../../docs/development/compiling/compiling_for_osx.rst:23 -#: ../../docs/development/compiling/compiling_for_ios.rst:19 -#: ../../docs/development/compiling/compiling_for_uwp.rst:24 -msgid "Compiling" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:213 -msgid ":ref:`doc_optimizing_for_size`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:214 -msgid ":ref:`doc_compiling_with_script_encryption_key`" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:217 -#: ../../docs/development/cpp/index.rst:2 -msgid "Engine development" -msgstr "" - -#: ../../docs/about/docs_changelog.rst:219 -msgid ":ref:`doc_binding_to_external_libraries`" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:4 -msgid "Introduction to Godot’s editor" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:6 -msgid "" -"This tutorial will run you through Godot’s interface. We’re going to look at " -"the **Project Manager, docks, workspaces** and everything you need to know " -"to get started with the engine." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:11 -msgid "Project manager" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:13 -msgid "" -"When you launch Godot, the first window you’ll see is the Project Manager. " -"It lets you create, remove, import or play game projects." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:16 -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:49 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:16 -#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:22 -msgid "|image0|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:18 -msgid "" -"In the top-right corner you’ll find a drop-down menu to change the editor’s " -"language." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:21 -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:57 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:48 -msgid "|image1|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:23 -msgid "" -"From the **Templates** tab you can download open source project templates " -"and demos to help you get started faster." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:26 -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:71 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:58 -msgid "|image2|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:29 -msgid "Create or import a project" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:31 -msgid "" -"To create a new project, click the ``New Project`` button on the right. Give " -"it a name and choose an empty folder on your computer to save it." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:34 -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:91 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:83 -msgid "|image3|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:36 -msgid "" -"Click the Browse button to open Godot’s file browser and pick a location or " -"type the folder’s path in the Project Path field." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:39 -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:102 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:88 -msgid "|image4|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:41 -msgid "" -"When you see the green tick on the right, it means the engine detects an " -"empty folder and you may click ``Create``. Godot will create the project for " -"you and open it in the editor." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:45 -msgid "" -"The next time you’ll open Godot, you’ll see your new project in the list. " -"Double click on it to open it in the editor." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:48 -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:154 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:92 -msgid "|image5|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:50 -msgid "" -"You can import existing projects in a similar way, using the Import button. " -"Locate the folder that contains the project or the ``project.godot`` file to " -"import and edit it." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:54 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:113 -msgid "|image7|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:56 -msgid "When the folder path is correct, you'll see a green checkmark." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:58 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:121 -msgid "|image8|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:61 -msgid "Your first look at Godot’s editor" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:63 -msgid "" -"Welcome to Godot! With your project open, you should see the editor’s " -"interface with the 3D viewport active. You can change the current workspace " -"at the top of the interface. Click on 2D to switch to the 2D workspace." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:68 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:142 -msgid "|image9|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:70 -msgid "Now you should see this interface, with empty docks on the right side." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:72 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:148 -msgid "|image10|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:74 -msgid "" -"At the top, from left to right, you can see the **main menus**, the " -"**workspaces**, and the **playtest buttons**." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:77 -msgid "" -"On the left side, you have the **FileSystem dock**, where you’ll manage your " -"project files and assets." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:80 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:153 -msgid "|image11|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:82 -msgid "" -"On the right side, you’ll find the **Scene dock**, which lists the active " -"scene’s content and the **Inspector** in the bottom right corner." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:85 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:161 -msgid "|image12|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:87 -msgid "" -"In the center, you have the **Toolbar** at the top, where you’ll find tools " -"to move, scale or lock your scene’s objects. It changes as you jump to " -"different workspaces." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:91 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:168 -msgid "|image13|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:93 -msgid "" -"The **Bottom Panel** is the host for the debug console, the animation " -"editor, the audio mixer… They are wide and can take precious space. That’s " -"why they’re folded by default." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:97 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:115 -msgid "|image14|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:100 -msgid "The workspaces" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:102 -msgid "" -"You can see four workspace buttons at the top: 2D, 3D, Script and AssetLib." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:105 -msgid "" -"You’ll use the **2D workspace** for all types of games. In addition to 2D " -"games, the 2D workspace is where you'll build your interfaces. Press F1 to " -"access it." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:108 -msgid "|image15|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:110 -msgid "" -"In the **3D workspace**, you can work with meshes, lights, and design levels " -"for 3D games. Press F2 to access it." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:113 -msgid "|image16|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:115 -msgid "" -"Notice the text [perspective] under the toolbar, it is a button that opens a " -"list of options related to the 3D viewport." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:117 -msgid "|image20|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:119 -msgid "" -"Read :ref:`doc_introduction_to_3d` for more detail about **3D workspace**." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:121 -msgid "" -"The **Script** workspace is a complete code editor with a debugger, rich " -"auto-completion, and built-in code reference. Press F3 to access it, and F4 " -"to search the reference." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:125 -msgid "|image17|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:127 -msgid "" -"Finally the **AssetLib** is a library of Free add-ons, scripts and assets to " -"use in your projects." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:131 -msgid "Modify the interface" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:133 -msgid "" -"Godot’s interface lives in a single window. You cannot split it across " -"multiple screens although you can work with an external code editor like " -"Atom or Visual Studio for instance." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:138 -msgid "Move and resize docks" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:140 -msgid "" -"Click and drag on the edge of any dock or panel to resize it horizontally or " -"vertically." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:143 -msgid "|image18|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:145 -msgid "" -"Click the three-dotted icon at the top of any dock to change its location." -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:148 -msgid "|image19|" -msgstr "" - -#: ../../docs/getting_started/step_by_step/intro_to_the_editor_interface.rst:150 -msgid "" -"Go to the ``Editor`` menu and ``Editor Settings`` to fine-tune the look and " -"feel of the editor." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:4 -msgid "Scenes and nodes" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:11 -msgid "" -"Imagine for a second that you are not a game developer anymore. Instead, " -"you're a chef! Change your hipster outfit for a toque and a double breasted " -"jacket. Now, instead of making games, you create new and delicious recipes " -"for your guests." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:16 -msgid "" -"So, how does a chef create a recipe? Recipes are divided into two sections: " -"the first is the ingredients and the second is the instructions to prepare " -"it. This way, anyone can follow the recipe and savor your magnificent " -"creation." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:21 -msgid "" -"Making games in Godot feels pretty much the same way. Using the engine feels " -"like being in a kitchen. In this kitchen, *nodes* are like a refrigerator " -"full of fresh ingredients with which to cook." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:25 -msgid "" -"There are many types of nodes. Some show images, others play sound, other " -"nodes display 3D models, etc. There are dozens of them." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 -#: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 -#: ../../docs/development/file_formats/tscn.rst:26 -msgid "Nodes" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:31 -msgid "" -"But let's start with the basics. Nodes are fundamental building blocks for " -"creating a game. As mentioned above, a node can perform a variety of " -"specialized functions. However, any given node always has the following " -"attributes:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:35 -msgid "It has a name." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:36 -msgid "It has editable properties." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:37 -msgid "It can receive a callback to process every frame." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:38 -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 another node as a child." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:43 -msgid "" -"The last one is important. Nodes can have other nodes as children. When " -"arranged in this way, the nodes become a **tree**." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:46 -msgid "" -"In Godot, the ability to arrange nodes in this way creates a powerful tool " -"for organizing projects. Since different nodes have different functions, " -"combining them allows for the creation of more complex functions." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:50 -msgid "" -"Don't worry if this doesn't click yet. We will continue to explore this over " -"the next few sections. The most important fact to remember for now is that " -"nodes exist and can be arranged this way." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:55 -#: ../../docs/tutorials/plugins/editor/making_main_screen_plugins.rst:75 -msgid "Scenes" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:59 -msgid "" -"Now that the concept of nodes has been defined, the next logical step is to " -"explain what a Scene is." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:62 -msgid "" -"A scene is composed of a group of nodes organized hierarchically (in tree " -"fashion). Furthermore, a scene:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:65 -msgid "always has one root node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:66 -msgid "can be saved to disk and loaded back." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:67 -msgid "can be *instanced* (more on that later)." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:69 -msgid "" -"Running a game means running a scene. A project can contain several scenes, " -"but for the game to start, one of them must be selected as the main scene." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:72 -msgid "" -"Basically, the Godot editor is a **scene editor**. It has plenty of tools " -"for editing 2D and 3D scenes as well as user interfaces, but the editor is " -"based on the concept of editing a scene and the nodes that compose it." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:77 -msgid "Creating a new project" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:79 -msgid "" -"Let's make these abstract concepts more concrete with an example. Following " -"a long tradition in tutorials, we'll start with a \"Hello World\" project. " -"This will introduce us to using the editor." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:83 -msgid "" -"If you run the Godot executable outside of a project, the Project Manager " -"appears. This helps developers manage their projects." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:88 -msgid "" -"To create a new project, click the \"New Project\" option. Choose and create " -"a path for the project and specify the project name \"New Project\":" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:94 -#: ../../docs/getting_started/editor/external_editor.rst:32 -#: ../../docs/tutorials/plugins/editor/inspector_plugins.rst:43 -#: ../../docs/development/compiling/compiling_with_mono.rst:182 -msgid "Editor" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:96 -msgid "" -"Once you've created the \"New Project\", then open it. This will open the " -"Godot editor:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:101 -msgid "" -"As mentioned before, making games in Godot feels like being in a kitchen, so " -"let's open the refrigerator and add some fresh nodes to the project. We'll " -"begin with a \"Hello World\" message that we'll put on the screen." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:106 -msgid "" -"To do this, press the \"New Node\" button (which looks like a plus symbol):" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:110 -msgid "" -"This will open the Create Node dialog, showing the long list of nodes that " -"can be created:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:115 -msgid "" -"From there, select the \"Label\" node first. Searching for it is probably " -"the fastest way:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:120 -msgid "And finally, create the Label! A lot happens when Create is pressed:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:124 -msgid "" -"First of all, the scene changes to the 2D editor (because Label is a 2D Node " -"type), and the Label appears, selected, at the top left corner of the " -"viewport." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:127 -msgid "" -"The node appears in the scene tree editor (box in the top right corner), and " -"the label properties appear in the Inspector (box in the bottom right " -"corner)." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:131 -msgid "" -"The next step will be to change the \"Text\" Property of the label. Let's " -"change it to \"Hello World\":" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:136 -msgid "" -"Ok, everything's ready to run the scene! Press the PLAY SCENE Button on the " -"top bar (or hit F6):" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:141 -msgid "Aaaand... Oops." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:145 -msgid "" -"Scenes need to be saved to be run, so save the scene to something like Hello." -"tscn in Scene -> Save:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:150 -msgid "" -"And here's when something funny happens. The file dialog is a special file " -"dialog, and only allows you to save inside the project. The project root is " -"\"res://\" which means \"resource path\". This means that files can only be " -"saved inside the project. For the future, when doing file operations in " -"Godot, remember that \"res://\" is the resource path, and no matter the " -"platform or install location, it is the way to locate where resource files " -"are from inside the game." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:158 -msgid "" -"After saving the scene and pressing run scene again, the \"Hello World\" " -"demo should finally execute:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:163 -msgid "Success!" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:167 -msgid "" -"If this doesn't immediately work and you have a hiDPI display on at least " -"one of your monitors, go to **Project → Project Settings → Display → " -"Window** then enable **Allow Hidpi** under **Dpi**." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:175 -msgid "Configuring the project" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:177 -msgid "" -"Ok, it's time to configure the project. Right now, the only way to run " -"something is to execute the current scene. Projects, however, may have " -"several scenes, so one of them must be set as the main scene. This is the " -"scene that will be loaded any time the project is run." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:182 -msgid "" -"These settings are all stored in a project.godot file, which is a plaintext " -"file in win.ini format (for easy editing). There are dozens of settings that " -"you can change in this file to alter how a project executes. To simplify " -"this process, Godot provides a project settings dialog, which acts as a sort " -"of frontend to editing a project.godot file." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:188 -msgid "To access that dialog, select Project -> Project Settings. Try it now." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:190 -msgid "" -"Once the window opens, let's select a main scene. Locate the `Application/" -"Run/Main Scene` property and click on it to select 'Hello.tscn'." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:195 -msgid "" -"Now, with this change, when you press the regular Play button (or F5), this " -"scene will run, no matter which scene is actively being edited." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:198 -msgid "" -"The project settings dialog provides a lot of options that can be saved to a " -"project.godot file and shows their default values. If you change a value, a " -"tick is marked to the left of its name. This means that the property will be " -"saved to the project.godot file and remembered." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:203 -msgid "" -"As a side note, it is also possible to add custom configuration options and " -"read them in at run-time using the :ref:`ProjectSettings " -"` singleton." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:207 -msgid "To be continued..." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:209 -msgid "" -"This tutorial talked about \"scenes and nodes\", but so far there has been " -"only *one* scene and *one* node! Don't worry, the next tutorial will expand " -"on that..." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:4 -msgid "Instancing" -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:9 -msgid "" -"Creating a single scene and adding nodes into it might work for small " -"projects, but as a project grows in size and complexity, the number of nodes " -"can quickly become unmanageable. To address this, Godot allows a project to " -"be separated into any number of scenes. This provides you with a powerful " -"tool that helps you organize the different components of your game." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:15 -msgid "" -"In :ref:`doc_scenes_and_nodes` you learned that a scene is a collection of " -"nodes organized in a tree structure, with a single node as the tree root." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:20 -msgid "" -"You can create as many scenes as you like and save them to disk. Scenes " -"saved in this manner are called \"Packed Scenes\" and have a ``.tscn`` " -"filename extension." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:26 -msgid "" -"Once a scene has been saved, it can be instanced into another scene as if it " -"were any other node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:31 -msgid "In the above picture, Scene B was added to Scene A as an instance." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:34 -msgid "Instancing by example" -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:36 -msgid "" -"To learn how instancing works, let's start by downloading a sample project: :" -"download:`instancing.zip `." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:39 -msgid "" -"Unzip this project anywhere you like. Then open Godot and add this project " -"to the project manager using the 'Import' button:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:44 -msgid "" -"Browse to the folder you extracted and open the \"project.godot\" file you " -"can find inside it. After doing this, the new project will appear on the " -"list of projects. Edit the project by pressing the 'Edit' button." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:48 -msgid "" -"This project contains two scenes: \"Ball.tscn\" and \"Main.tscn\". The ball " -"scene uses a :ref:`RigidBody2D ` to provide physics " -"behavior while the main scene has a set of obstacles for the ball to collide " -"with (using :ref:`StaticBody2D `)." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:57 -msgid "Open the ``Main`` scene, and then select the root node:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:61 -msgid "" -"We want to add an instance of the ``Ball`` scene as a child of ``Main``. " -"Click the \"link\"-shaped button (its hover-text says \"Instance a scene " -"file as a Node.\") and select the ``Ball.tscn`` file." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:67 -msgid "" -"The ball will be placed at the top-left corner of the screen area (this is " -"``(0, 0)`` in screen coordinates). Click and drag the ball somewhere near " -"the top-center of the scene:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:73 -msgid "Press \"Play\" and watch the ball fall to the bottom of the screen:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:78 -msgid "Multiple instances" -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:80 -msgid "" -"You can add as many instances as you like to a scene, either by using the " -"\"Instance\" button again, or by clicking on the ball instance and pressing " -"\"Duplicate\" (Ctrl-D):" -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:86 -msgid "Run the scene again and all of the balls will fall." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:91 -msgid "Editing instances" -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:93 -msgid "" -"Open the ``Ball`` scene and add a ``PhysicsMaterial`` by clicking on the " -"down arrow and selecting \"New PhysicsMaterial\"." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:98 -msgid "" -"Then, expand the material by clicking on it, and set the ``Bounce`` property " -"to ``1``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:103 -msgid "" -"Press \"Play\" and notice that all of the instanced balls are now much more " -"bouncy. Because the instanced balls are based on the saved scene, changes to " -"that scene will affect all instances." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:107 -msgid "" -"You can also adjust individual instances. Set the bounce value back to ``0`` " -"and then in the ``Main`` scene, select one of the instanced balls. Resources " -"like ``PhysicsMaterial`` are shared between instances by default, so we need " -"to make it unique. Click on the down arrow and select \"Make Unique\". Set " -"its ``Bounce`` to ``1`` and press \"Play\"." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:115 -msgid "" -"Notice that a grey \"revert\" button appears next to the adjusted property. " -"When this button is present, it means you modified a property in the " -"instanced scene to override its value in the saved scene. Even if that " -"property is modified in the original scene, the custom value will remain. " -"Pressing the revert button will restore the property to the value in the " -"saved scene." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:123 -#: ../../docs/getting_started/step_by_step/signals.rst:208 -#: ../../docs/getting_started/workflow/best_practices/scenes_versus_scripts.rst:151 -#: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:214 -msgid "Conclusion" -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing.rst:125 -msgid "" -"Instancing can be useful when you want to create many copies of the same " -"object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_instancing_continued`." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 -msgid "Instancing (continued)" -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:7 -msgid "Recap" -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:9 -msgid "Instancing has many handy uses. At a glance, with instancing you have:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:11 -msgid "The ability to subdivide scenes and make them easier to manage." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "A tool to manage and edit multiple node instances at once." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 -msgid "" -"A way to organize and embed complex game flows or even UIs (in Godot, UI " -"Elements are nodes, too)." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 -msgid "Design language" -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 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 -msgid "" -"When making games with Godot, the recommended approach is to dismiss most " -"common design patterns, such as MVC or Entity-Relationship diagrams, and " -"instead think about your scenes in a more natural way. Start by imagining " -"the visible elements in your game, the ones that can be named not just by a " -"programmer, but by anyone." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 -msgid "For example, here's how a simple shooter game could be imagined:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 -msgid "" -"You can come up with a diagram like this for almost any kind of game. Write " -"down the parts of the game that you can visualize, and then add arrows to " -"represent ownership of one component by another." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 -msgid "" -"Once you have a diagram like this, the recommended process for making a game " -"is to create a scene for each element listed in the diagram. You'll use " -"instancing (either by code or directly in the editor) for the ownership " -"relationships." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 -msgid "" -"A lot of time spent in programming games (or software in general) is on " -"designing an architecture and fitting game components to that architecture. " -"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 " -"needed." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 -msgid "" -"Let's take a look at one more, somewhat more complex, example of an open-" -"world type game with lots of assets and nested elements:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 -msgid "" -"Take a look at the room element. Let's say we started there. We could make a " -"couple of different room scenes, with different arrangements of furniture " -"(also scenes) in them. Later, we could make a house scene, connecting rooms " -"to make up its interior." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 -msgid "" -"Then, we could make a citadel scene, which is made out of many instanced " -"houses. Then, we could start working on the world map terrain, adding the " -"citadel onto it." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 -msgid "" -"Later, we could create scenes that represent guards (and other NPCs) and add " -"them to the citadel as well. As a result, they would be indirectly added to " -"the overall game world." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 -msgid "" -"With Godot, it's easy to iterate on your game like this, as all you need to " -"do is create and instance more scenes. Furthermore, the editor UI is " -"designed to be user friendly for programmers and non-programmers alike. A " -"typical team development process can involve 2D or 3D artists, level " -"designers, game designers, and animators, all working with the editor " -"interface." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 -msgid "Information overload!" -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 -msgid "" -"This has been a lot of high level information dropped on you all at once. " -"However, the important part of this tutorial was to create an awareness of " -"how scenes and instancing are used in real projects." -msgstr "" - -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 -msgid "" -"Everything discussed here will become second nature to you once you start " -"making games and putting these concepts into practice. For now, don't worry " -"about it too much, and go on to the next tutorial!" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:9 -msgid "" -"Before Godot 3.0, the only choice for scripting a game was to use :ref:" -"`GDScript`. Nowadays, Godot has four (yes, four!) official " -"languages and the ability to add extra scripting languages dynamically!" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:13 -msgid "" -"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 " -"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 " -"statically typed languages, go with C# and C++ instead." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:22 -#: ../../docs/getting_started/scripting/gdscript/index.rst:2 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:30 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:59 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:188 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:203 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:215 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:226 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:234 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:249 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:261 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:321 -msgid "GDScript" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:24 -msgid "" -":ref:`GDScript` is, as mentioned above, the main language used " -"in Godot. Using it has some positive points compared to other languages due " -"to its high integration with Godot:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:28 -msgid "" -"It's simple, elegant, and designed to be familiar for users of other " -"languages such as Lua, Python, Squirrel, etc." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:29 -msgid "Loads and compiles blazingly fast." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:30 -msgid "" -"The editor integration is a pleasure to work with, with code completion for " -"nodes, signals, and many other items pertaining to the scene being edited." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:31 -msgid "" -"Has vector types built-in (such as Vectors, transforms, etc.), making it " -"efficient for heavy use of linear algebra." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:32 -msgid "" -"Supports multiple threads as efficiently as statically typed languages - one " -"of the limitations that made us avoid VMs such as Lua, Squirrel, etc." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:33 -msgid "" -"Uses no garbage collector, so it trades a small bit of automation (most " -"objects are reference counted anyway), by determinism." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:34 -msgid "" -"Its dynamic nature makes it easy to optimize sections of code in C++ (via " -"GDNative) if more performance is required, all without recompiling the " -"engine." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:36 -msgid "" -"If you're undecided and have experience with programming, especially " -"dynamically typed languages, go for GDScript!" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:40 -#: ../../docs/getting_started/scripting/visual_script/index.rst:2 -msgid "VisualScript" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:42 -msgid "" -"Beginning with 3.0, Godot offers :ref:`Visual " -"Scripting`. This is a typical implementation of a " -"\"blocks and connections\" language, but adapted to how Godot works." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:46 -msgid "" -"Visual scripting is a great tool for non-programmers, or even for " -"experienced developers who want to make parts of the code more accessible to " -"others, like game designers or artists." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:50 -msgid "" -"It can also be used by programmers to build state machines or custom visual " -"node workflows - for example, a dialogue system." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:55 -msgid ".NET / C#" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:57 -msgid "" -"As Microsoft's C# is a favorite amongst game developers, we have added " -"official support for it. C# is a mature language with tons of code written " -"for it, and support was added thanks to a generous donation from Microsoft." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:62 -msgid "" -"It has an excellent tradeoff between performance and ease of use, although " -"one must be aware of its garbage collector." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:65 -msgid "" -"Since Godot uses the `Mono `_ .NET runtime, in " -"theory any third-party .NET library or framework can be used for scripting " -"in Godot, as well as any Common Language Infrastructure-compliant " -"programming language, such as F#, Boo or ClojureCLR. In practice however, C# " -"is the only officially supported .NET option." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:71 -msgid "GDNative / C++" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:73 -msgid "" -"Finally, one of our brightest additions for the 3.0 release: GDNative allows " -"scripting in C++ without needing to recompile (or even restart) Godot." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:77 -msgid "" -"Any C++ version can be used, and mixing compiler brands and versions for the " -"generated shared libraries works perfectly, thanks to our use of an internal " -"C API Bridge." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:81 -msgid "" -"This language is the best choice for performance and does not need to be " -"used throughout an entire game, as other parts can be written in GDScript or " -"Visual Script. However the API is clear and easy to use as it resembles, " -"mostly, Godot's actual C++ API." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:86 -msgid "" -"More languages can be made available through the GDNative interface, but " -"keep in mind we don't have official support for them." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:90 -msgid "Scripting a scene" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:92 -msgid "" -"For the rest of this tutorial we'll set up a GUI scene consisting of a " -"button and a label, where pressing the button will update the label. This " -"will demonstrate:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:96 -msgid "Writing a script and attaching it to a node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:97 -msgid "Hooking up UI elements via signals." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:98 -msgid "Writing a script that can access other nodes in the scene." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:100 -msgid "" -"Before continuing, please make sure to read the :ref:" -"`GDScript` reference. It's a language designed to be simple, " -"and the reference is short, so it will not take more than a few minutes to " -"get an overview of the concepts." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:105 -#: ../../docs/tutorials/physics/kinematic_character_2d.rst:79 -#: ../../docs/tutorials/animation/introduction_2d.rst:112 -msgid "Scene setup" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:107 -msgid "" -"Use the \"Add Child Node\" dialogue accessed from the Scene tab (or by " -"pressing ``Ctrl+A``) to create a hierarchy with the following nodes:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:110 -msgid "Panel" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:112 -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:144 -msgid "Label" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:113 -msgid "Button" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:115 -msgid "The scene tree should look like this:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:119 -msgid "" -"Use the 2D editor to position and resize the Button and Label so that they " -"look like the image below. You can set the text from the Inspector tab." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:124 -msgid "Finally, save the scene with a name such as ``sayhello.tscn``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:129 -msgid "Adding a script" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:131 -msgid "" -"Right click on the Panel node, then select \"Attach Script\" from the " -"context menu:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:136 -msgid "" -"The script creation dialog will pop up. This dialog allows you to set the " -"script's language, class name, and other relevant options." -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." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:142 -msgid "" -"The node we're attaching the script to is a panel, so the Inherits field " -"will automatically be filled in with \"Panel\". This is what we want, as the " -"script's goal is to extend the functionality of our panel node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:146 -msgid "Finally, enter a path name for the script and select Create:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:150 -msgid "" -"The script will then be created and added to the node. You can see this as " -"an \"Open script\" icon next to the node in the Scene tab, as well as in the " -"script property under Inspector:" -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, " -"where a default template will be included:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:161 -msgid "" -"There's not much there. The ``_ready()`` function is called when the node, " -"and all its children, enters the active scene. **Note:** ``_ready()`` is not " -"the constructor; the constructor is instead ``_init()``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:166 -msgid "The role of the script" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:168 -msgid "" -"A script adds behavior to a node. It is used to control how the node " -"functions as well as how it interacts with other nodes: children, parent, " -"siblings, and so on. The local scope of the script is the node. In other " -"words, the script inherits the functions provided by that node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:179 -msgid "Handling a signal" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:181 -msgid "" -"Signals are \"emitted\" when some specific kind of action happens, and they " -"can be connected to any function of any script instance. Signals are used " -"mostly in GUI nodes, although other nodes have them too, and you can even " -"define custom signals in your own scripts." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:186 -msgid "" -"In this step, we'll connect the \"pressed\" signal to a custom function. " -"Forming connections is the first part and defining the custom function is " -"the second part. For the first part, Godot provides two ways to create " -"connections: through a visual interface the editor provides or through code." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:191 -msgid "" -"While we will use the code method for the remainder of this tutorial series, " -"let's cover how the editor interface works for future reference." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:194 -msgid "" -"Select the Button node in the scene tree and then select the \"Node\" tab. " -"Next, make sure that you have \"Signals\" selected." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:199 -msgid "" -"If you then select \"pressed()\" under \"BaseButton\" and click the " -"\"Connect...\" button in the bottom right, you'll open up the connection " -"creation dialogue." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:204 -msgid "" -"In the bottom-left are the key things you need to create a connection: a " -"node which implements the method you want to trigger (represented here as a " -"NodePath) and the name of the method to trigger." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:208 -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 " -"to a relative path from the emitting node to the selected node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:213 -msgid "" -"By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " -"do have the \"Make Function\" check button checked, then the editor will " -"generate the function for you before setting up the connection." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:218 -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 into " -"the manual process!" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:222 -msgid "" -"To accomplish this, we will introduce a function that is probably the most " -"used by Godot programmers: :ref:`Node.get_node() " -"`. This function uses paths to fetch nodes " -"anywhere in the scene, relative to the node that owns the script." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:227 -msgid "" -"For the sake of convenience, delete everything underneath ``extends Panel``. " -"You will fill out the rest of the script manually." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:230 -msgid "" -"Because the Button and Label are siblings under the Panel where the script " -"is attached, you can fetch the Button by typing the following underneath the " -"``_ready()`` function:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:247 -msgid "Next, write a function which will be called when the button is pressed:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:262 -msgid "" -"Finally, connect the button's \"pressed\" signal to ``_ready()`` by using :" -"ref:`Object.connect() `." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:278 -msgid "The final script should look like this:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:311 -msgid "" -"Run the scene and press the button. You should get the following result:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:315 -msgid "Why, hello there! Congratulations on scripting your first scene." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:319 -msgid "" -"A common misunderstanding regarding this tutorial is how ``get_node(path)`` " -"works. For a given node, ``get_node(path)`` searches its immediate children. " -"In the above code, this means that Button must be a child of Panel. If " -"Button were instead a child of Label, the code to obtain it would be:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:337 -msgid "Also, remember that nodes are referenced by name, not by type." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:341 -msgid "" -"The right-hand panel of the connect dialogue is for binding specific values " -"to the connected function's parameters. You can add and remove values of " -"different types." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting.rst:345 -msgid "" -"The code approach also enables this with a 4th ``Array`` parameter that is " -"empty by default. Feel free to read up on the ``Object.connect`` method for " -"more information." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:4 -msgid "Scripting (continued)" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:7 -msgid "Processing" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:9 -msgid "" -"Several actions in Godot are triggered by callbacks or virtual functions, so " -"there is no need to write code that runs all the time." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:12 -msgid "" -"However, it is still common to need a script to be processed on every frame. " -"There are two types of processing: idle processing and physics processing." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:16 -msgid "" -"Idle processing is activated when the method :ref:`Node._process() " -"` is found in a script. It can be turned off and " -"on with the :ref:`Node.set_process() ` " -"function." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:20 -msgid "This method will be called every time a frame is drawn:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:36 -msgid "" -"It's important to bear in mind that the frequency with which ``_process()`` " -"will be called depends on how many frames per second (FPS) your application " -"is running at. This rate can vary over time and devices." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:40 -msgid "" -"To help manage this variability the ``delta`` parameter contains the time " -"elapsed in seconds, as a floating point, since the previous call to " -"``_process()``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:43 -msgid "" -"This parameter can be used to make sure things always take the same amount " -"of time, regardless of the game's FPS." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:46 -msgid "" -"For example, movement is often multiplied with a time delta to make movement " -"speed both constant and independent from the frame rate." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:49 -msgid "" -"Physics processing with ``_physics_process()`` is similar, but it should be " -"used for processes that must happen before each physics step, such as " -"controlling a character. It always runs before a physics step and it is " -"called at fixed time intervals: 60 times per second by default. You can " -"change the interval from the Project Settings, under Physics -> Common -> " -"Physics Fps." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:55 -msgid "" -"The function ``_process()``, however, is not synced with physics. Its frame " -"rate is not constant and is dependent on hardware and game optimization. Its " -"execution is done after the physics step on single-threaded games." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:58 -msgid "" -"A simple way to see the ``_process()`` function at work is to create a scene " -"with a single Label node, with the following script:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:85 -msgid "Which will show a counter increasing each frame." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:88 -msgid "Groups" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:90 -msgid "" -"Groups in Godot work like tags you might have come across in other software. " -"A node can be added to as many groups as desired. This is a useful feature " -"for organizing large scenes. There are two ways to add nodes to groups. The " -"first is from the UI, using the Groups button under the Node panel:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:97 -msgid "" -"And the second way is from code. The following script would add the current " -"node to the ``enemies`` group as soon as it appeared in the scene tree." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:115 -msgid "" -"This way, if the player is discovered sneaking into a secret base, all " -"enemies can be notified about its alarm sounding by using :ref:`SceneTree." -"call_group() `:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:132 -msgid "" -"The above code calls the function ``player_was_discovered`` on every member " -"of the group ``enemies``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:135 -msgid "" -"It is also possible to get the full list of ``enemies`` nodes by calling :" -"ref:`SceneTree.get_nodes_in_group() " -"`:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:148 -msgid "" -"The :ref:`SceneTree ` class provides many useful methods, " -"like interacting with scenes, their node hierarchy and groups of nodes. It " -"allows you to easily switch scenes or reload them, to quit the game or pause " -"and unpause it. It even comes with interesting signals. So check it out if " -"you have some time!" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:156 -#: ../../docs/tutorials/gui/custom_gui_controls.rst:157 -msgid "Notifications" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:158 -msgid "" -"Godot has a system of notifications. These are usually not needed for " -"scripting, as it's too low-level and virtual functions are provided for most " -"of them. It's just good to know they exist. For example, you may add an :ref:" -"`Object._notification() ` function in " -"your script:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:193 -msgid "" -"The documentation of each class in the :ref:`Class Reference ` shows the notifications it can receive. However, in most cases " -"GDScript provides simpler overrideable functions." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:198 -msgid "Overrideable functions" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:200 -msgid "" -"Such overrideable functions, which are described as follows, can be applied " -"to nodes:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:272 -msgid "" -"As mentioned before, it's better to use these functions instead of the " -"notification system." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:276 -msgid "Creating nodes" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:278 -msgid "" -"To create a node from code, call the ``.new()`` method, like for any other " -"class-based datatype. For example:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:302 -msgid "" -"To delete a node, be it inside or outside the scene, ``free()`` must be used:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:318 -msgid "" -"When a node is freed, it also frees all its child nodes. Because of this, " -"manually deleting nodes is much simpler than it appears. Free the base node " -"and everything else in the subtree goes away with it." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:322 -msgid "" -"A situation might occur where we want to delete a node that is currently " -"\"blocked\", because it is emitting a signal or calling a function. This " -"will crash the game. Running Godot with the debugger will often catch this " -"case and warn you about it." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:327 -msgid "" -"The safest way to delete a node is by using :ref:`Node.queue_free() " -"`. This erases the node safely during idle." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:345 -msgid "Instancing scenes" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:347 -msgid "" -"Instancing a scene from code is done in two steps. The first one is to load " -"the scene from your hard drive:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:360 -msgid "" -"Preloading it can be more convenient, as it happens at parse time (GDScript " -"only):" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:368 -msgid "" -"But ``scene`` is not yet a node. It's packed in a special resource called :" -"ref:`PackedScene `. To create the actual node, the " -"function :ref:`PackedScene.instance() ` " -"must be called. This will return the tree of nodes that can be added to the " -"active scene:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:386 -msgid "" -"The advantage of this two-step process is that a packed scene may be kept " -"loaded and ready to use so that you can create as many instances as desired. " -"This is especially useful to quickly instance several enemies, bullets, and " -"other entities in the active scene." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:394 -msgid "Register scripts as classes" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:396 -msgid "" -"Godot has a \"Script Class\" feature to register individual scripts with the " -"Editor. By default, you can only access unnamed scripts by loading the file " -"directly." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:400 -msgid "" -"You can name a script and register it as a type in the editor with the " -"``class_name`` keyword followed by the class's name. You may add a comma and " -"an optional path to an image to use as an icon. You will then find your new " -"type in the Node or Resource creation dialog." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:422 -msgid "In Godot 3.1:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:424 -msgid "" -"Only GDScript and NativeScript, i.e., C++ and other GDNative-powered " -"languages, can register scripts." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scripting_continued.rst:425 -msgid "Only GDScript creates global variables for each named script." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:4 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1280 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 -#: ../../docs/development/cpp/object_class.rst:211 -msgid "Signals" -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:9 -msgid "" -"Signals are Godot's version of the *observer* pattern. They allow a node to " -"send out a message that other nodes can listen for and respond to. For " -"example, rather than continuously checking a button to see if it's being " -"pressed, the button can emit a signal when it's pressed." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:14 -msgid "" -"You can read more about the observer pattern here: http://" -"gameprogrammingpatterns.com/observer.html" -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:16 -msgid "" -"Signals are a way to *decouple* your game objects, which leads to better " -"organized and more manageable code. Instead of forcing game objects to " -"expect other objects to always be present, they can instead emit signals " -"that all interested objects can subscribe to and respond to." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:21 -msgid "" -"Below you can see some examples of how you can use signals in your own " -"projects." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:24 -msgid "Timer example" -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:26 -msgid "" -"To see how signals work, let's try using a :ref:`Timer ` node. " -"Create a new scene with a Node and two children: a Timer and a :ref:`Sprite " -"`. In the Scene dock, rename Node to TimerExample." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:30 -msgid "" -"For the Sprite's texture, you can use the Godot icon, or any other image you " -"like. Do so by selecting ``Load`` in the Sprite's Texture attribute drop-" -"down menu. Attach a script to the root node, but don't add any code to it " -"yet." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:34 -msgid "Your scene tree should look like this:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:38 -msgid "" -"In the Timer node's properties, check the \"On\" box next to *Autostart*. " -"This will cause the timer to start automatically when you run the scene. You " -"can leave the *Wait Time* at 1 second." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:42 -msgid "" -"Next to the \"Inspector\" tab is a tab labeled \"Node\". Click on this tab " -"and you'll see all of the signals that the selected node can emit. In the " -"case of the Timer node, the one we're concerned with is \"timeout\". This " -"signal is emitted whenever the Timer reaches ``0``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:49 -msgid "" -"Click on the \"timeout()\" signal and click \"Connect...\". You'll see the " -"following window, where you can define how you want to connect the signal:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:54 -msgid "" -"On the left side, you'll see the nodes in your scene and can select the node " -"that you want to \"listen\" for the signal. Note that the Timer node is red " -"- this is *not* an error, but is a visual indication that it's the node that " -"is emitting the signal. Select the root node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:59 -msgid "" -"The target node *must* have a script attached or you'll receive an error " -"message." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:62 -msgid "" -"On the bottom of the window is a field labeled \"Method In Node\". This is " -"the name of the function in the target node's script that you want to use. " -"By default, Godot will create this function using the naming convention " -"``_on__`` but you can change it if you wish." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:67 -msgid "" -"Click \"Connect\" and you'll see that the function has been created in the " -"script:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:87 -msgid "" -"Now we can replace the placeholder code with whatever code we want to run " -"when the signal is received. Let's make the Sprite blink:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:111 -msgid "" -"Run the scene and you'll see the Sprite blinking on and off every second. " -"You can change the Timer's *Wait Time* property to alter this." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:115 -msgid "Connecting signals in code" -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:117 -msgid "" -"You can also make the signal connection in code rather than with the editor. " -"This is usually necessary when you're instancing nodes via code and so you " -"can't use the editor to make the connection." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:121 -msgid "" -"First, disconnect the signal by selecting the connection in the Timer's " -"\"Node\" tab and clicking disconnect." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:126 -msgid "" -"To make the connection in code, we can use the ``connect`` function. We'll " -"put it in ``_ready()`` so that the connection will be made on run. The " -"syntax of the function is ``.connect(, " -", )``. Here is the code for our Timer " -"connection:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:159 -msgid "Custom signals" -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:161 -msgid "You can also declare your own custom signals in Godot:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:179 -msgid "" -"Once declared, your custom signals will appear in the Inspector and can be " -"connected in the same way as a node's built-in signals." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:182 -msgid "To emit a signal via code, use the ``emit_signal`` function:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:210 -msgid "" -"Many of Godot's built-in node types provide signals you can use to detect " -"events. For example, an :ref:`Area2D ` representing a coin " -"emits a ``body_entered`` signal whenever the player's physics body enters " -"its collision shape, allowing you to know when the player collected it." -msgstr "" - -#: ../../docs/getting_started/step_by_step/signals.rst:215 -msgid "" -"In the next section, :ref:`doc_your_first_game`, you'll build a complete " -"game including several uses of signals to connect different game components." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:4 -msgid "Your first game" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:7 -#: ../../docs/getting_started/step_by_step/exporting.rst:7 -#: ../../docs/tutorials/animation/introduction_2d.rst:7 -#: ../../docs/tutorials/assetlib/using_assetlib.rst:10 -msgid "Overview" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:9 -msgid "" -"This tutorial will guide you through making your first Godot project. You " -"will learn how the Godot editor works, how to structure a project, and how " -"to build a 2D game." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:13 -msgid "" -"This project is an introduction to the Godot engine. It assumes that you " -"have some programming experience already. If you're new to programming " -"entirely, you should start here: :ref:`doc_scripting`." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:18 -msgid "" -"The game is called \"Dodge the Creeps!\". Your character must move and avoid " -"the enemies for as long as possible. Here is a preview of the final result:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:24 -msgid "" -"**Why 2D?** 3D games are much more complex than 2D ones. You should stick to " -"2D until you have a good understanding of the game development process." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:28 -#: ../../docs/getting_started/workflow/project_setup/index.rst:2 -#: ../../docs/tutorials/2d/using_tilemaps.rst:21 -#: ../../docs/development/cpp/configuring_an_ide.rst:182 -msgid "Project setup" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:30 -msgid "" -"Launch Godot and create a new project. Then, download :download:" -"`dodge_assets.zip ` - the images and sounds you'll " -"be using to make the game. Unzip these files to your project folder." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:34 -msgid "" -"For this tutorial, we will assume you are familiar with the editor. If you " -"haven't read :ref:`doc_scenes_and_nodes`, do so now for an explanation of " -"setting up a project and using the editor." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:38 -msgid "" -"This game will use portrait mode, so we need to adjust the size of the game " -"window. Click on Project -> Project Settings -> Display -> Window and set " -"\"Width\" to ``480`` and \"Height\" to ``720``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:43 -msgid "Organizing the project" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:45 -msgid "" -"In this project, we will make 3 independent scenes: ``Player``, ``Mob``, and " -"``HUD``, which we will combine into the game's ``Main`` scene. In a larger " -"project, it might be useful to make folders to hold the various scenes and " -"their scripts, but for this relatively small game, you can save your scenes " -"and scripts in the project's root folder, referred to as ``res://``. You " -"can see your project folders in the FileSystem Dock in the lower left corner:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:56 -msgid "Player scene" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:58 -msgid "" -"The first scene we will make defines the ``Player`` object. One of the " -"benefits of creating a separate Player scene is that we can test it " -"separately, even before we've created other parts of the game." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:63 -msgid "Node structure" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:65 -msgid "" -"To begin, click the \"Add/Create a New Node\" button and add an :ref:`Area2D " -"` node to the scene." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:70 -msgid "" -"With ``Area2D`` we can detect objects that overlap or run into the player. " -"Change its name to ``Player`` by clicking on the node's name. This is the " -"scene's root node. We can add additional nodes to the player to add " -"functionality." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:75 -msgid "" -"Before we add any children to the ``Player`` node, we want to make sure we " -"don't accidentally move or resize them by clicking on them. Select the node " -"and click the icon to the right of the lock; its tooltip says \"Makes sure " -"the object's children are not selectable.\"" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:82 -msgid "" -"Save the scene. Click Scene -> Save, or press ``Ctrl+S`` on Windows/Linux or " -"``Command+S`` on Mac." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:84 -msgid "For this project, we will be following the Godot naming conventions." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:86 -msgid "" -"**GDScript**: Classes (nodes) use PascalCase, variables and functions use " -"snake_case, and constants use ALL_CAPS (See :ref:`doc_gdscript_styleguide`)." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:90 -msgid "" -"**C#**: Classes, export variables and methods use PascalCase, private fields " -"use _camelCase, local variables and parameters use camelCase (See :ref:" -"`doc_c_sharp_styleguide`). Be careful to type the method names precisely " -"when connecting signals." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:97 -msgid "Sprite animation" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:99 -msgid "" -"Click on the ``Player`` node and add an :ref:`AnimatedSprite " -"` node as a child. The ``AnimatedSprite`` will handle " -"the appearance and animations for our player. Notice that there is a warning " -"symbol next to the node. An ``AnimatedSprite`` requires a :ref:`SpriteFrames " -"` resource, which is a list of the animations it can " -"display. To create one, find the ``Frames`` property in the Inspector and " -"click \"[empty]\" -> \"New SpriteFrames\". This should automatically open " -"the SpriteFrames panel." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:110 -msgid "" -"On the left is a list of animations. Click the \"default\" one and rename it " -"to \"right\". Then click the \"Add\" button to create a second animation " -"named \"up\". Drag the two images for each animation, named " -"``playerGrey_up[1/2]`` and ``playerGrey_walk[1/2]``, into the \"Animation " -"Frames\" side of the panel:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:117 -msgid "" -"The player images are a bit too large for the game window, so we need to " -"scale them down. Click on the ``AnimatedSprite`` node and set the ``Scale`` " -"property to ``(0.5, 0.5)``. You can find it in the Inspector under the " -"``Node2D`` heading." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:124 -msgid "" -"Finally, add a :ref:`CollisionShape2D ` as a child " -"of ``Player``. This will determine the player's \"hitbox\", or the bounds of " -"its collision area. For this character, a ``CapsuleShape2D`` node gives the " -"best fit, so next to \"Shape\" in the Inspector, click \"[empty]\"\" -> " -"\"New CapsuleShape2D\". Using the two size handles, resize the shape to " -"cover the sprite:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:133 -msgid "When you're finished, your ``Player`` scene should look like this:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:138 -msgid "Moving the player" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:140 -msgid "" -"Now we need to add some functionality that we can't get from a built-in " -"node, so we'll add a script. Click the ``Player`` node and click the \"Add " -"Script\" button:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:146 -msgid "" -"In the script settings window, you can leave the default settings alone. " -"Just click \"Create\":" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:149 -msgid "" -"If you're creating a C# script or other languages, select the language from " -"the `language` drop down menu before hitting create." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:154 -msgid "" -"If this is your first time encountering GDScript, please read :ref:" -"`doc_scripting` before continuing." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:157 -msgid "Start by declaring the member variables this object will need:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:178 -msgid "" -"Using the ``export`` keyword on the first variable ``speed`` allows us to " -"set its value in the Inspector. This can be handy for values that you want " -"to be able to adjust just like a node's built-in properties. Click on the " -"``Player`` node and you'll see the property now appears in the \"Script " -"Variables\" section of the Inspector. Remember, if you change the value " -"here, it will override the value written in the script." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:185 -msgid "" -"If you're using C#, you need to (re)build the project assemblies whenever " -"you want to see new export variables or signals. This build can be manually " -"triggered by clicking the word \"Mono\" at the bottom of the editor window " -"to reveal the Mono Panel, then clicking the \"Build Project\" button." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:193 -msgid "" -"The ``_ready()`` function is called when a node enters the scene tree, which " -"is a good time to find the size of the game window:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:209 -msgid "" -"Now we can use the ``_process()`` function to define what the player will " -"do. ``_process()`` is called every frame, so we'll use it to update elements " -"of our game, which we expect will change often. For the player, we need to " -"do the following:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:214 -msgid "Check for input." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:215 -msgid "Move in the given direction." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:216 -msgid "Play the appropriate animation." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:218 -msgid "" -"First, we need to check for input - is the player pressing a key? For this " -"game, we have 4 direction inputs to check. Input actions are defined in the " -"Project Settings under \"Input Map\". Here, you can define custom events and " -"assign different keys, mouse events, or other inputs to them. For this demo, " -"we will use the default events that are assigned to the arrow keys on the " -"keyboard." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:225 -msgid "" -"You can detect whether a key is pressed using ``Input.is_action_pressed()``, " -"which returns ``true`` if it is pressed or ``false`` if it isn't." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:287 -msgid "" -"We start by setting the ``velocity`` to ``(0, 0)`` - by default the player " -"should not be moving. Then we check each input and add/subtract from the " -"``velocity`` to obtain a total direction. For example, if you hold ``right`` " -"and ``down`` at the same time, the resulting ``velocity`` vector will be " -"``(1, 1)``. In this case, since we're adding a horizontal and a vertical " -"movement, the player would move *faster* than if it just moved horizontally." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:294 -msgid "" -"We can prevent that if we *normalize* the velocity, which means we set its " -"*length* to ``1``, and multiply by the desired speed. This means no more " -"fast diagonal movement." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:298 -msgid "" -"If you've never used vector math before, or need a refresher, you can see an " -"explanation of vector usage in Godot at :ref:`doc_vector_math`. It's good to " -"know but won't be necessary for the rest of this tutorial." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:302 -msgid "" -"We also check whether the player is moving so we can start or stop the " -"AnimatedSprite animation." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:305 -msgid "" -"In GDScript, ``$`` returns the node at the relative path from the current " -"node, or returns ``null`` if the node is not found. Since AnimatedSprite is " -"a child of the current node, we can use ``$AnimatedSprite``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:308 -msgid "" -"``$`` is shorthand for ``get_node()``. So in the code above, ``" -"$AnimatedSprite.play()`` is the same as ``get_node(\"AnimatedSprite\")." -"play()``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:311 -msgid "" -"Now that we have a movement direction, we can update the player's position " -"and use ``clamp()`` to prevent it from leaving the screen by adding the " -"following to the bottom of the ``_process`` function:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:331 -msgid "*Clamping* a value means restricting it to a given range." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:333 -msgid "" -"Click \"Play Scene\" (``F6``) and confirm you can move the player around the " -"screen in all directions. The console output that opens upon playing the " -"scene can be closed by clicking ``Output`` (which should be highlighted in " -"blue) in the lower left of the Bottom Panel." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:338 -msgid "" -"If you get an error in the \"Debugger\" panel that refers to a \"null " -"instance\", this likely means you spelled the node name wrong. Node names " -"are case-sensitive and ``$NodeName`` or ``get_node(\"NodeName\")`` must " -"match the name you see in the scene tree." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:343 -msgid "Choosing animations" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:345 -msgid "" -"Now that the player can move, we need to change which animation the " -"AnimatedSprite is playing based on direction. We have a \"right\" animation, " -"which should be flipped horizontally using the ``flip_h`` property for left " -"movement, and an \"up\" animation, which should be flipped vertically with " -"``flip_v`` for downward movement. Let's place this code at the end of our " -"``_process()`` function:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:379 -msgid "" -"The boolean assignments in the code above are a common shorthand for " -"programmers. Consider this code versus the shortened boolean assignment " -"above:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:398 -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:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:413 -msgid "Preparing for collisions" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:415 -msgid "" -"We want ``Player`` to detect when it's hit by an enemy, but we haven't made " -"any enemies yet! That's OK, because we're going to use Godot's *signal* " -"functionality to make it work." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:419 -msgid "Add the following at the top of the script, after ``extends Area2d``:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:433 -msgid "" -"This defines a custom signal called \"hit\" that we will have our player " -"emit (send out) when it collides with an enemy. We will use ``Area2D`` to " -"detect the collision. Select the ``Player`` node and click the \"Node\" tab " -"next to the Inspector tab to see the list of signals the player can emit:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:440 -msgid "" -"Notice our custom \"hit\" signal is there as well! Since our enemies are " -"going to be ``RigidBody2D`` nodes, we want the ``body_entered( Object " -"body )`` signal; this will be emitted when a body contacts the player. Click " -"\"Connect..\" and then \"Connect\" again on the \"Connecting Signal\" " -"window. We don't need to change any of these settings - Godot will " -"automatically create a function in your player's script. This function will " -"be called whenever the signal is emitted - it *handles* the signal." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:449 -msgid "" -"When connecting a signal, instead of having Godot create a function for you, " -"you can also give the name of an existing function that you want to link the " -"signal to." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:453 -msgid "Add this code to the function:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:472 -msgid "" -"Each time an enemy hits the player, the signal is going to be emitted. We " -"need to disable the player's collision so that we don't trigger the ``hit`` " -"signal more than once." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:476 -msgid "" -"Disabling the area's collision shape can cause an error if it happens in the " -"middle of the engine's collision processing. Using ``set_deferred()`` allows " -"us to have Godot wait to disable the shape until it's safe to do so." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:481 -msgid "" -"The last piece for our player is to add a function we can call to reset the " -"player when starting a new game." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:502 -msgid "Enemy scene" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:504 -msgid "" -"Now it's time to make the enemies our player will have to dodge. Their " -"behavior will not be very complex: mobs will spawn randomly at the edges of " -"the screen and move in a random direction in a straight line, then despawn " -"when they go offscreen." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:509 -msgid "" -"We will build this into a ``Mob`` scene, which we can then *instance* to " -"create any number of independent mobs in the game." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:513 -msgid "Node setup" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:515 -msgid "Click Scene -> New Scene and we'll create the Mob." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:517 -msgid "The Mob scene will use the following nodes:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:519 -msgid ":ref:`RigidBody2D ` (named ``Mob``)" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:521 -msgid ":ref:`AnimatedSprite `" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:522 -msgid ":ref:`CollisionShape2D `" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:523 -msgid "" -":ref:`VisibilityNotifier2D ` (named " -"``Visibility``)" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:525 -msgid "" -"Don't forget to set the children so they can't be selected, like you did " -"with the Player scene." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:528 -msgid "" -"In the :ref:`RigidBody2D ` properties, set ``Gravity " -"Scale`` to ``0``, so the mob will not fall downward. In addition, under the " -"``PhysicsBody2D`` section, click the ``Mask`` property and uncheck the first " -"box. This will ensure the mobs do not collide with each other." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:535 -msgid "" -"Set up the :ref:`AnimatedSprite ` like you did for the " -"player. This time, we have 3 animations: ``fly``, ``swim``, and ``walk``. " -"Set the ``Playing`` property in the Inspector to \"On\" and adjust the " -"\"Speed (FPS)\" setting as shown below. We'll select one of these animations " -"randomly so that the mobs will have some variety." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:542 -msgid "" -"``fly`` should be set to 3 FPS, with ``swim`` and ``walk`` set to 4 FPS." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:544 -msgid "" -"Like the player images, these mob images need to be scaled down. Set the " -"``AnimatedSprite``'s ``Scale`` property to ``(0.75, 0.75)``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:547 -msgid "" -"As in the ``Player`` scene, add a ``CapsuleShape2D`` for the collision. To " -"align the shape with the image, you'll need to set the ``Rotation Degrees`` " -"property to ``90`` under ``Node2D``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:552 -msgid "Enemy script" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:554 -msgid "Add a script to the ``Mob`` and add the following member variables:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:580 -msgid "" -"When we spawn a mob, we'll pick a random value between ``min_speed`` and " -"``max_speed`` for how fast each mob will move (it would be boring if they " -"were all moving at the same speed). We also have an array containing the " -"names of the three animations, which we'll use to select a random one. Make " -"sure you've spelled these the same in the script and in the SpriteFrames " -"resource." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:586 -msgid "" -"Now let's look at the rest of the script. In ``_ready()`` we randomly choose " -"one of the three animation types:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:605 -msgid "" -"You must use ``randomize()`` if you want your sequence of \"random\" numbers " -"to be different every time you run the scene. We're going to use " -"``randomize()`` in our ``Main`` scene, so we won't need it here. ``randi() % " -"n`` is the standard way to get a random integer between ``0`` and ``n-1``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:611 -msgid "" -"The last piece is to make the mobs delete themselves when they leave the " -"screen. Connect the ``screen_exited()`` signal of the ``Visibility`` node " -"and add this code:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:628 -msgid "This completes the `Mob` scene." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:631 -msgid "Main scene" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:633 -msgid "" -"Now it's time to bring it all together. Create a new scene and add a :ref:" -"`Node ` named ``Main``. Click the \"Instance\" button and select " -"your saved ``Player.tscn``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:639 -msgid "See :ref:`doc_instancing` to learn more about instancing." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:641 -msgid "" -"Now, add the following nodes as children of ``Main``, and name them as shown " -"(values are in seconds):" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:644 -msgid "" -":ref:`Timer ` (named ``MobTimer``) - to control how often mobs " -"spawn" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:645 -msgid "" -":ref:`Timer ` (named ``ScoreTimer``) - to increment the score " -"every second" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:646 -msgid "" -":ref:`Timer ` (named ``StartTimer``) - to give a delay before " -"starting" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:647 -msgid "" -":ref:`Position2D ` (named ``StartPosition``) - to indicate " -"the player's start position" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:649 -msgid "" -"Set the ``Wait Time`` property of each of the ``Timer`` nodes as follows:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:652 -msgid "``MobTimer``: ``0.5``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:653 -msgid "``ScoreTimer``: ``1``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:654 -msgid "``StartTimer``: ``2``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:656 -msgid "" -"In addition, set the ``One Shot`` property of ``StartTimer`` to \"On\" and " -"set ``Position`` of the ``StartPosition`` node to ``(240, 450)``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:660 -msgid "Spawning mobs" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:662 -msgid "" -"The Main node will be spawning new mobs, and we want them to appear at a " -"random location on the edge of the screen. Add a :ref:`Path2D " -"` node named ``MobPath`` as a child of ``Main``. When you " -"select ``Path2D``, you will see some new buttons at the top of the editor:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:669 -msgid "" -"Select the middle one (\"Add Point\") and draw the path by clicking to add " -"the points at the corners shown. To have the points snap to the grid, make " -"sure \"Snap to Grid\" is checked. This option can be found under the " -"\"Snapping options\" button to the left of the \"Lock\" button, appearing as " -"a series of three vertical dots." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:677 -msgid "" -"Draw the path in *clockwise* order, or your mobs will spawn pointing " -"*outwards* instead of *inwards*!" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:680 -msgid "" -"After placing point ``4`` in the image, click the \"Close Curve\" button and " -"your curve will be complete." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:683 -msgid "" -"Now that the path is defined, add a :ref:`PathFollow2D ` " -"node as a child of ``MobPath`` and name it ``MobSpawnLocation``. This node " -"will automatically rotate and follow the path as it moves, so we can use it " -"to select a random position and direction along the path." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:689 -msgid "Main script" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:691 -msgid "" -"Add a script to ``Main``. At the top of the script, we use ``export " -"(PackedScene)`` to allow us to choose the Mob scene we want to instance." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:731 -msgid "" -"Drag ``Mob.tscn`` from the \"FileSystem\" panel and drop it in the ``Mob`` " -"property under the Script Variables of the ``Main`` node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:734 -msgid "" -"Next, click on the Player and connect the ``hit`` signal. We want to make a " -"new function named ``game_over``, which will handle what needs to happen " -"when a game ends. Type \"game_over\" in the \"Method In Node\" box at the " -"bottom of the \"Connecting Signal\" window. Add the following code, as well " -"as a ``new_game`` function to set everything up for a new game:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:771 -msgid "" -"Now connect the ``timeout()`` signal of each of the Timer nodes " -"(``StartTimer``, ``ScoreTimer`` ,and ``MobTimer``) to the main script. " -"``StartTimer`` will start the other two timers. ``ScoreTimer`` will " -"increment the score by 1." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:798 -msgid "" -"In ``_on_MobTimer_timeout()``, we will create a mob instance, pick a random " -"starting location along the ``Path2D``, and set the mob in motion. The " -"``PathFollow2D`` node will automatically rotate as it follows the path, so " -"we will use that to select the mob's direction as well as its position." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:804 -msgid "" -"Note that a new instance must be added to the scene using ``add_child()``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:807 -msgid "" -"Now click on ``MobTimer`` in the scene window then head to inspector window, " -"switch to node view then click on ``timeout()`` and connect the signal." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:810 -#: ../../docs/tutorials/3d/fps_tutorial/part_two.rst:1071 -msgid "Add the following code:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:858 -msgid "" -"In functions requiring angles, GDScript uses *radians*, not degrees. If " -"you're more comfortable working with degrees, you'll need to use the " -"``deg2rad()`` and ``rad2deg()`` functions to convert between the two." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:864 -msgid "HUD" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:866 -msgid "" -"The final piece our game needs is a UI: an interface to display things like " -"score, a \"game over\" message, and a restart button. Create a new scene, " -"and add a :ref:`CanvasLayer ` node named ``HUD``. \"HUD\" " -"stands for \"heads-up display\", an informational display that appears as an " -"overlay on top of the game view." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:872 -msgid "" -"The :ref:`CanvasLayer ` node lets us draw our UI elements " -"on a layer above the rest of the game, so that the information it displays " -"isn't covered up by any game elements like the player or mobs." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:876 -msgid "The HUD displays the following information:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:878 -msgid "Score, changed by ``ScoreTimer``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:879 -msgid "A message, such as \"Game Over\" or \"Get Ready!\"" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:880 -msgid "A \"Start\" button to begin the game." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:882 -msgid "" -"The basic node for UI elements is :ref:`Control `. To create " -"our UI, we'll use two types of :ref:`Control ` nodes: :ref:" -"`Label ` and :ref:`Button `." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:886 -msgid "Create the following as children of the ``HUD`` node:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:888 -msgid ":ref:`Label ` named ``ScoreLabel``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:889 -msgid ":ref:`Label ` named ``MessageLabel``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:890 -msgid ":ref:`Button ` named ``StartButton``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:891 -msgid ":ref:`Timer ` named ``MessageTimer``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:893 -msgid "" -"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " -"Inspector. The default font for ``Control`` nodes is small and doesn't scale " -"well. There is a font file included in the game assets called \"Xolonium-" -"Regular.ttf\". To use this font, do the following for each of the three " -"``Control`` nodes:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:899 -msgid "Under \"Custom Fonts\", choose \"New DynamicFont\"" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:903 -msgid "" -"Click on the \"DynamicFont\" you added, and under \"Font/Font Data\", choose " -"\"Load\" and select the \"Xolonium-Regular.ttf\" file. You must also set the " -"font's ``Size``. A setting of ``64`` works well." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:909 -msgid "" -"**Anchors and Margins:** ``Control`` nodes have a position and size, but " -"they also have anchors and margins. Anchors define the origin - the " -"reference point for the edges of the node. Margins update automatically when " -"you move or resize a control node. They represent the distance from the " -"control node's edges to its anchor. See :ref:" -"`doc_design_interfaces_with_the_control_nodes` for more details." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:916 -msgid "" -"Arrange the nodes as shown below. Click the \"Anchor\" button to set a " -"Control node's anchor:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:921 -msgid "" -"You can drag the nodes to place them manually, or for more precise " -"placement, use the following settings:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:925 -msgid "ScoreLabel" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:927 -msgid "*Text* : ``0``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:928 -msgid "*Layout* : \"Top Wide\"" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:929 -#: ../../docs/getting_started/step_by_step/your_first_game.rst:936 -msgid "*Align* : \"Center\"" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:932 -msgid "MessageLabel" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:934 -msgid "*Text* : ``Dodge the Creeps!``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:935 -msgid "*Layout* : \"HCenter Wide\"" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:939 -msgid "StartButton" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:941 -msgid "*Text* : ``Start``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:942 -msgid "*Layout* : \"Center Bottom\"" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:943 -msgid "*Margin* :" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:945 -msgid "Top: ``-200``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:946 -msgid "Bottom: ``-100``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:948 -msgid "Now add this script to ``HUD``:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:967 -msgid "" -"The ``start_game`` signal tells the ``Main`` node that the button has been " -"pressed." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:989 -msgid "" -"This function is called when we want to display a message temporarily, such " -"as \"Get Ready\". On the ``MessageTimer``, set the ``Wait Time`` to ``2`` " -"and set the ``One Shot`` property to \"On\"." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1020 -msgid "" -"This function is called when the player loses. It will show \"Game Over\" " -"for 2 seconds, then return to the title screen and, after a brief pause, " -"show the \"Start\" button." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1024 -msgid "" -"When you need to pause for a brief time, an alternative to using a Timer " -"node is to use the SceneTree's ``create_timer()`` function. This can be very " -"useful to delay, such as in the above code, where we want to wait a little " -"bit of time before showing the \"Start\" button." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1042 -msgid "This function is called by ``Main`` whenever the score changes." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1044 -msgid "" -"Connect the ``timeout()`` signal of ``MessageTimer`` and the ``pressed()`` " -"signal of ``StartButton``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1071 -msgid "Connecting HUD to Main" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1073 -msgid "" -"Now that we're done creating the ``HUD`` scene, save it and go back to " -"``Main``. Instance the ``HUD`` scene in ``Main`` like you did the ``Player`` " -"scene, and place it at the bottom of the tree. The full tree should look " -"like this, so make sure you didn't miss anything:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1080 -msgid "" -"Now we need to connect the ``HUD`` functionality to our ``Main`` script. " -"This requires a few additions to the ``Main`` scene:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1083 -msgid "" -"In the Node tab, connect the HUD's ``start_game`` signal to the " -"``new_game()`` function." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1086 -msgid "" -"In ``new_game()``, update the score display and show the \"Get Ready\" " -"message:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1101 -msgid "In ``game_over()`` we need to call the corresponding ``HUD`` function:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1112 -msgid "" -"Finally, add this to ``_on_ScoreTimer_timeout()`` to keep the display in " -"sync with the changing score:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1124 -msgid "" -"Now you're ready to play! Click the \"Play the Project\" button. You will be " -"asked to select a main scene, so choose ``Main.tscn``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1128 -msgid "Removing old creeps" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1130 -msgid "" -"If you play until \"Game Over\" and then start a new game the creeps from " -"the previous game are still on screen. It would be better if they all " -"disappeared at the start of a new game." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1134 -msgid "" -"We'll use the ``start_game`` signal that's already being emitted by the " -"``HUD`` node to remove the remaining creeps. We can't use the editor to " -"connect the signal to the mobs in the way we need because there are no " -"``Mob`` nodes in the ``Main`` scene tree until we run the game. Instead " -"we'll use code." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1139 -msgid "" -"Start by adding a new function to ``Mob.gd``. ``queue_free()`` will delete " -"the current node at the end of the current frame." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1155 -msgid "" -"Then in ``Main.gd`` add a new line inside the ``_on_MobTimer_timeout()`` " -"function, at the end." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1167 -msgid "" -"This line tells the new Mob node (referenced by the ``mob`` variable) to " -"respond to any ``start_game`` signal emitted by the ``HUD`` node by running " -"its ``_on_start_game()`` function." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1172 -msgid "Finishing up" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1174 -msgid "" -"We have now completed all the functionality for our game. Below are some " -"remaining steps to add a bit more \"juice\" to improve the game experience. " -"Feel free to expand the gameplay with your own ideas." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1179 -#: ../../docs/tutorials/3d/environment_and_post_processing.rst:59 -msgid "Background" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1181 -msgid "" -"The default gray background is not very appealing, so let's change its " -"color. One way to do this is to use a :ref:`ColorRect ` " -"node. Make it the first node under ``Main`` so that it will be drawn behind " -"the other nodes. ``ColorRect`` only has one property: ``Color``. Choose a " -"color you like and drag the size of the ``ColorRect`` so that it covers the " -"screen." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1188 -msgid "" -"You could also add a background image, if you have one, by using a " -"``Sprite`` node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1192 -msgid "Sound effects" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1194 -msgid "" -"Sound and music can be the single most effective way to add appeal to the " -"game experience. In your game assets folder, you have two sound files: " -"\"House In a Forest Loop.ogg\" for background music, and \"gameover.wav\" " -"for when the player loses." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1199 -msgid "" -"Add two :ref:`AudioStreamPlayer ` nodes as children " -"of ``Main``. Name one of them ``Music`` and the other ``DeathSound``. On " -"each one, click on the ``Stream`` property, select \"Load\", and choose the " -"corresponding audio file." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1204 -msgid "" -"To play the music, add ``$Music.play()`` in the ``new_game()`` function and " -"``$Music.stop()`` in the ``game_over()`` function." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1207 -msgid "Finally, add ``$DeathSound.play()`` in the ``game_over()`` function." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1210 -msgid "Keyboard Shortcut" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1212 -msgid "" -"Since the game is played with keyboard controls, it would be convenient if " -"we could also start the game by pressing a key on the keyboard. One way to " -"do this is using the \"Shortcut\" property of the ``Button`` node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 -msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " -"property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " -"InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"*Action* property, type the name ``ui_select``. This is the default input " -"event associated with the spacebar." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1224 -msgid "" -"Now when the start button appears, you can either click it or press the " -"spacebar to start the game." -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1228 -msgid "Project files" -msgstr "" - -#: ../../docs/:1 -msgid "You can find a completed version of this project at these locations:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1231 -msgid "https://github.com/kidscancode/Godot3_dodge/releases" -msgstr "" - -#: ../../docs/getting_started/step_by_step/your_first_game.rst:1232 -msgid "https://github.com/godotengine/godot-demo-projects" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:4 -#: ../../docs/getting_started/editor/command_line_tutorial.rst:130 -msgid "Exporting" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:9 -msgid "" -"Now that you have a working game, you probably want to share your success " -"with others. However, it's not practical to ask your friends to download " -"Godot just so they can open your project. Instead, you can *export* your " -"project, converting it into a \"package\" that can be run by anyone." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:14 -msgid "" -"The way you export your game depends on what platform you are targeting. In " -"this tutorial, you'll learn how to export the \"Dodge the Creeps\" game for " -"a variety of platforms. First, however, we need to make some changes to the " -"way the game works." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:19 -msgid "" -"If you haven't made \"Dodge the Creeps\" yourself yet, please read :ref:" -"`doc_your_first_game` before continuing with this tutorial." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:23 -msgid "Preparing the project" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:25 -msgid "" -"In \"Dodge the Creeps\" we used keyboard controls to move the player's " -"character. This is fine if your game is being played on a PC platform, but " -"on a phone or tablet, you need to support touchscreen input. Because a click " -"event can be treated the same as a touch event, we'll convert the game to a " -"click-and-move input style." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:31 -msgid "" -"By default Godot emulates mouse input from touch input. That means if " -"anything is coded to happen on a mouse event, touch will trigger it as well. " -"If you wish to disable that for whatever reason, or emulate touch from mouse " -"input, you can do that in the \"Project Settings\" under *Input Devices* and " -"*Pointing*" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:38 -msgid "" -"Before we change the input method, in the project settings go to *Display*, " -"then click on *Window*. In the *Stretch* options, set *Mode* to \"2d\" and " -"*Aspect* to \"keep\". This ensures that the game scales consistently on " -"different sized screens." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:44 -msgid "" -"Next, we need to modify the ``Player.gd`` script to change the input method. " -"We'll remove the key inputs and make the player move towards a \"target\" " -"that's set by the touch (or click) event." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:48 -msgid "" -"Here is the full script for the player, with comments noting what we've " -"changed:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:123 -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 -#: ../../docs/development/compiling/compiling_with_mono.rst:158 -msgid "Export templates" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:125 -msgid "" -"In order to export, you need to download the *export templates* from the " -"http://godotengine.org/download. These templates are optimized versions of " -"the engine without the editor pre-compiled for each platform . You can also " -"download them in Godot by clicking on *Editor -> Manage Export Templates*:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:132 -msgid "" -"In the window that appears, you can click \"Download\" to get the template " -"version that matches your version of Godot." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:137 -msgid "" -"If you upgrade Godot, you must download templates that match the new version " -"or your exported projects may not work correctly." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:141 -msgid "Export presets" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:143 -msgid "" -"Next, you can configure the export settings by clicking on *Project -> " -"Export*:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:147 -msgid "" -"Create a new export preset by clicking \"Add...\" and selecting a platform. " -"You can make as many presets as you like with different settings." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:150 -msgid "" -"At the bottom of the window are two buttons. \"Export PCK/ZIP\" only creates " -"a packed version of your project's data. This doesn't include an executable " -"so the project can't be run on its own." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:154 -msgid "" -"The second button, \"Export Project\", creates a complete executable version " -"of your game, such as an `.apk` for Android or an `.exe` for Windows." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:157 -msgid "" -"In the \"Resources\" and \"Features\" tabs, you can customize how the game " -"is exported for each platform. We can leave those settings alone for now." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:161 -msgid "Exporting by platform" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:163 -msgid "" -"In this section, we'll walk through the process for each platform, including " -"any additional software or requirements you'll need." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:167 -msgid "PC (Linux/macOS/Windows)" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:169 -msgid "" -"Exporting PC platforms works the same across the three supported operating " -"systems. Open the export window and click \"Add..\" to create the preset(s) " -"you want to make. Then click \"Export Project\" and choose a name and " -"destination folder. Choose a location *outside* of your project folder." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:174 -msgid "Click \"Save\" and the engine will build the export files." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:176 -msgid "" -"When exporting for macOS, if you export on a macOS computer, you'll end up " -"with a `.dmg` file, while using Linux or Windows produces a `.zip`. In " -"either case, the compressed file contains a macOS `.app` that you can double-" -"click and run." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:181 -msgid "" -"On Windows, if you want your exported executable to have a different icon " -"than the default one, you need to change it manually. See: :ref:" -"`doc_changing_application_icon_for_windows`." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:188 -msgid "" -"Mobile devices come with a wide variety of capabilities. In most cases, " -"Godot's default settings will work, but mobile development is sometimes more " -"art than science, and you may need to do some experimenting and searching " -"for help in order to get everything working." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:194 -msgid "" -"Before you can export your project for Android, you must download the " -"following software:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:197 -msgid "Android SDK: https://developer.android.com/studio/" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:198 -msgid "" -"Java JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:200 -msgid "" -"When you run Android Studio for the first time, click on *Configure -> SDK " -"Manager* and install \"Android SDK Platform Tools\". This installs the `adb` " -"command-line tool that Godot uses to communicate with your device." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:204 -msgid "" -"Next, create a debug keystore by running the following command on your " -"system's command line:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:211 -msgid "" -"Click on *Editor -> Editor Settings* in Godot and select the *Export/" -"Android* section. Here, you need to set the paths to the Android SDK " -"applications on your system and the location of the keystore you just " -"created." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:217 -msgid "" -"Now you're ready to export. Click on *Project -> Export* and add a preset " -"for Android (see above)." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:220 -msgid "" -"Click the \"Export Project\" button and Godot will build an APK you can " -"download on your device. To do this on the command line, use the following:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:227 -msgid "" -"Your device may need to be in *developer mode*. Consult your device's " -"documentation for details." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:230 -msgid "" -"If your system supports it, connecting a compatible Android device will " -"cause a \"One-click Deploy\" button to appear in Godot's playtest button " -"area:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:235 -msgid "" -"Clicking this button builds the APK and copies it onto your device in one " -"step." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:240 -msgid "" -"In order to build your game for iOS, you must have a computer running macOS " -"with Xcode installed." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:243 -msgid "" -"Before exporting, there are some settings that you *must* complete for the " -"project to export successfully. First, the \"App Store Team Id\", which you " -"can find by logging in to your Apple developer account and looking in the " -"\"Membership\" section." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:247 -msgid "You must also provide icons and splash screen images as shown below:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:251 -msgid "Click \"Export Project\" and select a destination folder." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:253 -msgid "" -"Once you have successfully exported the project, you'll find the following " -"folders and files have been created in your selected location:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:258 -msgid "" -"You can now open the project in Xcode and build the project for iOS. Xcode " -"build procedure is beyond the scope of this tutorial. See https://help.apple." -"com/xcode/mac/current/#/devc8c2a6be1 for more information." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:264 -msgid "HTML5 (web)" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:266 -msgid "" -"Click \"Export Project\" on the HTML5 preset. We don't need to change any of " -"the default settings." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:269 -msgid "" -"When the export is complete, you'll have a folder containing the following " -"files:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:274 -msgid "" -"Viewing the `.html` file in your browser lets you play the game. However, " -"you can't open the file directly, it needs to be served by a web server. If " -"you don't have one set up on your computer, you can use Google to find " -"suggestions for your specific OS." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:279 -msgid "" -"Point your browser at the URL where you've placed the html file. You may " -"have to wait a few moments while the game loads before you see the start " -"screen." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:284 -msgid "" -"The console window beneath the game tells you if anything goes wrong. You " -"can disable it by setting \"Export With Debug\" off when you export the " -"project." -msgstr "" - -#: ../../docs/getting_started/step_by_step/exporting.rst:287 -msgid "" -"Browser support for WASM is not very widespread. Firefox and Chrome both " -"support it, but you may still find some things that don't work. Make sure " -"you have updated your browser to the most recent version, and report any " -"bugs you find at the `Godot Github repository `_." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:4 -msgid "Godot’s design philosophy" -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:6 -msgid "Now that you've gotten your hands wet, let's talk about Godot's design." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:8 -msgid "" -"**Every game engine is different and fits different needs.** Not only do " -"they offer a range of features, but the design of each engine is unique. " -"This leads to different workflows and different ways to form your games’ " -"structures. This all stems from their respective design philosophies." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:13 -msgid "" -"This page is here to help you understand how Godot works, starting with some " -"of its core pillars. It is not a list of available features, nor is it an " -"engine comparison. To know if any engine can be a good fit for your project, " -"you need to try it out for yourself and understand its design and " -"limitations." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:19 -msgid "" -"Please watch `Discover Godot 3, the Free game engine `_ if you're looking for an overview of the engine's features." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:23 -msgid "Object-oriented design and composition" -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:25 -msgid "" -"Godot embraces object-oriented design at its core with its flexible scene " -"system and Node hierarchy. It tries to stay away from strict programming " -"patterns to offer an intuitive way to structure your game." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:29 -msgid "" -"For one, Godot lets you **compose or aggregate** scenes. It's like nested " -"prefabs: you can create a BlinkingLight scene and a BrokenLantern scene that " -"uses the BlinkingLight. Then, create a city filled with BrokenLanterns. " -"Change the BlinkingLight's color, save, and all the BrokenLanterns in the " -"city will update instantly." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:36 -msgid "On top of that, you can **inherit** from any scene." -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 " -"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 " -"inherit from and extend those scenes. You may create a Magician that extends " -"your Character. Modify the Character in the editor and the Magician will " -"update as well. It helps you build your projects so that their structure " -"matches the game’s design." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:51 -msgid "" -"Also note that Godot offers many different types of objects called nodes, " -"each with a specific purpose. Nodes are part of a tree and always inherit " -"from their parents up to the Node class. Although the engine does feature " -"components like collision shapes, they’re the exception, not the norm." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:59 -msgid "" -"Sprite is a Node2D, a CanvasItem and a Node. It has all the properties and " -"features of its three parent classes, like transforms or the ability to draw " -"custom shapes and render with a custom shader." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:64 -msgid "All-inclusive package" -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:66 -msgid "" -"Godot tries to provide its own tools to answer most common needs. It has a " -"dedicated scripting workspace, an animation editor, a tilemap editor, a " -"shader editor, a debugger, a profiler, the ability to hot-reload locally and " -"on remote devices, etc." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:73 -msgid "" -"The goal is to offer a full package to create games and a continuous user " -"experience. You can still work with external programs as long as there is an " -"import plugin for it. Or you can create one, like the `Tiled Map Importer " -"`__." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:78 -msgid "" -"That is also partly why Godot offers its own programming languages GDscript " -"and VisualScript, along with C#. They’re designed for the needs of game " -"developers and game designers, and they’re tightly integrated in the engine " -"and the editor." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:83 -msgid "" -"GDscript lets you write simple code using Python-like syntax, yet it detects " -"types and offers a static language's quality of auto-completion. It is also " -"optimized for gameplay code with built-in types like Vectors and Colors." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:87 -msgid "" -"Note that with GDNative, you can write high-performance code using compiled " -"languages like C, C++, Rust, or Python (using the Cython compiler) without " -"recompiling the engine." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:93 -msgid "" -"*VisualScript is a node-based programming language that integrates well in " -"the editor. You can drag and drop nodes or resources into the graph to " -"create new code blocks.*" -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:97 -msgid "" -"Note that the 3D workspace doesn’t feature as many tools as the 2D " -"workspace. You’ll need external programs or add-ons to edit terrains, " -"animate complex characters, and so on. Godot provides a complete API to " -"extend the editor’s functionality using game code. See `The Godot editor is " -"a Godot game`_ below." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:104 -msgid "" -"*A State Machine editor plugin in Godot 2 by kubecz3k. It lets you manage " -"states and transitions visually.*" -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:108 -msgid "Open source" -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:110 -msgid "" -"Godot offers a fully open source codebase under the **MIT license**. This " -"means all the technologies that ship with it have to be Free (as in freedom) " -"as well. For the most part, they’re developed from the ground up by " -"contributors." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:115 -msgid "" -"Anyone can plug in proprietary tools for the needs of their projects — they " -"just won’t ship with the engine. This may include Google AdMob, or FMOD. Any " -"of these can come as third-party plugins instead." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:120 -msgid "" -"On the other hand, an open codebase means you can **learn from and extend " -"the engine** to your heart’s content. You can also debug games easily, as " -"Godot will print errors with a stack trace, even if they come from the " -"engine itself." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:126 -msgid "" -"This **does not affect the work you do with Godot** in any way: there’s no " -"strings attached to the engine or anything you make with it." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:130 -msgid "Community-driven" -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:132 -msgid "" -"**Godot is made by its community, for the community, and for all game " -"creators out there.** It’s the needs of the users and open discussions that " -"drive the core updates. New features from the core developers often focus on " -"what will benefit the most users first." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:137 -msgid "" -"That said, although a handful of core developers work on it full-time, the " -"project has over 600 contributors at the time of writing. Benevolent " -"programmers work on features they may need themselves, so you’ll see " -"improvements in all corners of the engine at the same time in every major " -"release." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:144 -msgid "The Godot editor is a Godot game" -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:146 -msgid "" -"The Godot editor runs on the game engine. It uses the engine’s own UI " -"system, it can hot-reload code and scenes when you test your projects, or " -"run game code in the editor. This means you can **use the same code** and " -"scenes for your games, or **build plugins and extend the editor.**" -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:151 -msgid "" -"This leads to a reliable and flexible UI system, as it powers the editor " -"itself. With the ``tool`` keyword, you can run any game code in the editor." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:156 -msgid "" -"*RPG in a Box is a voxel RPG editor made with Godot 2. It uses Godot’s UI " -"tools for its node-based programming system and for the rest of the " -"interface.*" -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:160 -msgid "" -"Put the ``tool`` keyword at the top of any GDScript file and it will run in " -"the editor. This lets you import and export plugins, create plugins like " -"custom level editors, or create scripts with the same nodes and API you use " -"in your projects." -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:166 -msgid "Separate 2D and 3D engines" -msgstr "" - -#: ../../docs/getting_started/step_by_step/godot_design_philosophy.rst:168 -msgid "" -"Godot offers dedicated 2D and 3D rendering engines. As a result, **the base " -"unit for 2D scenes is pixels.** Even though the engines are separate, you " -"can render 2D in 3D, 3D in 2D, and overlay 2D sprites and interfaces over " -"your 3D world." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:4 -msgid "Design interfaces with the Control nodes" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:6 -msgid "" -"Computer displays, mobile phones, and TV screens 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 a " -"responsive User Interface." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:14 -msgid "Godot's editor is made with the engine's UI framework" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:16 -msgid "This guide will get you started with UI design. You will learn:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:18 -msgid "The five most useful control nodes to build your games' interface" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:19 -msgid "How to work with the anchor of UI elements" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:20 -msgid "" -"How to efficiently place and arrange your user interface using containers" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:22 -msgid "" -"The five most common containers (at a later time, you can learn more about " -"containers in the :ref:`GUI Containers ` documentation " -"page)." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:25 -msgid "" -"To learn how to control the interface and connect it to other scripts, read :" -"ref:`Build your first game UI in Godot `." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:28 -msgid "" -"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, for creating anything " -"from life bars to complex applications. Godot's editor itself is built using " -"Control nodes." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:32 -msgid "" -"Control nodes have unique properties that allow them to work well with one " -"another. Other visual nodes, like Node2D and Sprite don't have these " -"capabilities. So to make your life easier use Control nodes wherever " -"possible when building your UIs." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:36 -msgid "All control nodes share the same main properties:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:38 -msgid "Anchor" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:39 -msgid "Bounding rectangle" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:40 -msgid "Focus and focus neighbor" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:41 -#: ../../docs/tutorials/gui/gui_containers.rst:38 -msgid "Size flags" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:42 -msgid "Margin" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:43 -msgid "The optional UI theme" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:45 -msgid "" -"Once you understand the basics of the Control node, it will take you less " -"time to learn all the nodes that derive from it." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:50 -msgid "The 5 most common UI elements" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:52 -msgid "" -"Godot ships with dozens of Control nodes. A lot of them are here to help you " -"build editor plugins and applications." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:55 -msgid "" -"For most games, you'll only need five types of UI elements, and a few " -"Containers. These five Control nodes are:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:58 -msgid "Label: for displaying text" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:59 -msgid "" -"TextureRect: used mostly for backgrounds, or everything that should be a " -"static image" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:61 -msgid "" -"TextureProgress: for lifebars, loading bars, horizontal, vertical or radial" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:63 -msgid "NinePatchRect: for scalable panels" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:64 -msgid "TextureButton: to create buttons" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:68 -msgid "The 5 most common Control nodes for UI design" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:71 -msgid "TextureRect" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:73 -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 " -"property to change its behavior:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:77 -msgid "" -"``Scale On Expand (compat)`` scales the texture to fit the node's bounding " -"rectangle, only if ``expand`` property is ``true``; otherwise, it behaves " -"like ``Keep`` mode. Default mode for backwards compatibility." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:80 -msgid "``Scale`` scales the texture to fit the node's bounding rectangle." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:81 -msgid "``Tile`` makes the texture repeat, but it won't scale." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:82 -msgid "" -"``Keep`` and ``Keep Centered`` force the texture to remain at its original " -"size, in the top left corner or the center of the frame respectively." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:85 -msgid "" -"``Keep Aspect`` and ``Keep Aspect Centered`` scales the texture but force it " -"to remain its original aspect ratio, in the top left corner or the center of " -"the frame respectively." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:87 -msgid "" -"``Keep Aspect Covered`` works just like ``Keep Aspect Centered`` but the " -"shorter side fits the bounding rectangle and the other one clips to the " -"node's limits." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:90 -msgid "" -"As with Sprite nodes, you can modulate the TextureRect's color. Click the " -"``Modulate`` property and use the color picker." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:95 -msgid "TextureRect modulated with a red color" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:98 -msgid "TextureButton" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:100 -msgid "" -"**TextureButton** is like TextureRect, except it has 5 texture slots: one " -"for each of the button's states. Most of the time, you'll use the Normal, " -"Pressed, and Hover textures. Focused is useful if your interface listens to " -"the keyboard's input. The sixth image slot, the Click Mask, lets you define " -"the clickable area using a 2-bit, pure black and white image." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:107 -msgid "" -"In the Base Button section, you'll find a few checkboxes that change how the " -"button behaves. When ``Toggle Mode`` is on, the button will toggle between " -"active and normal states when you press it. ``Disabled`` makes it disabled " -"by default, in which case it will use the ``Disabled`` texture. " -"TextureButton shares a few properties with the texture frame: it has a " -"``modulate`` property, to change its color, and ``Resize`` and ``Stretch`` " -"modes to change its scale behavior." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:117 -msgid "TextureButton and its 5 texture slots" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:120 -msgid "TextureProgress" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:122 -msgid "" -"**TextureProgress** layers up to 3 sprites to create a progress bar. The " -"Under and Over textures sandwich the Progress one, which displays the bar's " -"value." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:126 -msgid "" -"The ``Mode`` property controls the direction in which the bar grows: " -"horizontally, vertically, or radially. If you set it to radial, the " -"``Initial Angle`` and ``Fill Degrees`` properties let you limit the range of " -"the gauge." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:131 -msgid "" -"To animate the bar, you'll want to look at the Range section. Set the " -"``Min`` and ``Max`` properties to define the range of the gauge. For " -"instance, to represent a character's life, you'll want to set ``Min`` to ``0," -"`` and ``Max`` to the character's maximum life. Change the ``Value`` " -"property to update the bar. If you leave the ``Min`` and ``Max`` values to " -"the default of ``0`` and ``100,`` and set the ``Value`` property to ``40``, " -"40% of the ``Progress`` texture will show up, and 60% of it will stay hidden." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:141 -msgid "TextureProgress bar, two thirds filled" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:146 -msgid "" -"**Label** prints text to the screen. You'll find all its properties in the " -"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." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:155 -msgid "Picture of a Label" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:158 -msgid "NinePatchRect" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:160 -msgid "" -"**NinePatchRect** takes a texture split in 3 rows and 3 columns. The center " -"and the sides tile when you scale the texture, but it never scales the " -"corners. It is useful to build panels, dialog boxes and scalable backgrounds " -"for your UI." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:167 -msgid "NinePatchRect scaled with the min\\_size property" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:170 -msgid "There are two workflows to build responsive UIs" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:172 -msgid "" -"There are two workflows to build scalable and flexible interfaces in Godot:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:174 -msgid "" -"You have many container nodes at your disposal that scale and place UI " -"elements for you. They take control over their children." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:175 -msgid "" -"On the other side, you have the layout menu. It helps you to anchor, place " -"and resize a UI element within its parent." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:177 -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 " -"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, " -"grid, etc." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:179 -msgid "" -"As you create UIs for your games and tools, you'll develop a sense for what " -"fits best in each situation." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:183 -msgid "Place UI elements precisely with anchors" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:185 -msgid "" -"Control nodes have a position and size, but they also have anchors and " -"margins. Anchors define the origin, or the reference point, for the Left, " -"Top, Right and Bottom edges of the node. Change any of the 4 anchors to " -"change the reference point of the margins." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:192 -msgid "The anchor property" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:195 -msgid "How to change the anchor" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:197 -msgid "" -"Like any properties, you can edit the 4 anchor points in the Inspector, but " -"this is not the most convenient way. When you select a control node, the " -"layout menu appears above the viewport, in the toolbar. It gives you a list " -"of icons to set all 4 anchors with a single click, instead of using the " -"inspector's 4 properties. The layout menu will only show up when you select " -"a control node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:206 -msgid "The layout menu in the viewport" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:209 -msgid "Anchors are relative to the parent container" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:211 -msgid "" -"Each anchor is a value between 0 and 1. For the left and top anchors, a " -"value of 0 means that without any margin, the node's edges will align with " -"the left and top edges of its parent. For the right and bottom edges, a " -"value of 1 means they'll align with the parent container's right and bottom " -"edges. On the other hand, margins represent a distance to the anchor " -"position in pixels, while anchors are relative to the parent container's " -"size." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:221 -msgid "" -"Margins are relative to the anchor position, which is relative to the " -"anchors. In practice, you'll often let the container update margins for you" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:226 -msgid "Margins change with the anchor" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:228 -msgid "" -"Margins update automatically when you move or resize a control node. They " -"represent the distance from the control node's edges to its anchor, which is " -"relative to the parent control node or container. That's why your control " -"nodes should always be inside a container, as we'll see in a moment. If " -"there's no parent, the margins will be relative to the node's own bounding " -"Rectangle, set in the Rect section, in the inspector." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:238 -msgid "Margins on a CenterContainer set to the \"Full Rect\" anchor" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:240 -msgid "" -"Try to change the anchors or nest your Control nodes inside Containers: the " -"margins will update. You'll rarely need to edit the margins manually. Always " -"try to find a container to help you first; Godot comes with nodes to solve " -"all the common cases for you. Need to add space between a lifebar and the " -"border of the screen? Use the MarginContainer. Want to build a vertical " -"menu? Use the VBoxContainer. More on these below." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:249 -msgid "Use size tags to change how UI elements fill the available space" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:251 -msgid "" -"Every control node has Size Flags. They tell containers how the UI elements " -"should scale. If you add the \"Fill\" flag to the Horizontal or Vertical " -"property, the node's bounding box will take all the space it can, but it'll " -"respect its siblings and retain its size. If there are 3 TextureRect nodes " -"in an HBoxContainer, with the \"Fill\" flags on both axes, they'll each take " -"up to a third of the available space, but no more. The container will take " -"over the node and resize it automatically." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:261 -msgid "3 UI elements in an HBoxContainer, they align horizontally" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:263 -msgid "" -"The \"Expand\" flag lets the UI element take all the space it can, and push " -"against its siblings. Its bounding rectangle will grow against the edges of " -"its parent, or until it's blocked by another UI node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:269 -msgid "" -"The same example as above, but the center node has the \"Expand\" size flag" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:272 -msgid "" -"You'll need some practice to understand the size tags, as their effect can " -"change quite a bit depending on how you set up your interface." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:276 -msgid "Arrange control nodes automatically with containers" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:278 -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." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:284 -msgid "" -"Containers have a few special properties to control how they arrange UI " -"elements. To change them, navigate down to the Custom Constants section in " -"the Inspector." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:289 -msgid "The 5 most useful containers" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:291 -msgid "" -"If you build tools, you might need all of the containers. But for most " -"games, a handful will be enough:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:294 -msgid "MarginContainer, to add margins around part of the UI" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:295 -msgid "CenterContainer, to center its children in its bounding box" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:296 -msgid "" -"VboxContainer and HboxContainer, to arrange UI elements in rows or columns" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:298 -msgid "GridContainer, to arrange Controls nodes in a grid-like pattern" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:300 -msgid "" -"CenterContainer centers all its children inside of its bounding rectangle. " -"It's one you typically use for title screens, if you want the options to " -"stay in the center of the viewport. As it centers everything, you'll often " -"want a single container nested inside it. If you use textures and buttons " -"instead, they'll stack up." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:308 -msgid "" -"CenterContainer in action. The life bar centers inside its parent container." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:311 -msgid "" -"The MarginContainer adds a margin on any side of the child nodes. Add a " -"MarginContainer that encompasses the entire viewport to add a separation " -"between the edge of the window and the UI. You can set a margin on the top, " -"left, right, or bottom side of the container. No need to tick the checkbox: " -"click the corresponding value box and type any number. It will activate " -"automatically." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:320 -msgid "The MarginContainer adds a 40px margin around the Game User Interface" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:322 -msgid "" -"There are two BoxContainers: VBoxContainer and HBoxContainer. You cannot add " -"the BoxContainer node itself, as it is a helper class, but you can use " -"vertical and horizontal box containers. They arrange nodes either in rows or " -"columns. Use them to line up items in a shop, or to build complex grids with " -"rows and columns of different sizes, as you can nest them to your heart's " -"content." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:331 -msgid "The HBoxContainer horizontally aligns UI elements" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:333 -msgid "" -"VBoxContainer automatically arranges its children into a column. It puts " -"them one after the other. If you use the separation parameter, it will leave " -"a gap between its children. HBoxContainer arranges UI elements in a row. " -"It's similar to the VBoxContainer, with an extra ``add_spacer`` method to " -"add a spacer control node before its first child or after its last child, " -"from a script." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:340 -msgid "" -"The GridContainer lets you arrange UI elements in a grid-like pattern. You " -"can only control the number of columns it has, and it will set the number of " -"rows by itself, based on its children's count. If you have nine children and " -"three columns, you will have 9÷3 = 3 rows. Add three more children and " -"you'll have four rows. In other words, it will create new rows as you add " -"more textures and buttons. Like the box containers, it has two properties to " -"set the vertical and horizontal separation between the rows and columns " -"respectively." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:351 -msgid "A GridContainer with 2 columns. It sizes each column automatically." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_introduction_to_the_ui_system.rst:353 -msgid "" -"Godot's UI system is complex, and has a lot more to offer. To learn how to " -"design more advanced interfaces, head to the :ref:`GUI section ` of the docs." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:4 -msgid "Design a title screen" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:6 -msgid "" -"In the next two tutorials, you will build two responsive UI (user interface) " -"scenes step-by-step using the engine's UI system:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:9 -msgid "A main menu" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:10 -msgid "A game UI with a health bar, energy bar, bomb and money counters" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:12 -msgid "" -"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 "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:20 -msgid "The GUI you're going to create" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:22 -msgid "" -"Download the project files: :download:`ui_main_menu_design.zip ` and extract the archive. Import the ``start/`` " -"project in Godot to follow this tutorial. The ``end/`` folder contains the " -"final result. You'll find all the sprites in the ``start/assets/main_menu`` " -"folder." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:33 -msgid "How to design your game UI" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:35 -msgid "" -"To design a good UI, you want to come up with a rough mockup first: a plain " -"drawing version that focuses on the placement of your UI components, their " -"size, and user interaction. Pen and paper is all you need. You shouldn't use " -"fancy and final graphics at this stage. Then, you only need simple " -"placeholder sprites and you're good to jump into Godot. You want to make " -"sure the players can find their way around the interface using those " -"placeholders." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:45 -msgid "The UI's rough plan or mockup" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:47 -msgid "" -"Placeholder doesn't have to mean ugly, but you should keep the graphics " -"simple and clean. Avoid special effects, animation, and detailed " -"illustration before you have players playtest your UI. Otherwise:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:51 -msgid "" -"The graphics might skew the players' perception of the experience and you'll " -"miss out on valuable feedback" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:53 -msgid "If the User Experience doesn't work, you'll have to redo some sprites" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:57 -msgid "" -"Always try to make the interface work with simple text and boxes first. It's " -"easy to replace the textures later. Professional UX designers often work " -"with plain outlines and boxes in greyscale. When you take colors and fancy " -"visuals away, it's a lot easier to size and place UI elements properly. It " -"helps you refine the design foundation you'll build upon." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:64 -msgid "There are two ways to design your UI in Godot. You can:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:66 -msgid "" -"Build it all in a single scene, and eventually save some branches as " -"reusable scenes" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:68 -msgid "" -"Build template scenes for reusable components and create specific components " -"that inherit from your base scenes" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:71 -msgid "" -"We will use the first approach, because the first version of your UI may not " -"work as well as you’d like. You’re likely to throw parts away and redesign " -"components as you go. When you're sure everything works, it's easy to make " -"some parts reusable, as you'll see below." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:78 -msgid "" -"The files you'll find in Godot. The graphics look cleaner than on the rough " -"design, but they're still placeholders" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:82 -msgid "Design the main menu" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:84 -msgid "" -"Before we jump into the editor, we want to plan how we'll nest containers " -"based on our mockup image." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:88 -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:280 -msgid "Break down the UI mockup" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:90 -msgid "Here are my three rules of thumb to find the right containers:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:92 -msgid "" -"Break down the UI into nested boxes, from the largest that contains " -"everything, to the smallest ones, that encompass one widget, like a bar with " -"its label, a panel or a button" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:95 -msgid "If there's some padding around an area, use a ``MarginContainer``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:96 -msgid "" -"If the elements are arranged in rows or columns, use an ``HBoxContainer`` or " -"``VBoxContainer``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:99 -msgid "" -"These rules are enough to get us started, and work well for simple " -"interfaces." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:102 -msgid "" -"For the main menu, the largest box is the entire game window. There's " -"padding between the edges of the window and the first components: this " -"should be a ``MarginContainer``. Then, the screen is split into two columns, " -"so we'll use an ``HBoxContainer``. In the left column, we'll manage the rows " -"with a ``VBoxContainer``. And in the right column, we'll center the " -"illustration with a ``CenterContainer``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:111 -msgid "Interface building blocks, broken down using the three rules of thumb" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:115 -msgid "" -"Containers adapt to the window's resolution and width-to-height ratio. " -"Although we could place UI elements by hand, containers are faster, more " -"precise, and **responsive**." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:120 -msgid "Prepare the Main Menu scene" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:122 -msgid "" -"Let's create the main menu. We'll build it in a single scene. To create an " -"empty scene, click on the Scene menu -> New Scene." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:125 -msgid "" -"We have to add a root node before we can save the scene. Your UI's root " -"should be the outermost container or element. In this case it's a " -"``MarginContainer``. ``MarginContainer`` is a good starting point for most " -"interfaces, as you often need padding around the UI. Press ``Meta+S`` to " -"save the scene to the disk. Name it *MainMenu*." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:131 -msgid "" -"Select the ``MarginContainer`` again, and head to the inspector to define " -"the margins' size. Scroll down the ``Control`` class, to the ``Custom " -"Constants`` section. Unfold it. Set the margins as such:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:135 -msgid "Margin Right: *120*" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:136 -msgid "Margin Top: *80*" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:137 -msgid "Margin Left: *120*" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:138 -msgid "Margin Bottom: *80*" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:140 -msgid "" -"We want the container to fit the window. In the toolbar above the Viewport, " -"open the ``Layout`` menu and select the last option, ``Full Rect``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:144 -msgid "Add the UI sprites" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:146 -msgid "" -"Select the ``MarginContainer``, and create the UI elements as " -"``TextureRect`` nodes. We need:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:149 -msgid "The title, or logo" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:150 -msgid "The three text options, as individual nodes" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:151 -msgid "The version note" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:152 -msgid "And the main menu’s illustration" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:154 -msgid "" -"Click the ``Add Node`` button or press ``Meta+A`` on your keyboard. Start to " -"type ``TextureRect`` to find the corresponding node and press enter. With " -"the new node selected, press ``Meta+D`` five times to create five extra " -"``TextureRect`` instances." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:159 -msgid "" -"Click each of the nodes to select it. In the inspector, find the ``Texture`` " -"property and click ``[empty]`` -> ``Load``. A file browser opens and lets " -"you pick a sprite to load into the texture slot." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:165 -msgid "The file browser lets you find and load textures" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:167 -msgid "" -"Repeat the operation for all ``TextureRect`` nodes. You should have the " -"logo, the illustration, the three menu options and the version note, each as " -"a separate node. Then, double click on each of the nodes in the Scene tab to " -"rename them. Nothing has been placed in containers yet so this should look " -"messy." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:175 -msgid "The six nodes, with textures loaded" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:179 -msgid "" -"If you want to support localization in your game, use ``Labels`` for menu " -"options instead of ``TextureRect``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:183 -msgid "Add containers to place UI elements automatically" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:185 -msgid "" -"Our main menu has some margin around the edges of the screen. It is split in " -"two parts: on the left, you have the logo and the menu options. On the " -"right, you have the characters. We can use one of two containers to achieve " -"this: ``HSplitContainer`` or ``HBoxContainer``. Split containers split the " -"area into two: a left and a right side or a top and a bottom side. They also " -"allow the user to resize the left and right areas using an interactive bar. " -"On the other hand, ``HBoxContainer`` just splits itself into as many columns " -"as it has children. Although you can deactivate the split container's resize " -"behaviour, I recommend to favour box containers." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:196 -msgid "" -"Select the ``MarginContainer`` and add an ``HBoxContainer``. Then, we need " -"two containers as children of our ``HBoxContainer``: a ``VBoxContainer`` for " -"the menu options on the left, and a ``CenterContainer`` for the illustration " -"on the right." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:203 -msgid "" -"You should have four nested containers, and the TextureRect nodes sitting " -"aside from it" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:206 -msgid "" -"In the node tree, select all the ``TextureRect`` nodes that should go on the " -"left side: the logo, the menu options and the version note. Drag and drop " -"them into the ``VBoxContainer``. The nodes should position automatically." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:212 -msgid "Containers automatically place and resize textures" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:214 -msgid "We're left with two problems to solve:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:216 -msgid "The characters on the right aren't centered" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:217 -msgid "There's no space between the logo and the other UI elements" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:219 -msgid "" -"To center the characters on the right, first select the ``CenterContainer``. " -"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`` " -"in addition to ``Fill``. Do the same for the ``Horizontal`` property. This " -"makes the ``CenterContainer`` expand into all available space while " -"respecting its neighbour ``VBoxContainer``. Finally, drag and drop the " -"Characters node into the ``CenterContainer``. The Characters element will " -"center automatically." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:230 -msgid "" -"The character node centers inside the right half of the screen as soon as " -"you place it inside the CenterContainer" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:233 -msgid "" -"To space out the menu options and the logo on the left, we'll use one final " -"container and its size flags. Select the ``VBoxContainer`` and press ``Meta" -"+A`` to add a new node inside it. Add a second ``VBoxContainer`` and name it " -"\"MenuOptions\". Select all three menu options, ``Continue``, ``NewGame`` " -"and ``Options``, and drag and drop them inside the new ``VBoxContainer``. " -"The UI's layout should barely change, if at all." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:243 -msgid "" -"Place the new container between the other two nodes to retain the UI's layout" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:246 -msgid "" -"Now we grouped the menu options together, we can tell their container to " -"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`` 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:254 -msgid "" -"To center the nodes in the ``VBoxContainer``, scroll to the top of the " -"Inspector and change the ``Alignment`` property to ``Center``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:259 -msgid "The menu options should center vertically in the UI's left column" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:261 -msgid "" -"To wrap things up, let's add some separation between the menu options. " -"Expand the ``Custom Constants`` category below ``Size Flags``, and click the " -"field next to the ``Separation`` parameter. Set it to 30. Once you press " -"enter, the ``Separation`` property becomes active and Godot adds 30 pixels " -"between menu options." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:269 -msgid "The final interface" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:271 -msgid "" -"Without a single line of code, we have a precise and responsive main menu." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:274 -msgid "" -"Congratulations for getting there! You can download the final menu :download:" -"`ui_main_menu_design.zip ` to compare with " -"your own. In the next tutorial, you'll create a Game User Interface with " -"bars and item counters." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:282 -msgid "" -"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 "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:287 -msgid "" -"The order in which you nest matters. To see if your UI adapts nicely to " -"different screen ratios, select the root node, press the Q key to activate " -"the Select Mode, select the container and click and drag on one of the " -"container's corners to resize it. The UI components should flow inside of it." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:293 -msgid "" -"You'll notice that although containers move sprites around, they don't scale " -"them. This is normal. We want the UI system to handle different screen " -"ratios, but we also need the entire game to adapt to different screen " -"resolutions. To do this, Godot scales the entire window up and down." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_main_menu.rst:299 -msgid "" -"You can change the scale mode in the project settings: click the Project " -"menu -> Project Settings. In the window's left column, look for the Display " -"category. Click on the Window sub-category. On the right side of the window, " -"you'll find a Stretch section. The three settings, Mode, Aspect, and Shrink, " -"control the screen size. For more information, see :ref:" -"`doc_multiple_resolutions`." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:4 -msgid "Design the GUI" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:6 -msgid "" -"Now that you've nailed the basics, we're going to see how to build a game " -"Graphical User Interface (GUI) with reusable UI components: a life bar, an " -"energy bar, and bomb and emerald counters. By the end of this tutorial, " -"you'll have a game GUI, ready to control with GDscript or VisualScript:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:13 -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:621 -msgid "The final result" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:15 -msgid "You'll also learn to:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:17 -msgid "Create flexible UI components" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:18 -msgid "Use scene inheritance" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:19 -msgid "Build a complex UI" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:21 -msgid "" -"Download the project files: :download:`ui_gui_design.zip ` and extract the archive. Import the `start/` project in " -"Godot to follow this tutorial. The `end/` folder contains the final result." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:25 -msgid "" -"You can watch this tutorial as a `video on Youtube `_." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:28 -msgid "Breaking down the UI" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:30 -msgid "" -"Let's break down the final UI and plan the containers we'll use. As in the :" -"doc:`ui_main_menu`, it starts with a ``MarginContainer``. Then, we can see " -"up to three columns:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:34 -msgid "The life and energy counters on the left" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:35 -msgid "The life and energy bars" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:36 -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:42 -msgid "The bomb and emerald counters on the right" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:38 -msgid "" -"But the bar's label and the gauge are two parts of the same UI element. If " -"we think of them this way, we're left with two columns:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:41 -msgid "The life and energy bars on the left" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:44 -msgid "" -"This makes it easier to nest containers: we have some margins around the " -"border of the screen using a ``MarginContainer``, followed by an " -"``HBoxContainer`` to manage our two columns. The two bars stack on top of " -"one another inside a ``VBoxContainer``. And we'll need a last " -"``HBoxContainer`` in the right column to place the bomb and emerald counters " -"side-by-side." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:53 -msgid "We get a clean UI layout with only 4 containers" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:55 -msgid "" -"We will need extra containers inside the individual UI components, but this " -"gives us the main GUI scene's structure. With this plan in place, we can " -"jump into Godot and create our GUI." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:60 -msgid "Create the base GUI" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:62 -msgid "" -"There are two possible approaches to the GUI: we can design elements in " -"separate scenes and put them together, or prototype everything in a single " -"scene and break it down later. I recommend working with a single scene as " -"you can play with your UI's placement and proportions faster this way. Once " -"it looks good, you can save entire sections of the node tree as reusable sub-" -"scenes. We'll do that in a moment." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:69 -msgid "For now, let's start with a few containers." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:71 -msgid "" -"Create a new scene and add a ``MarginContainer``. Select the node and name " -"it ``GUI``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:74 -msgid "" -"We want our interface to anchor to the top of the screen. Select the ``GUI`` " -"node and click the Layout button at the top of the viewport. Select the " -"``Top Wide`` option. The ``GUI`` node will anchor to the top edge of its " -"parent, the viewport by default. It will resize automatically on the " -"vertical axis to make space for its child UI components." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:80 -msgid "Save the scene as ``GUI.tscn``. We will put the entire GUI in it." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:82 -msgid "" -"With the ``MarginContainer`` selected, head to the inspector and scroll down " -"to the custom constants section. Unfold it and click the field next to each " -"of the ``Margin`` properties. Set them all to ``20`` pixels. Next, add an " -"``HBoxContainer`` node. This one will contain our two bars on the left and " -"separate them from the two counters on the right." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:88 -msgid "" -"We want to stack the bars vertically inside the ``HBoxContainer``. Add a " -"``VBoxContainer`` as a child of ``HBoxContainer`` and name it ``Bars``. " -"Select the parent ``HBoxContainer`` again and this time, add another " -"``HBoxContainer`` as a child of it. Call it ``Counters``. With these four " -"containers, we have the base for our GUI scene." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:95 -msgid "You should have 4 containers that look like this" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:99 -msgid "" -"We can work this way because we first broke down our UI design and took a " -"few moments to think about the containers we'd use. When you follow a " -"tutorial like this, it may seem weird. But once you're working on real " -"games, you'll see it's an efficient workflow." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:105 -msgid "Create the bars' base" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:107 -msgid "" -"Each bar is split into two sub-elements that align horizontally: the label " -"with the health count on the left, and the gauge on the right. Once again, " -"the ``HBoxContainer`` is the perfect tool for the job. Select the ``Bars`` " -"node and add a new ``HBoxContainer`` inside of it. Name it ``Bar``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:113 -msgid "" -"The label itself requires at least three nodes: a ``NinePatchRect`` for the " -"background, on top of which we'll add a texture on the left, either ``HP`` " -"or ``EP``, and a ``Label`` on the right for the value. We can nest " -"``Control`` nodes however we want. We could use the ``NinePatchRect`` as a " -"parent for the two other elements, as it encompasses them. In general, you " -"want to use containers instead, as their role is to help organize UI " -"components. We'll need a ``MarginContainer`` later anyway to add some space " -"between the life count and the gauge. Select the ``Bar`` and add a " -"``MarginContainer``. Name it ``Count``. Inside of it, add three nodes:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:124 -msgid "A ``NinePatchRect`` named ``Background``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:125 -msgid "A ``TextureRect`` named ``Title``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:126 -msgid "And a ``Label`` named ``Number``" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:128 -msgid "To add the nodes as siblings, always select the ``Count`` node first." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:132 -msgid "" -"Your scene tree should look like this. We're ready to throw in some textures" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:135 -msgid "" -"Our scene is still empty. It's time to throw in some textures. To load the " -"textures, head to the FileSystem dock to the left of the viewport. Browse " -"down to the res://assets/GUI folder." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:141 -msgid "You should see a list of textures that we'll use to skin our interface." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:144 -msgid "" -"Select the ``Background`` in the Scene dock. In the Inspector, you should " -"see a ``Texture`` property. In the FileSystem tab, click and drag " -"``label_HP_bg.png`` onto the ``Texture`` slot. It stays squashed. The parent " -"MarginContainer will force its size down to 0 until we force elements inside " -"the container to have a minimum size. Select the ``Background`` node. In the " -"Inspector, scroll down to the Rect section. Set ``Min Size`` to (100, 40). " -"You should see the ``Background`` resize along with its parent containers." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:153 -msgid "" -"Next, select the ``Title`` and drag and drop ``label_HP.png`` into its " -"``Texture`` slot. Select the ``Number`` node, click the field next to the " -"``Text`` property and type ``10``. This way, we can see both nodes in the " -"viewport. They should stack up in the top-left corner of their parent " -"``MarginContainer``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:161 -msgid "If you select both nodes, you should see something like this" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:163 -msgid "" -"As they have a container as their direct parent, we cannot move them freely: " -"the ``Count`` node will always reset their anchors, their size and position. " -"Try to move and resize the nodes in the viewport. Then, select any of the " -"three textures and press Ctrl Up or Ctrl Down to reorder them in the Scene " -"dock. They'll snap back to their previous size and position." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:170 -msgid "" -"Parent containers control the size, the scale, the margins, and the anchors " -"of their direct children. To modify the nodes, you must nest them inside a " -"regular Control or another UI element. We'll use the ``Background`` as a " -"parent for the ``Title`` and ``Number``. Select both the ``Title`` and " -"``Number``, and drag and drop them onto ``Background``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:179 -msgid "" -"By using the Background node as the two textures' parent, we take control " -"away from the Count MarginContainer" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:182 -msgid "" -"Select the ``Title`` and in the Inspector, change its ``Stretch Mode`` " -"property to ``Keep Centered``. Next find the ``Rect`` category in the " -"Inspector and change the ``Size`` property to (50, 40) so it only takes the " -"left half of the background. Next, select the ``Number`` node. In the " -"viewport, click the ``Layout`` menu and click ``Full Rect``. The node will " -"resize to fit the ``Background``. Head to the Inspector and change its " -"``Align`` property to ``Right``, and the ``VAlign`` property to ``Center``. " -"The text should snap to the center of the ``Background``'s right edge. " -"Resize the node horizontally, so it takes the right half of the " -"``Background`` and there's a bit of padding with the right edge." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:195 -msgid "" -"Here's how the nodes' bounding boxes should look in the viewport. Keep it " -"rough, you don't need to place them too precisely for now." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:199 -msgid "Replace the Label's font" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:201 -msgid "" -"The label's font is too small. We need to replace it. Select the ``Number`` " -"node and in the Inspector, scroll down to the ``Control`` class, and find " -"the ``Custom Font`` category. Click the field next to the ``Font`` property " -"and click on ``New Dynamic Font``. Click on the field again and select Edit." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:207 -msgid "" -"You will enter the ``Dynamic Font`` resource. Unfold the ``Font`` category " -"and click the field next to ``Font Data``. Click the ``Load`` button. In the " -"file browser, navigate down to the assets/font folder and double click " -"``Comfortaa-Bold.ttf`` to open it. You should see the font update in the " -"viewport. Unfold the settings category to change the font size. Set the " -"``Size`` property to a higher value, like ``24`` or ``28``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:215 -msgid "" -"We now need the text's baseline, the number's lower edge, to align with the " -"HP texture on the left. To do so, still in the ``DynamicFont`` resource, you " -"can tweak the ``Bottom`` property under the ``Extra Spacing`` category. It " -"adds some bottom padding to the text. Click the ``Number`` node in the Scene " -"tab to go back to the node's properties and change the ``VAlign`` to " -"``Bottom``. To adjust the text's baseline, click on the font field under the " -"``Custom Font`` category again and tweak the ``Bottom`` property until the " -"text aligns with the ``Title`` node. I used a value of ``2`` pixels." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:227 -msgid "With a Bottom value of 2 pixels, the Number aligns with the Title" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:229 -msgid "" -"With this, we finished the hardest part of the GUI. Congratulations! Let's " -"move on to the simpler nodes." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:233 -msgid "Add the progress bar" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:235 -msgid "" -"We need one last element to complete our life bar: the gauge itself. Godot " -"ships with a ``TextureProgress`` node that has everything we need." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:238 -msgid "" -"Select the Bar node and add a ``TextureProgress`` inside of it. Name it " -"``Gauge``. In the inspector unfold the ``Textures`` section. Head to the " -"FileSystem dock and drag and drop the ``lifebar_bg.png`` texture onto the " -"``Under`` slot. Do the same with the ``lifebar_fill.png`` image and drop it " -"onto the ``Progress`` slot. Under the ``Range`` class in the inspector, " -"change the ``Value`` property to ``50`` to see the gauge fill up." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:246 -msgid "With only five ``Control`` nodes, our first bar is ready to use." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:250 -msgid "" -"That's it, our life bar is ready. This last part was quick, wasn't it? " -"That's thanks to our robust container setup." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:254 -msgid "Design the bomb and emerald counters" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:256 -msgid "" -"The bomb and emerald counters are like the bar's ``Count`` node. So we'll " -"duplicate it and use it as a template." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:259 -msgid "" -"Under the ``Bar`` node, select ``Count`` and press Ctrl D to duplicate it. " -"Drag and drop the new node under the ``Counters`` ``HBoxContainer`` at the " -"bottom of the scene tree. You should see it resize automatically. Don't " -"worry about this for now, we'll fix the size soon." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:264 -msgid "" -"Rename the ``Count2`` node to ``Counter``. Unlike the bars, we want the " -"number to be on the left, and an icon to sit on the right. The setup is the " -"same: we need a background (a ``NinePatchRect``), the title, and the number " -"nodes. The ``Title`` node is a ``TextureRect``, so it's what we need to " -"display the icon. In the scene tree, select the ``Title`` node, and rename " -"it to ``Icon``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:273 -msgid "Here's how your node tree should look so far" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:275 -msgid "" -"With the ``Icon`` node selected, in the inspector, scroll to the top to see " -"the ``Texture`` slot. Head to the FileSystem dock on the left and select the " -"``bombs_icon.png``. Drag and drop it onto the ``Texture`` slot. In the Scene " -"Tab select both the ``Icon`` and the ``Number`` nodes. Click the Layout menu " -"in the toolbar at the top of the viewport and select ``Full Rect``. Both " -"nodes will update to fit the size of the ``Background``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:285 -msgid "The nodes anchor to the entire Background, but their position is off" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:287 -msgid "" -"Let's change the ``Number``'s align properties to move it to the left and " -"center of the ``Background``. Select the ``Number`` node, change its " -"``Align`` property to left and the ``VAlign`` property to centre. Then " -"resize its left edge a little bit to add some padding between the left edge " -"of the ``Background`` and the text." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:295 -msgid "The Number node aligned to the left and centre" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:297 -msgid "" -"To overlap the Icon and the background, we need a few tweaks. First, our " -"background is a bit too tall. It's because it's inside a margin container " -"that is controlled by the top-most GUI node. Select the GUI node at the top " -"of the scene tree and downsize it vertically so that it's as thin as " -"possible. You'll see the gauge prevents you from making it too small. A " -"container cannot be smaller than the minimal size of its children. The " -"container's margins also weigh in." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:305 -msgid "" -"Select the Icon, click the Layout menu, and select ``Full Rect`` to re-" -"center it. We need it to anchor to the ``Background``'s right edge. Open the " -"Layout menu again and select ``Center Right``. Move the icon up so it is " -"centered vertically with the ``Background``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:313 -msgid "" -"The bomb icon anchors to the Background's right edge. Resize the Counter " -"container to see the Icon node stick to its right side" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:316 -msgid "" -"Because we duplicated the ``Counter`` from the bar's ``Count``, the " -"``Number`` node's font is off. Select the ``Number`` node again, head to the " -"``Font`` property, and click it to access the ``DynamicFont`` resource. In " -"the ``Extra Spacing`` section, change the ``Bottom`` value to ``0`` to reset " -"the font's baseline. Our counter now works as expected." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:323 -msgid "" -"Let's make the ``Counters`` anchor to the right edge of the viewport. To do " -"so, we need to set the ``Bars`` container take all the available horizontal " -"space it can. Select the ``Bars`` node and scroll down to the ``Size Flags`` " -"category. In the ``Horizontal`` category, check the ``Expand`` value. The " -"``Bars`` node should resize and push the counter to the right side of the " -"screen." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:331 -msgid "" -"An expanding container eats all the space it can from its parent, pushing " -"everything else along the way" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:335 -msgid "Turn the bar and counter into reusable UI components" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:337 -msgid "" -"We have one bar and one counter widget. But we need two of each. We may need " -"to change the bars' design or their functionality later on. It'd be great if " -"we could have a single scene to store a UI element's template, and child " -"scenes to work on variations. Godot lets us do this with Inherited Scenes." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:343 -msgid "" -"Let's save both the ``Counter`` and the ``Bar`` branches as separate scenes " -"that we'll reduce to create the ``LifeBar``, the ``EnergyBar``, the " -"``BombCounter``, and the ``EmeraldCounter``. Select the ``Bar`` " -"HBoxContainer. Right click on it and click on ``Save Branch as Scene``. Save " -"the scene as ``Bar.tscn``. You should see the node branch turn it to a " -"single ``Bar`` node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:352 -msgid "" -"A scene is a tree of nodes. The topmost node is the tree's **root**, and the " -"children at the bottom of the hierarchy are **leaves**. Any node other than " -"the root along with one or more children is a **branch**. We can encapsulate " -"node branches into separate scenes, or load and merge them from other scenes " -"into the active one. Right click on any node in the Scene dock and select " -"``Save Branch as Scene`` or ``Merge from Scene``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:360 -msgid "" -"Then, select the ``Counter`` node and do the same. Right click, ``Save " -"Branch as Scene``, and save it as ``Counter.tscn``. A new edit scene icon " -"appears to the right of the nodes in the scene tree. Click on the one next " -"to ``Bar`` to open the corresponding scene. Resize the ``Bar`` node so that " -"its bounding box fits its content. The way we named and placed the Control " -"nodes, we're ready to inherit this template and create the life bar. It's " -"the same for the ``Counter``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:370 -msgid "With no extra changes, our Bar is ready to use" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:373 -msgid "Use scene inheritance to create the remaining elements" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:375 -msgid "" -"We need two bars that work the same way: they should feature a label on the " -"left, with some value, and a horizontal gauge on the right. The only " -"difference is that one has the HP label and is green, while the other is " -"called EP and is yellow. Godot gives us a powerful tool to create a common " -"base to reuse for all bars in the game: **inherited scenes**." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:383 -msgid "" -"Inherited scenes help us keep the GUI scene clean. In the end, we will only " -"have containers and one node for each UI component." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:386 -msgid "" -"On an inherited scene, you can change any property of every node in the " -"inspector, aside from its name. If you modify and save the parent scene, all " -"the inherited scenes update to reflect the changes. If you change a value in " -"the inherited scene, it will always override the parent's property. It's " -"useful for UIs, as they often require variations of the same elements. In " -"general, in UI design, buttons, panels etc. share a common base style and " -"interactions. We don't want to copy it over to all variations manually." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:395 -msgid "" -"A reload icon will appear next to the properties you override. Click it to " -"reset the value to the parent scene's default." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:400 -msgid "" -"Think of scene inheritance like the node tree, or the ``extends`` keyword in " -"GDScript. An inherited scene does everything like its parent, but you can " -"override properties, resources and add extra nodes and scripts to extend its " -"functionality." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:406 -msgid "Inherit the Bar Scene to build the LifeBar" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:408 -msgid "" -"Go to ``Scene -> New Inherited Scene`` to create a new type of ``Bar``. " -"Select the Bar scene and open it. You should see a new [unsaved] tab, that's " -"like your ``Bar``, but with all nodes except the root in grey. Press ``Meta" -"+S`` to save the new inherited scene and name it ``LifeBar``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:416 -msgid "You can't rename grey nodes. This tells you they have a parent scene" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:418 -msgid "" -"First, rename the root or top level node to ``LifeBar``. We always want the " -"root to describe exactly what this UI component is. The name differentiates " -"this bar from the ``EnergyBar`` we'll create next. The other nodes inside " -"the scene should describe the component's structure with broad terms, so it " -"works with all inherited scenes. Like our ``TextureProgress`` and ``Number`` " -"nodes." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:427 -msgid "" -"If you've ever done web design, it's the same spirit as working with CSS: " -"you create a base class, and add variations with modifier classes. From a " -"base button class, you'll have button-green and button-red variations for " -"the user to accept and refuse prompts. The new class contains the name of " -"the parent element and an extra keyword to explain how it modifies it. When " -"we create an inherited scene and change the name of the top level node, " -"we're doing the same thing." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:436 -msgid "Design the EnergyBar" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:438 -msgid "" -"We already setup the ``LifeBar``'s design with the main ``Bar`` scene. Now " -"we need the ``EnergyBar``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:441 -msgid "" -"Let's create a new inherited scene, and once again select the ``Bar.tscn`` " -"scene and open it. Double-click on the ``Bar`` root node and rename it to " -"``EnergyBar``. Save the new scene as ``EnergyBar.tscn``. We need to replace " -"the HP texture with EP one, and to change the textures on the gauge." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:447 -msgid "" -"Head to the FileSystem dock on the left, select the ``Title`` node in the " -"Scene tree and drag and drop the ``label_EP.png`` file onto the texture " -"slot. Select the ``Number`` node and change the ``Text`` property to a " -"different value like ``14``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:452 -msgid "" -"You'll notice the EP texture is smaller than the HP one. We should update " -"the ``Number``'s font size to better fit it. A font is a resource. All the " -"nodes in the entire project that use this resource will be affected by any " -"property we change. You can try to change the size to a huge value like " -"``40`` and switch back to the ``LifeBar`` or the ``Bar`` scenes. You will " -"see the text increased in size." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:461 -msgid "If we change the font resource, all the nodes that use it are affected" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:464 -msgid "" -"To change the font size on this node only, we must create a copy of the font " -"resource. Select the ``Number`` node again and click on the wrench and " -"screwdriver icon on the top right of the inspector. In the drop-down menu, " -"select the ``Make Sub-Resources Unique`` option. Godot will find all the " -"resources this node uses and create unique copies for us." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:472 -msgid "Use this option to create unique copies of the resources for one node" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:476 -msgid "" -"When you duplicate a node from the Scene tree, with ``Meta+D``, it shares " -"its resources with the original node. You need to use ``Make Sub-Resources " -"Unique`` before you can tweak the resources without affecting the source " -"node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:481 -msgid "" -"Scroll down to the ``Custom Font`` section and open ``Font``. Lower the " -"``Size`` to a smaller value like ``20`` or ``22``. You may also need to " -"adjust the ``Bottom`` spacing value to align the text's baseline with the EP " -"label on the left." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:488 -msgid "The EP Count widget, with a smaller font than its HP counterpart" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:490 -msgid "" -"Now, select the ``TextureProgress`` node. Drag the ``energy_bar_bg.png`` " -"file onto the ``Under`` slot and do the same for ``energy_bar_fill.png`` and " -"drop it onto the ``Progress`` texture slot." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:494 -msgid "" -"You can resize the node vertically so that its bounding rectangle fits the " -"gauge. Do the same with the ``Count`` node until its size aligns with that " -"of the bar. Because the minimal size of ``TextureProgress`` is set based on " -"its textures, you won't be able to downsize the ``Count`` node below that. " -"That is also the size the ``Bar`` container will have. You may downscale " -"this one as well." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:501 -msgid "" -"Last but not least, the ``Background`` container has a minimum size that " -"makes it a bit large. Select it and in the ``Rect`` section, change the " -"``Min Size`` property down to ``80`` pixels. It should resize automatically " -"and the ``Title`` and ``Number`` nodes should reposition as well." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:509 -msgid "The Count looks better now it's a bit smaller" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:513 -msgid "" -"The Count node's size affects the position of the TextureProgress. As we'll " -"align our bars vertically in a moment, we're better off using the Counter's " -"left margin to resize our EP label. This way both the EnergyBar's Count and " -"the LifeBar's Count nodes are one hundred pixels wide, so both gauges will " -"align perfectly." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:520 -msgid "Prepare the bomb and emerald counters" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:522 -msgid "" -"Let us now take care of the counters. Go to ``Scene -> New Inherited Scene`` " -"and select the ``Counter.tscn`` as a base. Rename the root node as " -"``BombCounter`` too. Save the new scene as ``BombCounter.tscn``. That's all " -"for this scene." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:529 -msgid "The bomb counter is the same as the original Counter scene" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:531 -msgid "" -"Go to ``Scene -> New Inherited Scene`` again and select ``Counter.tscn`` " -"once more. Rename the root node ``EmeraldCounter`` and save the scene as " -"``EmeraldCounter.tscn``. For this one, we mainly need to replace the bomb " -"icon with the emerald icon. In the FileSystem tab, drag the ``emeralds_icon." -"png`` onto the ``Icon`` node's ``Texture`` slot. ``Icon`` already anchors to " -"the right edge of the ``Background`` node so we can change its position and " -"it will scale and reposition with the ``EmeraldCounter`` container. Shift " -"the emerald icon a little bit to the right and down. Use the Arrow Keys on " -"the keyboard to nudge its position. Save, and we're done with all the UI " -"elements." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:544 -msgid "The emerald counter should look something like this" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:547 -msgid "Add the UI components to the final GUI" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:549 -msgid "" -"Time to add all the UI elements to the main GUI scene. Open the ``GUI.tscn`` " -"scene again, and delete the ``Bar`` and ``Counter`` nodes. In the FileSystem " -"dock, find the ``LifeBar.tscn`` and drag and drop it onto the ``Bars`` " -"container in the scene tree. Do the same for the ``EnergyBar``. You should " -"see them align vertically." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:557 -msgid "The LifeBar and the EnergyBar align automatically" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:559 -msgid "" -"Now, drag and drop the ``BombCounter.tscn`` and ``EmeraldCounter.tscn`` " -"scenes onto the ``Counters`` node. They'll resize automatically." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:564 -msgid "The nodes resize to take all the available vertical space" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:566 -msgid "" -"To let the ``EmeraldCounter`` and ``BombCounter`` use the size we defined in " -"``Counter.tscn``, we need to change the ``Size Flags`` on the ``Counters`` " -"container. Select the ``Counters`` node and unfold the ``Size Flags`` " -"section in the Inspector. Uncheck the ``Fill`` tag for the ``Vertical`` " -"property, and check ``Shrink Center`` so the container centers inside the " -"``HBoxContainer``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:575 -msgid "Now both counters have a decent size" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:579 -msgid "" -"Change the ``Min Size`` property of the ``Counters`` container to control " -"the height of the counters' background." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:582 -msgid "" -"We have one small issue left with the EP label on the EnergyBar: the 2 bars " -"should align vertically. Click the icon next to the ``EnergyBar`` node to " -"open its scene. Select the ``Count`` node and scroll down to the ``Custom " -"Constants`` section. Add a ``Margin Left`` of ``20``. In the ``Rect`` " -"section set the node's ``Min Size`` back to 100, the same value as on the " -"LifeBar. The ``Count`` should now have some margin on the left. If you save " -"and go back to the GUI scene, it will be aligned vertically with the " -"``LifeBar``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:593 -msgid "The 2 bars align perfectly" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:597 -msgid "" -"We could have set up the ``EnergyBar`` this way a few moments ago. But this " -"shows you that you can go back to any scene anytime, tweak it, and see the " -"changes propagate through the project!" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:602 -msgid "Place the GUI onto the game's mockup" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:604 -msgid "" -"To wrap up the tutorial we're going to insert the GUI onto the game's mockup " -"scene." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:607 -msgid "Head to the FileSystem dock and open ``LevelMockup.tscn``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:609 -msgid "" -"Drag-and-drop the ``GUI.tscn`` scene right below the ``bg`` node and above " -"the ``Characters``. The GUI will scale to fit the entire viewport. Head to " -"the Layout menu and select the ``Center Top`` option so it anchors to the " -"top edge of the game window. Then resize the GUI to make it as small as " -"possible vertically. Now you can see how the interface looks in the context " -"of the game." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:616 -msgid "" -"Congratulations for getting to the end of this long tutorial. You can find " -"the final project here: :download:`ui_gui_design.zip `." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_game_user_interface.rst:625 -msgid "" -"**A final note about Responsive Design**. If you resize the GUI, you'll see " -"the nodes move, but the textures and text won't scale. The GUI also has a " -"minimum size, based on the textures inside of it. In games, we don’t need " -"the interface to be as flexible as that of a website. You almost never want " -"to support both landscape and portrait screen orientations. It’s one or the " -"other. In landscape orientation, the most common ratios range from 4:3 to " -"16:9. They are close to one another. That's why it’s enough for the GUI " -"elements to only move horizontally when we change the window size." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:4 -msgid "Control the game's UI with code" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:7 -#: ../../docs/tutorials/2d/particle_systems_2d.rst:7 -msgid "Intro" -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 " -"health loss." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:14 -msgid "" -"Here's what you'll create: the bar and the counter animate when the " -"character takes a hit. They fade when it dies." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:18 -msgid "You will learn:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:20 -msgid "How to **connect** a character to a GUI with signals" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:21 -msgid "How to **control** a GUI with GDscript" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:22 -msgid "How to **animate** a life bar with the :ref:`Tween ` node" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:25 -msgid "" -"If you want to learn how to set up the interface instead, check out the step-" -"by-step UI tutorials:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:28 -msgid "Create a main menu screen" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:29 -msgid "Create a game user interface" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:32 -msgid "" -"When you code a game, you want to build the core gameplay first: the main " -"mechanics, player input, win and loss conditions. The UI comes a bit later. " -"You want to keep all the elements that make up your project separate if " -"possible. Each character should be in its own scene, with its own scripts, " -"and so should the UI elements. This prevents bugs, keeps your project " -"manageable, and allows different team members to work on different parts of " -"the game." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:40 -msgid "" -"Once the core gameplay and the UI are ready, you'll need to connect them " -"somehow. In our example, we have the Enemy who attacks the Player at " -"constant time intervals. We want the life bar to update when the Player " -"takes damage." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:45 -msgid "To do this, we will use **signals**." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:49 -msgid "" -"Signals are Godot's version of the Observer pattern. They allow us to send " -"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. " -"When there's a lot of connections, they become hard to manage. For more " -"information, check out the `signals video tutorial `_ on GDquest." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:53 -msgid "Download and explore the start project" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:55 -msgid "" -"Download the Godot project: :download:`ui_code_life_bar.zip `. It contains all the assets and scripts you need to " -"get started. Extract the .zip archive to get two folders: `start` and `end`." -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." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:68 -msgid "" -"This is typical of how you'd code a game: you implement the core gameplay " -"first, handle the player's death, and only then you'll add the interface. " -"That's because the UI listens to what's happening in the game. So it can't " -"work if other systems aren't in place yet. If you design the UI before you " -"prototype and test the gameplay, chances are it won't work well and you'll " -"have to re-create it from scratch." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:71 -msgid "The scene contains a background sprite, a GUI, and two characters." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:75 -msgid "The scene tree, with the GUI scene set to display its children" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:77 -msgid "" -"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 -msgid "" -"``number_label`` displays a life count as a number. It's a ``Label`` node" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:107 -msgid "``bar`` is the life bar itself. It's a ``TextureProgress`` node" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:108 -msgid "" -"``tween`` is a component-style node that can animate and control any value " -"or method from any other node" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:113 -msgid "" -"The project uses a simple organisation that works for game jams and tiny " -"games." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:115 -msgid "" -"At the root of the project, in the `res://` folder, you will find the " -"`LevelMockup`. That's the main game scene and the one we will work with. All " -"the components that make up the game are in the `scenes/` folder. The " -"`assets/` folder contains the game sprites and the font for the HP counter. " -"In the `scripts/` folder you will find the enemy, the player, and the GUI " -"controller scripts." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:117 -msgid "" -"Click the edit scene icon to the right of the node in the scene tree to open " -"the scene in the editor. You'll see the LifeBar and EnergyBar are sub-scenes " -"themselves." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:121 -msgid "The scene tree, with the Player scene set to display its children" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:124 -msgid "Set up the Lifebar with the Player's max\\_health" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:126 -msgid "" -"We have to tell the GUI somehow what the player's current health is, to " -"update the lifebar's texture, and to display the remaining health in the HP " -"counter in the top left corner of the screen. To do this we send the " -"player's health to the GUI every time they take damage. The GUI will then " -"update the ``Lifebar`` and ``Number`` nodes with this value." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:132 -msgid "" -"We could stop here to display the number, but we need to initialize the " -"bar's ``max_value`` for it to update in the right proportions. The first " -"step is thus to tell the ``GUI`` what the green character's ``max_health`` " -"is." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:139 -msgid "" -"The bar, a `TextureProgress`, has a `max_value` of `100` by default. If you " -"don't need to display the character's health with a number, you don't need " -"to change its `max_value` property. You send a percentage from the `Player` " -"to the `GUI` instead: `health / max_health * 100`." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:143 -msgid "" -"Click the script icon to the right of the ``GUI`` in the Scene dock to open " -"its script. In the ``_ready`` function, we're going to store the " -"``Player``'s ``max_health`` in a new variable and use it to set the " -"``bar``'s ``max_value``:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:164 -msgid "" -"Let's break it down. ``$\"../Characters/Player\"`` is a shorthand that goes " -"one node up in the scene tree, and retrieves the ``Characters/Player`` node " -"from there. It gives us access to the node. The second part of the " -"statement, ``.max_health``, accesses the ``max_health`` on the Player node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:170 -msgid "" -"The second line assigns this value to ``bar.max_value``. You could combine " -"the two lines into one, but we'll need to use ``player_max_health`` again " -"later in the tutorial." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:174 -msgid "" -"``Player.gd`` sets the ``health`` to ``max_health`` at the start of the " -"game, so we could work with this. Why do we still use ``max_health``? There " -"are two reasons:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:178 -msgid "" -"We don't have the guarantee that ``health`` will always equal " -"``max_health``: a future version of the game may load a level where the " -"player already lost some health." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:184 -msgid "" -"When you open a scene in the game, Godot creates nodes one by one, following " -"the order in your Scene dock, from top to bottom. `GUI` and `Player` are not " -"part of the same node branch. To make sure they both exist when we access " -"each other, we have to use the `_ready` function. Godot calls `_ready` right " -"after it loaded all nodes, before the game starts. It's the perfect function " -"to set everything up and prepare the game session. Learn more about _ready: :" -"doc:`scripting_continued`" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:188 -msgid "Update health with a signal when the player takes a hit" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:190 -msgid "" -"Our GUI is ready to receive the ``health`` value updates from the " -"``Player``. To achieve this we're going to use **signals**." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:195 -msgid "" -"There are many useful built-in signals like `enter_tree` and `exit_tree`, " -"that all nodes emit when they are respectively created and destroyed. You " -"can also create your own using the `signal` keyword. On the `Player` node, " -"you'll find two signals we created for you: `died` and `health_changed`." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:197 -msgid "" -"Why don't we directly get the ``Player`` node in the ``_process`` function " -"and look at the health value? Accessing nodes this way creates tight " -"coupling between them. If you did it sparingly it may work. As your game " -"grows bigger, you may have many more connections. If you get nodes this way " -"it gets complex quickly. Not only that: you need to listen to the state " -"change constantly in the ``_process`` function. This check happens 60 times " -"a second and you'll likely break the game because of the order in which the " -"code runs." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:206 -msgid "" -"On a given frame you may look at another node's property *before* it was " -"updated: you get a value from the last frame. This leads to obscure bugs " -"that are hard to fix. On the other hand, a signal is emitted right after a " -"change happened. It **guarantees** you're getting a fresh piece of " -"information. And you will update the state of your connected node *right " -"after* the change happened." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:215 -msgid "" -"The Observer pattern, that signals derive from, still adds a bit of coupling " -"between node branches. But it's generally lighter and more secure than " -"accessing nodes directly to communicate between two separate classes. It can " -"be okay for a parent node to get values from its children. But you'll want " -"to favor signals if you're working with two separate branches. Read Game " -"Programming Patterns for more information on the `Observer pattern `_. The `full book `_ is available online for free." -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 " -"``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 to " -"the one you selected." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:224 -msgid "The first section lists custom signals defined in ``Player.gd``:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:226 -msgid "" -"``died`` is emitted when the character died. We will use it in a moment to " -"hide the UI." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:228 -msgid "``health_changed`` is emitted when the character got hit." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:232 -msgid "We're connecting to the health\\_changed signal" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:234 -msgid "" -"Select ``health_changed`` and click on the Connect button in the bottom " -"right corner to open the Connect Signal window. On the left side you can " -"pick the node that will listen to this signal. Select the ``GUI`` node. The " -"right side of the screen lets you pack optional values with the signal. We " -"already took care of it in ``Player.gd``. In general I recommend not to add " -"too many arguments using this window as they're less convenient than doing " -"it from the code." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:244 -msgid "The Connect Signal window with the GUI node selected" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:248 -msgid "" -"You can optionally connect nodes from the code. However doing it from the " -"editor has two advantages:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:250 -msgid "Godot can write new callback functions for you in the connected script" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:251 -msgid "" -"An emitter icon appears next to the node that emits the signal in the Scene " -"dock" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:253 -msgid "" -"At the bottom of the window you will find the path to the node you selected. " -"We're interested in the second row called \"Method in Node\". This is the " -"method on the ``GUI`` node that gets called when the signal is emitted. This " -"method receives the values sent with the signal and lets you process them. " -"If you look to the right, there is a \"Make Function\" radio button that is " -"on by default. Click the connect button at the bottom of the window. Godot " -"creates the method inside the ``GUI`` node. The script editor opens with the " -"cursor inside a new ``_on_Player_health_changed`` function." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:265 -msgid "" -"When you connect nodes from the editor, Godot generates a method name with " -"the following pattern: ``_on_EmitterName_signal_name``. If you wrote the " -"method already, the \"Make Function\" option will keep it. You may replace " -"the name with anything you'd like." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:272 -msgid "Godot writes the callback method for you and takes you to it" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:274 -msgid "" -"Inside the parentheses 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:" -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. `_" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:299 -msgid "" -"In Player.gd, when the Player emits the health\\_changed signal, it also " -"sends its health value" -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 " -"``update_health`` and pass it the ``player_health`` variable." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:307 -msgid "" -"We could directly update the health value on `LifeBar` and `Number`. There " -"are two reasons to use this method instead:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:309 -msgid "" -"The name makes it clear for our future selves and teammates that when the " -"player took damage, we update the health count on the GUI" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:310 -msgid "We will reuse this method a bit later" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:312 -msgid "" -"Create a new ``update_health`` method below ``_on_Player_health_changed``. " -"It takes a new\\_value as its only argument:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:327 -msgid "This method needs to:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:329 -msgid "" -"set the ``Number`` node's ``text`` to ``new_value`` converted to a string" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:331 -msgid "set the ``TextureProgress``'s ``value`` to ``new_value``" -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 " -"``new_value`` directly" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:354 -msgid "" -"Also call ``update_health`` at the end of the ``_ready`` function to " -"initialize the ``Number`` node's ``text`` with the right value at the start " -"of the game. Press F5 to test the game: the life bar updates with every " -"attack!" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:361 -msgid "" -"Both the Number node and the TextureProgress update when the Player takes a " -"hit" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:365 -msgid "Animate the loss of life with the Tween node" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:367 -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 " -"``TextureProgress`` from its current level to the ``Player``'s new " -"``health`` when the character takes damage." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:374 -msgid "" -"The ``GUI`` scene already contains a ``Tween`` child node stored in the " -"``tween`` variable. Let's now use it. We have to make some changes to " -"``update_health``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:378 -msgid "" -"We will use the ``Tween`` node's ``interpolate_property`` method. It takes " -"seven arguments:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:381 -msgid "A reference to the node who owns the property to animate" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:382 -msgid "The property's identifier as a string" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:383 -msgid "The starting value" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:384 -msgid "The end value" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:385 -msgid "The animation's duration in seconds" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:386 -msgid "The type of the transition" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:387 -msgid "The easing to use in combination with the equation." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:389 -msgid "" -"The last two arguments combined correspond to an easing equation. This " -"controls how the value evolves from the start to the end point." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:393 -msgid "" -"Click the script icon next to the ``GUI`` node to open it again. The " -"``Number`` node needs text to update itself, and the ``Bar`` needs a float " -"or an integer. We can use ``interpolate_property`` to animate a number, but " -"not to animate text directly. We're going to use it to animate a new ``GUI`` " -"variable named ``animated_health``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:399 -msgid "" -"At the top of the script, define a new variable, name it " -"``animated_health``, and set its value to 0. Navigate back to the " -"``update_health`` method and clear its content. Let's animate the " -"``animated_health`` value. Call the ``Tween`` node's " -"``interpolate_property`` method:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:421 -msgid "Let's break down the call:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:427 -msgid "" -"We target ``animated_health`` on ``self``, that is to say the ``GUI`` node. " -"``Tween``'s interpolate\\_property takes the property's name as a string. " -"That's why we write it as ``\"animated_health\"``." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:435 -msgid "" -"The starting point is the current value the bar's at. We still have to code " -"this part, but it's going to be ``animated_health``. The end point of the " -"animation is the ``Player``'s ``health`` after the ``health_changed``: " -"that's ``new_value``. And ``0.6`` is the animation's duration in seconds." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:445 -msgid "" -"The last two arguments are constants from the ``Tween`` class. " -"``TRANS_LINEAR`` means the animation should be linear. ``EASE_IN`` doesn't " -"do anything with a linear transition, but we must provide this last argument " -"or we'll get an error." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:450 -msgid "" -"The animation will not play until we activated the ``Tween`` node with " -"``tween.start()``. We only have to do this once if the node is not active. " -"Add this code after the last line:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:469 -msgid "" -"Although we could animate the `health` property on the `Player`, we " -"shouldn't. Characters should lose life instantly when they get hit. It makes " -"it a lot easier to manage their state, like to know when one died. You " -"always want to store animations in a separate data container or node. The " -"`tween` node is perfect for code-controlled animations. For hand-made " -"animations, check out `AnimationPlayer`." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:472 -msgid "Assign the animated\\_health to the LifeBar" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:474 -msgid "" -"Now the ``animated_health`` variable animates but we don't update the actual " -"``Bar`` and ``Number`` nodes anymore. Let's fix this." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:477 -msgid "So far, the update\\_health method looks like this:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:501 -msgid "" -"In this specific case, because ``number_label`` takes text, we need to use " -"the ``_process`` method to animate it. Let's now update the ``Number`` and " -"``TextureProgress`` nodes like before, inside of ``_process``:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:523 -msgid "" -"`number_label` and `bar` are variables that store references to the `Number` " -"and `TextureProgress` nodes." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:525 -msgid "" -"Play the game to see the bar animate smoothly. But the text displays decimal " -"number and looks like a mess. And considering the style of the game, it'd be " -"nice for the life bar to animate in a choppier fashion." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:531 -msgid "The animation is smooth, but the number is broken" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:533 -msgid "" -"We can fix both problems by rounding out ``animated_health``. Use a local " -"variable named ``round_value`` to store the rounded ``animated_health``. " -"Then assign it to ``number_label.text`` and ``bar.value``:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:555 -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 kill two birds with one stone" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:563 -msgid "" -"Every time the player takes a hit, the ``GUI`` calls " -"``_on_Player_health_changed``, which in turn calls ``update_health``. This " -"updates the animation and the ``number_label`` and ``bar`` follow in " -"``_process``. The animated life bar that shows the health going down " -"gradually is a trick. It makes the GUI feel alive. If the ``Player`` takes 3 " -"damage, it happens in an instant." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:571 -msgid "Fade the bar when the Player dies" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:573 -msgid "" -"When the green character dies, it plays a death animation and fades out. At " -"this point, we shouldn't show the interface anymore. Let's fade the bar as " -"well when the character died. We will reuse the same ``Tween`` node as it " -"manages multiple animations in parallel for us." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:578 -msgid "" -"First, the ``GUI`` needs to connect to the ``Player``'s ``died`` signal to " -"know when it died. Press :kbd:`F1` to jump back to the 2D Workspace. Select " -"the ``Player`` node in the Scene dock and click on the Node tab next to the " -"Inspector." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:583 -msgid "Find the ``died`` signal, select it, and click the Connect button." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:587 -msgid "The signal should already have the Enemy connected to it" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:589 -msgid "" -"In the Connecting Signal window, connect to the ``GUI`` node again. The Path " -"to Node should be ``../../GUI`` and the Method in Node should show " -"``_on_Player_died``. Leave the Make Function option on and click Connect at " -"the bottom of the window. This will take you to the ``GUI.gd`` file in the " -"Script Workspace." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:597 -msgid "You should get these values in the Connecting Signal window" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:601 -msgid "" -"You should see a pattern by now: every time the GUI needs a new piece of " -"information, we emit a new signal. Use them wisely: the more connections you " -"add, the harder they are to track." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:603 -msgid "" -"To animate a fade on a UI element, we have to use its ``modulate`` property. " -"``modulate`` is a ``Color`` that multiplies the colors of our textures." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:609 -msgid "" -"`modulate` comes from the `CanvasItem` class, All 2D and UI nodes inherit " -"from it. It lets you toggle the visibility of the node, assign a shader to " -"it, and modify it using a color with `modulate`." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:611 -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." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:615 -msgid "" -"We're going to tween between two color values: from a white with an alpha of " -"``1``, that is to say at full opacity, to a pure white with an alpha value " -"of ``0``, completely transparent. Let's add two variables at the top of the " -"``_on_Player_died`` method and name them ``start_color`` and ``end_color``. " -"Use the ``Color()`` constructor to build two ``Color`` values." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:637 -msgid "" -"``Color(1.0, 1.0, 1.0)`` corresponds to white. The fourth argument, " -"respectively ``1.0`` and ``0.0`` in ``start_color`` and ``end_color``, is " -"the alpha channel." -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:641 -msgid "" -"We then have to call the ``interpolate_property`` method of the ``Tween`` " -"node again:" -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 " -"``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:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:679 -msgid "And that is it. You may now play the game to see the final result!" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:683 -msgid "The final result. Congratulations for getting there!" -msgstr "" - -#: ../../docs/getting_started/step_by_step/ui_code_a_life_bar.rst:687 -msgid "" -"Using the exact same techniques, you can change the color of the bar when " -"the Player gets poisoned, turn the bar red when its health drops low, shake " -"the UI when they take a critical hit... the principle is the same: emit a " -"signal to forward the information from the `Player` to the `GUI` and let the " -"`GUI` process it." -msgstr "" - -#: ../../docs/getting_started/step_by_step/splash_screen.rst:4 -msgid "Splash screen" -msgstr "" - -#: ../../docs/getting_started/step_by_step/splash_screen.rst:7 -msgid "Tutorial" -msgstr "" - -#: ../../docs/getting_started/step_by_step/splash_screen.rst:9 -msgid "" -"This is a simple tutorial to establish the basic idea of how the GUI " -"subsystem works. The goal is to create a simple, static splash screen." -msgstr "" - -#: ../../docs/getting_started/step_by_step/splash_screen.rst:15 -msgid "" -"Following is a file with the assets that will be used. The extracted files " -"can be placed directly in your project folder and Godot will import them " -"automatically." -msgstr "" - -#: ../../docs/getting_started/step_by_step/splash_screen.rst:18 -msgid ":download:`robisplash_assets.zip `." -msgstr "" - -#: ../../docs/getting_started/step_by_step/splash_screen.rst:21 -#: ../../docs/tutorials/3d/reflection_probes.rst:21 -#: ../../docs/tutorials/3d/gi_probes.rst:36 -#: ../../docs/tutorials/3d/baked_lightmaps.rst:40 -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:16 -#: ../../docs/tutorials/shading/your_first_shader/your_first_spatial_shader.rst:53 -msgid "Setting up" -msgstr "" - -#: ../../docs/getting_started/step_by_step/splash_screen.rst:23 -msgid "" -"Set the display resolution to 800x450 in Project Settings, and set up a new " -"scene like this:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/splash_screen.rst:27 -msgid "" -"The nodes \"background\" and \"logo\" are of :ref:`TextureRect " -"` type. To display an image, drag the corresponding asset " -"to the texture property." -msgstr "" - -#: ../../docs/getting_started/step_by_step/splash_screen.rst:32 -msgid "" -"The node \"start\" is a :ref:`TextureButton `. It takes " -"several images for different states, but only the normal and pressed will be " -"supplied in this example:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/splash_screen.rst:38 -msgid "Finally, the node \"copyright\" is a :ref:`Label `." -msgstr "" - -#: ../../docs/getting_started/step_by_step/splash_screen.rst:40 -msgid "Your final scene should look something like this." -msgstr "" - -#: ../../docs/getting_started/step_by_step/splash_screen.rst:44 -msgid "" -"Go ahead and run the project. If you're satisfied with the results, " -"continue to the next tutorial." -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:4 -msgid "Animations" -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:9 -msgid "Godot's animation system is extremely powerful and flexible." -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:11 -msgid "" -"To begin, let's use the scene from the previous tutorial (:ref:" -"`doc_splash_screen`). The goal is to add a \"fade-in\" animation to the " -"splash image. Here's a copy just in case: :download:`robisplash.zip `." -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:16 -msgid "Add an animation player" -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:18 -msgid "" -"First of all, add an :ref:`AnimationPlayer ` node to " -"the scene as a child of \"background\" (the root node):" -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:23 -msgid "" -"When a node of this type is selected, the animation editor panel will appear:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:28 -msgid "The animation editor panel stays visible until manually hidden." -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:31 -msgid "Creating the animation" -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:33 -msgid "" -"It's time to create a new animation! Press the Animation button then select " -"new from the menu. Name the animation \"intro\" when the dialog appears." -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:40 -msgid "" -"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:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:48 -msgid "Editing the animation" -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:50 -msgid "The logo will appear from the top of the screen." -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:52 -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 to add a keyframe:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:58 -msgid "When the dialog appears, confirm that you are creating a new track." -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:60 -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 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 with different values, the animation happens." -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:73 -msgid "" -"Pressing \"Play selected animation from start. (Shift-D)\" on the animation " -"panel will make the logo descend." -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:78 -msgid "" -"Click the \"Autoplay on Load\" button to set the animation to start " -"automatically when the scene starts." -msgstr "" - -#: ../../docs/getting_started/step_by_step/animations.rst:83 -msgid "" -"And finally, when running the scene, the animation should look like this:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:4 -#: ../../docs/tutorials/threads/thread_safe_apis.rst:58 -#: ../../docs/development/file_formats/tscn.rst:257 -#: ../../docs/community/tutorials.rst:50 -msgid "Resources" -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:7 -msgid "Nodes and resources" -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:9 -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 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 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 -msgid "" -"Anything Godot saves or loads from disk is a resource. Be it a scene (a ." -"tscn or an .scn file), an image, a script... Here are some ``Resource`` " -"examples: :ref:`Texture `, :ref:`Script `, :ref:" -"`Mesh `, :ref:`Animation `, :ref:`AudioStream " -"`, :ref:`Font `, :ref:`Translation " -"`." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:26 -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, " -"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 " -"these types can become a resource. This means that both nodes and resources " -"can contain resources as properties:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:39 -msgid "External vs built-in" -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:41 -msgid "There are two ways to save resources. They can be:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:43 -msgid "**External** to a scene, saved on the disk as individual files." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:44 -msgid "" -"**Built-in**, saved inside the \\*.tscn or the \\*.scn file they're attached " -"to." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:46 -msgid "" -"To be more specific, here's a :ref:`Texture ` in a :ref:" -"`Sprite ` node:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:51 -msgid "" -"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 " -"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 a built-in resource." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:60 -msgid "" -"The switch between built-in and external resources happens when you save the " -"scene. In the example above, if you erase the path \\`\"res://robi.png\"\\` " -"and save, Godot will save the image inside the .tscn scene file." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:66 -msgid "" -"Even if you save a built-in resource, when you instance a scene multiple " -"times, the engine will only load one copy of it." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:70 -msgid "Loading resources from code" -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:72 -msgid "" -"There are two ways to load resources from code. First, you can use the " -"``load()`` function anytime:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:90 -msgid "" -"You can also ``preload`` resources. Unlike ``load``, this function will read " -"the file from disk and load it at compile-time. As a result, you cannot call " -"preload with a variable path: you need to use a constant string." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:106 -msgid "Loading scenes" -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:108 -msgid "" -"Scenes are also resources, but there is a catch. Scenes saved to disk are " -"resources of type :ref:`PackedScene `. The scene is " -"packed inside a resource." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:112 -msgid "" -"To get an instance of the scene, you have to use the :ref:`PackedScene." -"instance() ` method." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:133 -msgid "" -"This method creates the nodes in the scene's hierarchy, configures them, and " -"returns the root node of the scene. You can then add it as a child of any " -"other node." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:137 -msgid "" -"The approach has several advantages. As the :ref:`PackedScene.instance() " -"` 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 -msgid "Freeing resources" -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:146 -msgid "" -"When a ``Resource`` is no longer in use, it will automatically free itself. " -"Since, in most cases, Resources are contained in Nodes, when you free a " -"node, the engine frees all the resources it owns as well if no other node " -"uses them." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:151 -msgid "Creating your own resources" -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:153 -msgid "" -"Like any Object in Godot, users can also script Resources. Resource scripts " -"inherit the ability to freely translate between object properties and " -"serialized text or binary data (/*.tres, /*.res). They also inherit the " -"reference-counting memory management from the Reference type." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:158 -msgid "" -"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 :" -"ref:`Object `, :ref:`Reference `, and :ref:" -"`Resource ` features:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:165 -msgid "" -"They can define constants, so constants from other data fields or objects " -"are not needed." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:167 -msgid "" -"They can define methods, including setter/getter methods for properties. " -"This allows for abstraction and encapsulation of the underlying data. If the " -"Resource script's structure needs to change, the game using the Resource " -"need not also change." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:169 -msgid "" -"They can define signals, so Resources can trigger responses to changes in " -"the data they manage." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:171 -msgid "" -"They have defined properties, so users know 100% that their data will exist." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:173 -msgid "" -"Resource auto-serialization and deserialization is a built-in Godot Engine " -"feature. Users do not need to implement custom logic to import/export a " -"resource file's data." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:175 -msgid "" -"Resources can even serialize sub-Resources recursively, meaning users can " -"design even more sophisticated data structures." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:177 -msgid "" -"Users can save Resources as version-control-friendly text files (\\*.tres). " -"Upon exporting a game, Godot serializes resource files as binary files (\\*." -"res) for increased speed and compression." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:179 -msgid "" -"Godot Engine's Inspector renders and edits Resource files out-of-the-box. As " -"such, users often do not need to implement custom logic to visualize or edit " -"their data. To do so, double-click the resource file in the FileSystem dock " -"or click the folder icon in the Inspector and open the file in the dialog." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:181 -msgid "" -"They can extend **other** resource types besides just the base Resource." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:185 -msgid "" -"Resources and Dictionaries are both passed by reference, but only Resources " -"are reference-counted. This means that if a Dictionary is passed between " -"objects and the first object is deleted, all other objects' references to " -"the Dictionary will be invalidated. Conversely, Resources will not be freed " -"from memory until *all* the objects are deleted." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:215 -msgid "Godot makes it easy to create custom Resources in the Inspector." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:217 -msgid "" -"Create a plain Resource object in the Inspector. This can even be a type " -"that derives Resource, so long as your script is extending that type." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:218 -msgid "Set the ``script`` property in the Inspector to be your script." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:220 -msgid "" -"The Inspector will now display your Resource script's custom properties. If " -"one edits those values and saves the resource, the Inspector serializes the " -"custom properties too! To save a resource from the Inspector, click the " -"Inspector's tools menu (top right), and select \"Save\" or \"Save As...\"." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:225 -msgid "" -"If the script's language supports :ref:`script classes " -"`, then it streamlines the process. " -"Defining a name for your script alone will add it to the Inspector's " -"creation dialog. This will auto-add your script to the Resource object you " -"create." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:230 -msgid "Let's see some examples." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:303 -msgid "" -"Resource scripts are similar to Unity's ScriptableObjects. The Inspector " -"provides built-in support for custom resources. If desired though, users can " -"even design their own Control-based tool scripts and combine them with an :" -"ref:`EditorPlugin ` to create custom visualizations and " -"editors for their data." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:309 -msgid "" -"Unreal Engine 4's DataTables and CurveTables are also easy to recreate with " -"Resource scripts. DataTables are a String mapped to a custom struct, similar " -"to a Dictionary mapping a String to a secondary custom Resource script." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:345 -msgid "" -"Instead of just inlining the Dictionary values, one could also, " -"alternatively..." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:347 -msgid "" -"Import a table of values from a spreadsheet and generate these key-value " -"pairs, or..." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:349 -msgid "" -"Design a visualization within the editor and create a simple plugin that " -"adds it to the Inspector when you open these types of Resources." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:352 -msgid "" -"CurveTables are the same thing, except mapped to an Array of float values or " -"a :ref:`Curve `/:ref:`Curve2D ` resource object." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:357 -msgid "" -"Beware that resource files (\\*.tres/\\*.res) will store the path of the " -"script they use in the file. When loaded, they will fetch and load this " -"script as an extension of their type. This means that trying to assign a " -"subclass, i.e. an inner class of a script (such as using the ``class`` " -"keyword in GDScript) won't work. Godot will not serialize the custom " -"properties on the script subclass properly." -msgstr "" - -#: ../../docs/getting_started/step_by_step/resources.rst:363 -msgid "" -"In the example below, Godot would load the ``Node`` script, see that it " -"doesn't extend ``Resource``, and then determine that the script failed to " -"load for the Resource object since the types are incompatible." -msgstr "" - -#: ../../docs/getting_started/step_by_step/filesystem.rst:4 -msgid "File system" -msgstr "" - -#: ../../docs/getting_started/step_by_step/filesystem.rst:9 -msgid "" -"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:15 -msgid "Implementation" -msgstr "" - -#: ../../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 " -"properties that reference other resources on disk, the paths to those " -"resources are also included. If a resource has sub-resources that are built-" -"in, the resource is saved in a single file together with all the bundled sub-" -"resources. For example, a font resource is often bundled together with the " -"font textures." -msgstr "" - -#: ../../docs/getting_started/step_by_step/filesystem.rst:24 -msgid "" -"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:28 -msgid "Example of file system contents:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/filesystem.rst:39 -msgid "project.godot" -msgstr "" - -#: ../../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: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:50 -msgid "Path delimiter" -msgstr "" - -#: ../../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 " -"``c:\\project\\project.godot`` needs to be typed as ``c:/project/project." -"godot``." -msgstr "" - -#: ../../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: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:64 -msgid "" -"The path ``res://`` will always point at the project root (where project." -"godot is located, so ``res://project.godot`` is always valid)." -msgstr "" - -#: ../../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 " -"phones or consoles, or running from DVD), the file system will become read-" -"only and writing will no longer be permitted." -msgstr "" - -#: ../../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 "" -"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." -msgstr "" - -#: ../../docs/getting_started/step_by_step/filesystem.rst:89 -msgid "Drawbacks" -msgstr "" - -#: ../../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 " -"another inside the project) will break existing references to these assets. " -"These references will have to be re-defined to point at the new asset " -"location." -msgstr "" - -#: ../../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 " -"dependencies will have to be fixed manually (Godot detects this and helps " -"you fix them anyway, but why go the hard route?)." -msgstr "" - -#: ../../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 " -"saves an asset as \"myfile.PNG\", but then references it as \"myfile.png\", " -"it will work fine on their platform, but not on other platforms, such as " -"Linux, Android, etc. This may also apply to exported binaries, which use a " -"compressed package to store all files." -msgstr "" - -#: ../../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 " -"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: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 "" -"In previous tutorials, everything revolved around the concept of nodes. " -"Scenes are collections of nodes. They become active once they enter the " -"*scene tree*." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scene_tree.rst:14 -msgid "MainLoop" -msgstr "" - -#: ../../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. " -"Afterwards, all drivers, servers, scripting languages, scene system, etc are " -"loaded." -msgstr "" - -#: ../../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 " -"internals working (you can check main/main.cpp file in the source code if " -"you are ever interested to see how this works internally)." -msgstr "" - -#: ../../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 " -"(physics-synchronized callback), and input. Again, this is low level and " -"when making games in Godot, writing your own MainLoop seldom makes sense." -msgstr "" - -#: ../../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: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:41 -msgid "" -"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: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: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: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: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:57 -msgid "" -"When a node is part of the Scene Tree, the :ref:`SceneTree " -"` singleton can be obtained by calling :ref:`Node." -"get_tree() `." -msgstr "" - -#: ../../docs/getting_started/step_by_step/scene_tree.rst:63 -msgid "Root viewport" -msgstr "" - -#: ../../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:80 -msgid "" -"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." -msgstr "" - -#: ../../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:90 -#: ../../docs/tutorials/threads/thread_safe_apis.rst:22 -msgid "Scene tree" -msgstr "" - -#: ../../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: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: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 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:106 -msgid "Tree order" -msgstr "" - -#: ../../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 lower rank in the tree order will get notified before the current " -"node." -msgstr "" - -#: ../../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:118 -msgid "A scene is loaded from disk or created by scripting." -msgstr "" - -#: ../../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: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: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: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:133 -msgid "Changing current scene" -msgstr "" - -#: ../../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: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: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 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 -msgid "Singletons (AutoLoad)" -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:9 -msgid "" -"Godot's scene system, while powerful and flexible, has a drawback: there is " -"no method for storing information (e.g. a player's score or inventory) that " -"is needed by more than one scene." -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:13 -msgid "" -"It's possible to address this with some workarounds, but they come with " -"their own limitations:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:16 -msgid "" -"You can use a \"master\" scene that loads and unloads other scenes as its " -"children. However, this means you can no longer run those scenes " -"individually and expect them to work correctly." -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:19 -msgid "" -"Information can be stored to disk in ``user://`` and then loaded by scenes " -"that require it, but frequently saving and loading data is cumbersome and " -"may be slow." -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:23 -msgid "" -"The `Singleton Pattern `_ " -"is a useful tool for solving the common use case where you need to store " -"persistent information between scenes. In our case it is possible re-use the " -"same scene or class for multiple singletons, so long as they have different " -"names." -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:29 -msgid "Using this concept, you can create objects that:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:31 -msgid "Are always loaded, no matter which scene is currently running" -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:32 -msgid "Can store global variables, such as player information" -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:33 -msgid "Can handle switching scenes and between-scene transitions" -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:34 -msgid "" -"Act like a singleton, since GDScript does not support global variables by " -"design" -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:36 -msgid "Autoloading nodes and scripts can give us these characteristics." -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:39 -msgid "AutoLoad" -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:41 -msgid "" -"You can use AutoLoad to load a scene or a script that inherits from :ref:" -"`Node `. Note: when autoloading a script, a Node will be created " -"and the script will be attached to it. This node will be added to the root " -"viewport before any other scenes are loaded." -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:48 -msgid "" -"To autoload a scene or script, select ``Project -> Project Settings`` from " -"the menu and switch to the \"AutoLoad\" tab." -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 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 -msgid "" -"This means that any node can access a singleton named \"PlayerVariables\" " -"with:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:73 -msgid "" -"If the \"Enable\" column is checked (default true) then the singleton can " -"simply be accessed directly:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:86 -msgid "" -"Note that autoload objects (scripts and/or scenes) are accessed just like " -"any other node in the scene tree. In fact, if you look at the running scene " -"tree, you'll see the autoloaded nodes appear:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:93 -msgid "Custom scene switcher" -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:95 -msgid "" -"This tutorial will demonstrate building a scene switcher using autoload. For " -"basic scene switching, you can use the :ref:`SceneTree.change_scene() " -"` method (see :ref:`doc_scene_tree` for " -"details). However, if you need more complex behavior when changing scenes, " -"this method provides more functionality." -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:101 -msgid "" -"To begin, download the template from here: :download:`autoload.zip ` and open it in Godot." -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:104 -msgid "" -"The project contains two scenes: ``Scene1.tscn`` and ``Scene2.tscn``. Each " -"scene contains a label displaying the scene name and a button with its " -"``pressed()`` signal connected. When you run the project, it starts in " -"``Scene1.tscn``. However, pressing the button does nothing." -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:110 -msgid "Global.gd" -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:112 -msgid "" -"Switch to the \"Script\" tab and create a new script called Global.gd. Make " -"sure it inherits from ``Node``:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:117 -msgid "" -"The next step is to add this script to the autoLoad list. Open ``Project > " -"Project Settings`` from the menu, switch to the \"AutoLoad\" tab and select " -"the script by clicking the ``..`` button or typing its path: ``res://Global." -"gd``. Press \"Add\" to add it to the autoload list:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:124 -msgid "" -"Now whenever we run any scene in the project, this script will always be " -"loaded." -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:126 -msgid "" -"Returning to the script, it needs to fetch the current scene in the " -"`_ready()` function. Both the current scene (the one with the button) and " -"``global.gd`` are children of root, but autoloaded nodes are always first. " -"This means that the last child of root is always the loaded scene." -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:158 -msgid "" -"Now we need a function for changing the scene. This function needs to free " -"the current scene and replace it with the requested one." -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:227 -msgid "" -"Using :ref:`Object.call_deferred() `, the " -"second function will only run once all code from the current scene has " -"completed. Thus, the current scene will not be removed while it is still " -"being used (i.e. its code is still running)." -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:232 -msgid "" -"Finally, we need to fill the empty callback functions in the two scenes:" -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:252 -#: ../../docs/tutorials/math/vector_math.rst:276 -msgid "and" -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." -msgstr "" - -#: ../../docs/getting_started/step_by_step/singletons_autoload.rst:275 -msgid "" -"Note: When scenes are small, the transition is instantaneous. However, if " -"your scenes are more complex, they may take a noticeable amount of time to " -"appear. To learn how to handle this, see the next tutorial: :ref:" -"`doc_background_loading`" -msgstr "" - -#: ../../docs/getting_started/editor/index.rst:2 -msgid "Editor manual" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:8 -msgid "From Unity to Godot Engine" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:10 -msgid "" -"This guide provides an overview of Godot Engine from the viewpoint of a " -"Unity user, and aims to help you migrate your existing Unity experience into " -"the world of Godot." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:15 -msgid "" -"This article talks about older versions of Unity. Nestable prefabs ('Nested " -"prefabs') were added to Unity 2018.3. Nestable prefabs are analogous to " -"Godot's scenes, and allow a more Godot-like approach to scene organisation." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:18 -msgid "Differences" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 -msgid "Unity" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:21 -msgid "Godot" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 -#: ../../docs/community/contributing/documentation_guidelines.rst:115 -msgid "License" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 -msgid "" -"Proprietary, closed, free license with revenue caps and usage restrictions" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:23 -msgid "MIT license, free and fully open source without any restriction" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 -msgid "OS (editor)" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 -msgid "Windows, macOS, Linux (unofficial and unsupported)" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:25 -msgid "Windows, macOS, X11 (Linux, \\*BSD)" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 -msgid "OS (export)" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 -msgid "**Desktop:** Windows, macOS, Linux" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 -msgid "**Mobile:** Android, iOS, Windows Phone, Tizen" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:29 -msgid "**Web:** WebAssembly or asm.js" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 -msgid "**Consoles:** PS4, PS Vita, Xbox One, Xbox 360, Wii U, Nintendo 3DS" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 -msgid "" -"**VR:** Oculus Rift, SteamVR, Google Cardboard, Playstation VR, Gear VR, " -"HoloLens" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:32 -msgid "**TV:** Android TV, Samsung SMART TV, tvOS" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:27 -msgid "**Desktop:** Windows, macOS, X11" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:28 -msgid "**Mobile:** Android, iOS" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:29 -msgid "**Web:** WebAssembly" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:30 -msgid "**Console:** See :ref:`doc_consoles`" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:31 -msgid "**VR:** Oculus Rift, SteamVR" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 -msgid "Scene system" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 -msgid "Component/Scene (GameObject > Component)" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:35 -msgid "Prefabs" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:34 -msgid "" -":ref:`Scene tree and nodes `, allowing scenes to be " -"nested and/or inherit other scenes" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 -msgid "Third-party tools" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 -msgid "Visual Studio or VS Code" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:37 -msgid ":ref:`External editors are possible `" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:38 -msgid ":ref:`Android SDK for Android export `" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:40 -msgid "Notable advantages" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:40 -msgid "Huge community" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:41 -msgid "Large assets store" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:40 -msgid "Scene System" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:41 -msgid ":ref:`Animation Pipeline `" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:42 -msgid ":ref:`Easy to write Shaders `" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:43 -msgid "Debug on Device" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:50 -msgid "The editor" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:52 -msgid "" -"Godot Engine provides a rich-featured editor that allows you to build your " -"games. The pictures below display the default layouts of both editors with " -"colored blocks to indicate common functionalities." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:58 -msgid "" -"While both editors may seem similar, there are many differences below the " -"surface. Both let you organize the project using the filesystem, but Godot's " -"approach is simpler with a single configuration file, minimalist text " -"format, and no metadata. This makes Godot more friendly to VCS systems, such " -"as Git, Subversion, or Mercurial." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:63 -msgid "" -"Godot's Scene panel is similar to Unity's Hierarchy panel but, as each node " -"has a specific function, the approach used by Godot is more visually " -"descriptive. It's easier to understand what a scene does at a glance." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:67 -msgid "" -"The Inspector in Godot is more minimal, it shows only properties. Thanks to " -"this, objects can expose more useful parameters to the user without having " -"to hide functionality in language APIs. As a plus, Godot allows animating " -"any of those properties visually. Changing colors, textures, enumerations, " -"or even links to resources in real-time is possible without needing to write " -"code." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:72 -msgid "" -"The Toolbar at the top of the screen is similar in both editors, offering " -"control over project playback. Projects in Godot run in a separate window, " -"rather than inside the editor (but the tree and objects can still be " -"explored in the debugger window)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:76 -msgid "" -"This approach has the disadvantage that in Godot the running game can't be " -"explored from different angles (though this may be supported in the future " -"and displaying collision gizmos in the running game is already possible), " -"but in exchange has several advantages:" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:80 -msgid "" -"Running the project and closing it is fast (Unity has to save, run the " -"project, close the project, and then reload the previous state)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:81 -msgid "" -"Live editing is a lot more useful because changes done to the editor take " -"effect immediately in the game and are not lost (nor have to be synced) when " -"the game is closed. This allows fantastic workflows, like creating levels " -"while you play them." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:82 -msgid "The editor is more stable because the game runs in a separate process." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:84 -msgid "" -"Finally, Godot's top toolbar includes a menu for remote debugging. These " -"options allow deployment to a device (connected phone, tablet, or browser " -"via HTML5), and debugging/live editing on it after the game is exported." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:89 -msgid "The scene system" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:91 -msgid "" -"This is the most important difference between Unity and Godot and the " -"favourite feature of most Godot users." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:93 -msgid "" -"Working on a 'level' in Unity usually means embedding all the required " -"assets in a scene and linking them together with components and scripts." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:96 -msgid "" -"Godot's scene system is superficially similar to Unity. A 'level' consists " -"of a collection of nodes, each with its own purpose: Sprite, Mesh, Light, " -"etc. However, in Godot the nodes are arranged in a tree. Each node can have " -"multiple children, which makes each a subscene of the main scene. This means " -"you can compose a whole scene with different scenes stored in different " -"files." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:99 -msgid "" -"For example, think of a platformer level. You would compose it with multiple " -"elements:" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:101 -msgid "Bricks" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:102 -msgid "Coins" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:103 -msgid "The player" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:104 -msgid "The enemies" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:106 -msgid "" -"In Unity, you would put all the GameObjects in the scene: the player, " -"multiple instances of enemies, bricks everywhere to form the ground of the " -"level and then multiple instances of coins all over the level. You would " -"then add various components to each element to link them and add logic in " -"the level: For example, you'd add a BoxCollider2D to all the elements of the " -"scene so that they can collide. This principle is different in Godot." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:111 -msgid "" -"In Godot, you would split your whole scene into three separate, smaller " -"scenes, and instance them in the main scene." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:113 -msgid "**A scene for the Player alone.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:115 -msgid "" -"Consider the player as an element we'd like to use in different parent " -"scenes (for instance 'level' scenes). In our case, the player element needs " -"at least an AnimatedSprite node. This node contains the sprite textures " -"necessary for various animations (for example, a walking animation)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:117 -msgid "**A scene for the Enemy.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:119 -msgid "" -"An enemy is also an element we'd like to use in several scenes. It's almost " -"the same as the Player node. The only differences are the script (it needs " -"'AI' routines to generate the enemy's behaviour) and the sprite textures " -"used by the AnimatedSprite node." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:123 -msgid "**A Level scene.**" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:125 -msgid "" -"A Level scene is composed of Bricks (for platforms), Coins (for the player " -"to collect) and a number of instances of the Enemy scene. Each instance is a " -"node in the Level scene tree. These instances are separate enemies, which " -"initially have shared behaviour and appearance as defined in the Enemy " -"scene. You can set different properties for each Enemy node (to change its " -"color, for example)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:129 -msgid "" -"4. **A Main scene.** The Main scene would be composed of one root node with " -"2 children: a Player instance node, and a Level instance node. The root node " -"can be anything, generally a \"root\" type such as \"Node\" which is the " -"most global type, or \"Node2D\" (root type of all 2D-related nodes), " -"\"Spatial\" (root type of all 3D-related nodes) or \"Control\" (root type of " -"all GUI-related nodes)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:135 -msgid "" -"As you can see, every scene is organized as a tree. The same goes for nodes' " -"properties: you don't *add* a collision component to a node to make it " -"collidable like Unity does. Instead, you make this node a *child* of a new " -"specific node that has collision properties. Godot features various " -"collision types nodes, depending on the usage (see the :ref:`Physics " -"introduction `)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:140 -msgid "" -"What are the advantages of this system? Wouldn't this system potentially " -"increase the depth of the scene tree? And doesn't Unity already allow you to " -"organize GameObjects by putting them inside empty GameObjects?" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:142 -msgid "" -"Godot's system is closer to the well-known object-oriented paradigm: Godot " -"provides a number of nodes which are not clearly \"Game Objects\", but they " -"provide their children with their own capabilities: this is inheritance." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:143 -msgid "" -"Godot allows the extraction of a subtree of a scene to make it a scene of " -"its own. So if a scene tree gets too deep, it can be split into smaller " -"subtrees. This is better for reusability, as you can include any subtree as " -"a child of any node. Putting multiple GameObjects in an empty GameObject in " -"Unity does not provide the same functionality." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:146 -#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:4 -msgid "Project organization" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:150 -msgid "" -"There is no perfect project architecture. Any architecture can be made to " -"work in either Unity and Godot." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:153 -msgid "" -"However, a common architecture for Unity projects is to have one Assets " -"folder in the root directory that contains various folders, one per type of " -"asset: Audio, Graphics, Models, Materials, Scripts, Scenes, and so on." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:156 -msgid "" -"Since Godot allows splitting scenes into smaller scenes, each scene and " -"subscene existing as a file in the project, we recommend organizing your " -"project a bit differently. This wiki provides a page for this: :ref:" -"`doc_project_organization`." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:161 -msgid "Where are my prefabs?" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:163 -msgid "" -"A prefab as provided by Unity is a 'template' element of the scene. It is " -"reusable, and each instance of the prefab that exists in the scene has an " -"existence of its own, but all of them have the same properties as defined by " -"the prefab." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:167 -msgid "" -"Godot does not provide prefabs as such, but the same functionality is " -"provided by its scene system: The scene system is organized as a tree. Godot " -"allows you to save any subtree of a scene as a scene file. This new scene " -"can then be instanced as many times as you want, as a child of any node. Any " -"change you make to this new, separate scene will be applied to its " -"instances. However, any change you make to the instance will not have any " -"impact on the 'template' scene." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:174 -msgid "" -"To be precise, you can modify the parameters of an instance in the Inspector " -"panel. The nodes that compose this instance are initially locked. You can " -"unlock them if you need to by right-clicking the instance in the Scene tree " -"and selecting \"Editable children\" in the menu. You don't need to do this " -"to add *new* child nodes to this node. Remember that any new children will " -"belong to the instance, not to the 'template' scene on disk. If you want to " -"add new children to every instance of your 'template' scene, then you should " -"add them in the 'template' scene." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:184 -msgid "Glossary correspondence" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:186 -msgid "GameObject -> Node" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:187 -msgid "Add a component -> Inheriting" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:188 -msgid "Prefab -> Reusable Scene file" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:192 -msgid "Scripting: GDScript, C# and Visual Script" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:195 -msgid "Design" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:197 -msgid "" -"Unity supports C#. C# benefits from its integration with Visual Studio and " -"has desirable features such as static typing." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:199 -msgid "" -"Godot provides its own scripting language, :ref:`GDScript ` " -"as well as support for :ref:`Visual Script ` and :ref:`C# `. GDScript borrows its syntax " -"from Python, but is not related to it. If you wonder about the reasoning for " -"a custom scripting language, please read the :ref:`doc_gdscript` and :ref:" -"`doc_faq` pages. GDScript is strongly attached to the Godot API and doesn't " -"take long to learn: Between one evening for an experienced programmer and a " -"week for a complete beginner." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:205 -msgid "" -"Unity allows you to attach as many scripts as you want to a GameObject. Each " -"script adds a behaviour to the GameObject: For example, you can attach a " -"script so that it reacts to the player's controls, and another that controls " -"its specific game logic." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:209 -msgid "" -"In Godot, you can only attach one script per node. You can use either an " -"external GDScript file or include the script directly in the node. If you " -"need to attach more scripts to one node, then you may consider two " -"solutions, depending on your scene and on what you want to achieve:" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:213 -msgid "" -"either add a new node between your target node and its current parent, then " -"add a script to this new node." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:214 -msgid "" -"or, you can split your target node into multiple children and attach one " -"script to each of them." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:216 -msgid "" -"As you can see, it can be easy to turn a scene tree to a mess. Consider " -"splitting any complicated scene into multiple, smaller branches." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:219 -msgid "Connections: groups and signals" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:221 -msgid "" -"You can control nodes by accessing them via script and calling built-in or " -"user-defined functions on them. You can also place nodes in a group and call " -"functions on all nodes in this group. See more in the :ref:`scripting " -"documentation `." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:226 -msgid "" -"Nodes can send a signal when a specified action occurs. A signal can be set " -"to call any function. You can define custom signals and specify when they " -"are triggered. See more in the :ref:`signals documentation " -"`." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:231 -msgid "Script serialization" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:233 -msgid "Unity can handle script serialization in two ways:" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:235 -msgid "" -"Implicit: All public fields in a class are automatically serialized if the " -"type is a serializable type (``Dictionary`` is not serializable)." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:236 -msgid "" -"Explicit: Non-public fields can be serialized using the ``[SerializeField]`` " -"attribute." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:238 -msgid "" -"Godot also has a built-in script serialization system, but it works only " -"explicitly. You can serialize any serializable type (:ref:`built-in and " -"various engine types `, including :ref:" -"`class_Array` and :ref:`class_Dictionary`) using the ``export`` keyword. See " -"the :ref:`exports documentation ` for details." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:243 -msgid "" -"Unity also has a data type called ``ScriptableObject`` used to serialize " -"custom asset objects. Its equivalent in Godot is the base class for all " -"resources: :ref:`class_Resource`. Creating a script that inherits :ref:" -"`class_Resource` will allow you to create custom serializable objects. More " -"information about resources can be found :ref:`here `." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:248 -msgid "Using Godot in C++" -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:250 -msgid "" -"Godot allows you to develop your project directly in C++ by using its API, " -"which is not possible with Unity at the moment. As an example, you can " -"consider Godot Engine's editor as a \"game\" written in C++ using the Godot " -"API." -msgstr "" - -#: ../../docs/getting_started/editor/unity_to_godot.rst:253 -msgid "" -"If you are interested in using Godot in C++, you may want to start reading " -"the :ref:`Developing in C++ ` page." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:4 -msgid "Command line tutorial" -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:8 -msgid "" -"Some developers like using the command line extensively. Godot is designed " -"to be friendly to them, so here are the steps for working entirely from the " -"command line. Given the engine relies on almost no external libraries, " -"initialization times are pretty fast, making it suitable for this workflow." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:15 -msgid "Path" -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:17 -msgid "" -"It is recommended that your Godot binary be in your PATH environment " -"variable, so it can be executed easily from any place by typing ``godot``. " -"You can do so on Linux by placing the Godot binary in ``/usr/local/bin`` and " -"making sure it is called ``godot``." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:23 -msgid "Setting the project path" -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:25 -msgid "" -"Depending on where your Godot binary is located and what your current " -"working directory is, you may need to set the path to your project for any " -"of the following commands to work correctly." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:29 -msgid "" -"This can be done by giving the path to the ``project.godot`` file of your " -"project as either the first argument, like this:" -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:36 -msgid "Or by using the ``--path`` argument:" -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:42 -msgid "" -"For example, the full command for exporting your game (as explained below) " -"might look like this:" -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:49 -msgid "Creating a project" -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:52 -msgid "" -"Creating a project from the command line can be done by navigating the shell " -"to the desired place and making a project.godot file." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:63 -msgid "The project can now be opened with Godot." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:67 -msgid "Running the editor" -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:69 -msgid "" -"Running the editor is done by executing Godot with the ``-e`` flag. This " -"must be done from within the project directory or a subdirectory, otherwise " -"the command is ignored and the project manager appears." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:77 -msgid "" -"If a scene has been created and saved, it can be edited later by running the " -"same code with that scene as argument." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:85 -msgid "Erasing a scene" -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:87 -msgid "" -"Godot is friends with your filesystem and will not create extra metadata " -"files. Use ``rm`` to erase a scene file. Make sure nothing references that " -"scene or else an error will be thrown upon opening." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:96 -msgid "Running the game" -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:98 -msgid "" -"To run the game, simply execute Godot within the project directory or " -"subdirectory." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:105 -msgid "" -"When a specific scene needs to be tested, pass that scene to the command " -"line." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:113 -msgid "Debugging" -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:115 -msgid "" -"Catching errors in the command line can be a difficult task because they " -"just fly by. For this, a command line debugger is provided by adding ``-d``. " -"It works for running either the game or a simple scene." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:132 -msgid "" -"Exporting the project from the command line is also supported. This is " -"especially useful for continuous integration setups. The version of Godot " -"that is headless (server build, no video) is ideal for this." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:141 -msgid "" -"The platform names recognized by the ``--export`` switch are the same as " -"displayed in the export wizard of the editor. To get a list of supported " -"platforms from the command line, try exporting to a non-recognized platform " -"and the full listing of platforms your configuration supports will be shown." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:147 -msgid "" -"To export a debug version of the game, use the ``--export-debug`` switch " -"instead of ``--export``. Their parameters and usage are the same." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:151 -msgid "Running a script" -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:153 -msgid "" -"It is possible to run a simple .gd script from the command line. This " -"feature is especially useful in large projects, for batch conversion of " -"assets or custom import/export." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:157 -msgid "The script must inherit from SceneTree or MainLoop." -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:159 -msgid "Here is a simple example of how it works:" -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:170 -msgid "And how to run it:" -msgstr "" - -#: ../../docs/getting_started/editor/command_line_tutorial.rst:177 -msgid "" -"If no project.godot exists at the path, current path is assumed to be the " -"current working directory (unless ``-path`` is specified)." -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:4 -msgid "Using an external text editor" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:6 -msgid "" -"Godot can be used with an external text editor, such as Sublime Text or " -"Visual Studio Code. To enable an external text editor, browse to the " -"relevant editor settings via: ``Editor -> Editor Settings -> Text Editor -> " -"External``" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:12 -msgid "" -"There are two fields: the executable path and command line flags. The flags " -"allow you to integrate the editor with Godot, passing it the file path to " -"open and other relevant arguments. Godot will replace the following " -"placeholders in the flags string:" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:18 -msgid "Field in Exec Flags" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:18 -msgid "Is replaced with" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:20 -msgid "``{project}``" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:20 -msgid "The absolute path to the project directory" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:22 -msgid "``{file}``" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:22 -msgid "The absolute path to the file" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:24 -msgid "``{col}``" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:24 -msgid "The column number of the error" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:26 -msgid "``{line}``" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:26 -msgid "The line number of the error" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:29 -msgid "Some example Exec Flags for various editors include:" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:32 -msgid "Exec Flags" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:34 -msgid "Geany/Kate" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:34 -msgid "``{file} --line {line} --column {col}``" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:36 -msgid "Atom/Sublime Text" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:36 -msgid "``{file}:{line}``" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:38 -msgid "JetBrains Rider" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:38 -msgid "``--line {line} {file}``" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:40 -#: ../../docs/development/cpp/configuring_an_ide.rst:267 -msgid "Visual Studio Code" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:40 -msgid "``{project} --goto {file}:{line}:{col}``" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:42 -msgid "Vim (gVim)" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:42 -msgid "``\"+call cursor({line}, {col})\" {file}``" -msgstr "" - -#: ../../docs/getting_started/editor/external_editor.rst:45 -msgid "For Visual Studio Code you will have to point to the ``code.cmd`` file." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:4 -msgid "GDScript basics" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:9 -msgid "" -"*GDScript* is a high-level, dynamically typed programming language used to " -"create content. It uses a syntax similar to `Python `_ (blocks are indent-based and " -"many keywords are similar). Its goal is to be optimized for and tightly " -"integrated with Godot Engine, allowing great flexibility for content " -"creation and integration." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:17 -msgid "History" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:19 -msgid "" -"In the early days, the engine used the `Lua `__ " -"scripting language. Lua is fast, but creating bindings to an object oriented " -"system (by using fallbacks) was complex and slow and took an enormous amount " -"of code. After some experiments with `Python `__, it " -"also proved difficult to embed." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:25 -msgid "" -"The last third party scripting language that was used for shipped games was " -"`Squirrel `__, but it was dropped as well. At that " -"point, it became evident that a custom scripting language could more " -"optimally make use of Godot's particular architecture:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:30 -msgid "" -"Godot embeds scripts in nodes. Most languages are not designed with this in " -"mind." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:32 -msgid "" -"Godot uses several built-in data types for 2D and 3D math. Script languages " -"do not provide this, and binding them is inefficient." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:34 -msgid "" -"Godot uses threads heavily for lifting and initializing data from the net or " -"disk. Script interpreters for common languages are not friendly to this." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:37 -msgid "" -"Godot already has a memory management model for resources, most script " -"languages provide their own, which results in duplicate effort and bugs." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:40 -msgid "" -"Binding code is always messy and results in several failure points, " -"unexpected bugs and generally low maintainability." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:43 -msgid "" -"The result of these considerations is *GDScript*. The language and " -"interpreter for GDScript ended up being smaller than the binding code itself " -"for Lua and Squirrel, while having equal functionality. With time, having a " -"built-in language has proven to be a huge advantage." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:49 -msgid "Example of GDScript" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:51 -msgid "" -"Some people can learn better by taking a look at the syntax, so here's a " -"simple example of how GDScript looks." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:129 -msgid "" -"If you have previous experience with statically typed languages such as C, C+" -"+, or C# but never used a dynamically typed one before, it is advised you " -"read this tutorial: :ref:`doc_gdscript_more_efficiently`." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:134 -msgid "Language" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:136 -msgid "" -"In the following, an overview is given to GDScript. Details, such as which " -"methods are available to arrays or other objects, should be looked up in the " -"linked class descriptions." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:141 -msgid "Identifiers" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:143 -msgid "" -"Any string that restricts itself to alphabetic characters (``a`` to ``z`` " -"and ``A`` to ``Z``), digits (``0`` to ``9``) and ``_`` qualifies as an " -"identifier. Additionally, identifiers must not begin with a digit. " -"Identifiers are case-sensitive (``foo`` is different from ``FOO``)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:149 -msgid "Keywords" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:151 -msgid "" -"The following is the list of keywords supported by the language. Since " -"keywords are reserved words (tokens), they can't be used as identifiers. " -"Operators (like ``in``, ``not``, ``and`` or ``or``) and names of built-in " -"types as listed in the following sections are also reserved." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:156 -msgid "" -"Keywords are defined in the `GDScript tokenizer `_ in " -"case you want to take a look under the hood." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:160 -msgid "Keyword" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:160 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:7 -#: ../../docs/getting_started/workflow/assets/importing_images.rst:56 -#: ../../docs/tutorials/inputs/inputevent.rst:130 -#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:27 -#: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 -#: ../../docs/tutorials/shading/shading_reference/shading_language.rst:448 -#: ../../docs/tutorials/shading/shading_reference/shading_language.rst:492 -#: ../../docs/tutorials/shading/shading_reference/shading_language.rst:560 -#: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:15 -#: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:125 -#: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:179 -#: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:292 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:17 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:95 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:144 -#: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:195 -#: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 -#: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 -#: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:92 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:101 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:110 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:119 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:132 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:143 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:158 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:171 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:190 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:205 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:220 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:239 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:264 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:295 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:310 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:319 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:330 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:340 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:359 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:371 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:383 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:396 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:407 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:418 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:426 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:439 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:452 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:467 -msgid "Description" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:162 -msgid "if" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:162 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:164 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:166 -msgid "See `if/else/elif`_." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:164 -msgid "elif" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:166 -msgid "else" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:168 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:802 -msgid "for" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:168 -msgid "See for_." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:170 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:791 -msgid "while" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:170 -msgid "See while_." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:172 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:837 -msgid "match" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:172 -msgid "See match_." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:174 -msgid "break" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:174 -msgid "Exits the execution of the current ``for`` or ``while`` loop." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:176 -msgid "continue" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:176 -msgid "" -"Immediately skips to the next iteration of the ``for`` or ``while`` loop." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:178 -msgid "pass" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:178 -msgid "" -"Used where a statement is required syntactically but execution of code is " -"undesired, e.g. in empty functions." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:180 -msgid "return" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:180 -msgid "Returns a value from a function." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:182 -msgid "class" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:182 -msgid "Defines a class." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:184 -msgid "extends" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:184 -msgid "Defines what class to extend with the current class." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:186 -#: ../../docs/tutorials/i18n/locales.rst:360 -msgid "is" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:186 -msgid "" -"Tests whether a variable extends a given class, or is of a given built-in " -"type." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:188 -msgid "as" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:188 -msgid "Cast the value to a given type if possible." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:190 -msgid "self" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:190 -msgid "Refers to current class instance." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:192 -msgid "tool" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:192 -msgid "Executes the script in the editor." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:194 -msgid "signal" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:194 -msgid "Defines a signal." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:196 -msgid "func" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:196 -msgid "Defines a function." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:198 -msgid "static" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:198 -msgid "Defines a static function. Static member variables are not allowed." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:200 -msgid "const" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:200 -msgid "Defines a constant." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:202 -msgid "enum" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:202 -msgid "Defines an enum." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:204 -msgid "var" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:204 -msgid "Defines a variable." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:206 -msgid "onready" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:206 -msgid "" -"Initializes a variable once the Node the script is attached to and its " -"children are part of the scene tree." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:208 -msgid "export" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:208 -msgid "" -"Saves a variable along with the resource it's attached to and makes it " -"visible and modifiable in the editor." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:210 -msgid "setget" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:210 -msgid "Defines setter and getter functions for a variable." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:212 -msgid "breakpoint" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:212 -msgid "Editor helper for debugger breakpoints." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:214 -msgid "preload" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:214 -msgid "Preloads a class or variable. See `Classes as resources`_." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:216 -msgid "yield" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:216 -msgid "Coroutine support. See `Coroutines with yield`_." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:218 -msgid "assert" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:218 -msgid "" -"Asserts a condition, logs error on failure. Ignored in non-debug builds. See " -"`Assert keyword`_." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:220 -msgid "remote" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:220 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:222 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:224 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:226 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:228 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:230 -msgid "" -"Networking RPC annotation. See :ref:`high-level multiplayer docs " -"`." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:222 -msgid "master" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:224 -msgid "puppet" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:226 -msgid "remotesync" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:228 -msgid "mastersync" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:230 -msgid "puppetsync" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:232 -msgid "PI" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:232 -msgid "PI constant." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:234 -msgid "TAU" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:234 -msgid "TAU constant." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:236 -msgid "INF" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:236 -msgid "Infinity constant. Used for comparisons." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:238 -msgid "NAN" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:238 -msgid "NAN (not a number) constant. Used for comparisons." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:242 -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:470 -#: ../../docs/tutorials/shading/shading_reference/shading_language.rst:288 -msgid "Operators" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:244 -msgid "The following is the list of supported operators and their precedence." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:247 -msgid "**Operator**" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:247 -#: ../../docs/getting_started/workflow/export/feature_tags.rst:33 -msgid "**Description**" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:249 -msgid "``x[index]``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:249 -msgid "Subscription (highest priority)" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:251 -msgid "``x.attribute``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:251 -msgid "Attribute reference" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:253 -msgid "``is``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:253 -msgid "Instance type checker" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:255 -msgid "``~``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:255 -msgid "Bitwise NOT" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:257 -msgid "``-x``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:257 -msgid "Negative / Unary negation" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:259 -msgid "``*`` ``/`` ``%``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:259 -msgid "Multiplication / Division / Remainder" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:261 -msgid "" -"These operators have the same behavior as C++. Integer division is truncated " -"rather than returning a fractional number, and the % operator is only " -"available for ints (\"fmod\" for floats)" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:267 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:134 -msgid "``+``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:267 -msgid "Addition / Concatenation of arrays" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:269 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:143 -msgid "``-``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:269 -msgid "Subtraction" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:271 -msgid "``<<`` ``>>``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:271 -msgid "Bit shifting" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:273 -msgid "``&``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:273 -msgid "Bitwise AND" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:275 -msgid "``^``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:275 -msgid "Bitwise XOR" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:277 -msgid "``|``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:277 -msgid "Bitwise OR" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:279 -msgid "``<`` ``>`` ``==`` ``!=`` ``>=`` ``<=``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:279 -msgid "Comparisons" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:281 -msgid "``in``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:281 -msgid "Content test" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:283 -msgid "``!`` ``not``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:283 -msgid "Boolean NOT" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:285 -msgid "``and`` ``&&``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:285 -msgid "Boolean AND" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:287 -msgid "``or`` ``||``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:287 -msgid "Boolean OR" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:289 -msgid "``if x else``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:289 -msgid "Ternary if/else" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:291 -msgid "``=`` ``+=`` ``-=`` ``*=`` ``/=`` ``%=`` ``&=`` ``|=``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:291 -msgid "Assignment (lowest priority)" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:295 -msgid "Literals" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:298 -msgid "**Literal**" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:298 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:242 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:264 -msgid "**Type**" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:300 -msgid "``45``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:300 -msgid "Base 10 integer" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:302 -msgid "``0x8F51``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:302 -msgid "Base 16 (hexadecimal) integer" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:304 -msgid "``0b101010``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:304 -msgid "Base 2 (binary) integer" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:306 -msgid "``3.14``, ``58.1e-10``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:306 -msgid "Floating-point number (real)" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:308 -msgid "``\"Hello\"``, ``\"Hi\"``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:308 -msgid "Strings" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:310 -msgid "``\"\"\"Hello\"\"\"``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:310 -msgid "Multiline string" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:312 -msgid "``@\"Node/Label\"``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:312 -msgid ":ref:`class_NodePath` or StringName" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:314 -msgid "``$NodePath``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:314 -msgid "Shorthand for ``get_node(\"NodePath\")``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:318 -msgid "Comments" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:320 -msgid "" -"Anything from a ``#`` to the end of the line is ignored and is considered a " -"comment." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:330 -msgid "Built-in types" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:332 -msgid "" -"Built-in types are stack-allocated. They are passed as values. This means a " -"copy is created on each assignment or when passing them as arguments to " -"functions. The only exceptions are ``Array``\\ s and ``Dictionaries``, which " -"are passed by reference so they are shared. (Pooled arrays such as " -"``PoolByteArray`` are still passed as values.)" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:339 -msgid "Basic built-in types" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:341 -msgid "A variable in GDScript can be assigned to several built-in types." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:344 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:25 -msgid "null" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:346 -msgid "" -"``null`` is an empty data type that contains no information and can not be " -"assigned any other value." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:350 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:104 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:27 -msgid "bool" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:352 -msgid "Short for \"boolean\", it can only contain ``true`` or ``false``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:355 -msgid "int" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:357 -msgid "" -"Short for \"integer\", it stores whole numbers (positive and negative). It " -"is stored as a 64-bit value, equivalent to \"int64_t\" in C++." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:361 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:31 -msgid "float" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:363 -msgid "" -"Stores real numbers, including decimals, using floating-point values. It is " -"stored as a 64-bit value, equivalent to \"double\" in C++. Note: Currently, " -"data structures such as Vector2, Vector3, and PoolRealArray store 32-bit " -"single-precision \"float\" values." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:369 -msgid ":ref:`String `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:371 -msgid "" -"A sequence of characters in `Unicode format `_. Strings can contain `standard C escape sequences `_. GDScript also supports :ref:" -"`doc_gdscript_printf`." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:377 -msgid "Vector built-in types" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:380 -msgid ":ref:`Vector2 `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:382 -msgid "" -"2D vector type containing ``x`` and ``y`` fields. Can also be accessed as " -"array." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:386 -msgid ":ref:`Rect2 `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:388 -msgid "" -"2D Rectangle type containing two vectors fields: ``position`` and ``size``. " -"Also contains an ``end`` field which is ``position + size``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:392 -msgid ":ref:`Vector3 `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:394 -msgid "" -"3D vector type containing ``x``, ``y`` and ``z`` fields. This can also be " -"accessed as an array." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:398 -msgid ":ref:`Transform2D `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:400 -msgid "3×2 matrix used for 2D transforms." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:403 -msgid ":ref:`Plane `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:405 -msgid "" -"3D Plane type in normalized form that contains a ``normal`` vector field and " -"a ``d`` scalar distance." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:409 -msgid ":ref:`Quat `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:411 -msgid "" -"Quaternion is a datatype used for representing a 3D rotation. It's useful " -"for interpolating rotations." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:415 -msgid ":ref:`AABB `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:417 -msgid "" -"Axis-aligned bounding box (or 3D box) contains 2 vectors fields: " -"``position`` and ``size``. Also contains an ``end`` field which is " -"``position + size``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:422 -msgid ":ref:`Basis `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:424 -msgid "" -"3x3 matrix used for 3D rotation and scale. It contains 3 vector fields " -"(``x``, ``y`` and ``z``) and can also be accessed as an array of 3D vectors." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:429 -msgid ":ref:`Transform `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:431 -msgid "" -"3D Transform contains a Basis field ``basis`` and a Vector3 field ``origin``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:435 -msgid "Engine built-in types" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:438 -msgid ":ref:`Color `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:440 -msgid "" -"Color data type contains ``r``, ``g``, ``b``, and ``a`` fields. It can also " -"be accessed as ``h``, ``s``, and ``v`` for hue/saturation/value." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:444 -msgid ":ref:`NodePath `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:446 -msgid "" -"Compiled path to a node used mainly in the scene system. It can be easily " -"assigned to, and from, a String." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:450 -msgid ":ref:`RID `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:452 -msgid "Resource ID (RID). Servers use generic RIDs to reference opaque data." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:455 -msgid ":ref:`Object `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:457 -msgid "Base class for anything that is not a built-in type." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:460 -msgid "Container built-in types" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:463 -msgid ":ref:`Array `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:465 -msgid "" -"Generic sequence of arbitrary object types, including other arrays or " -"dictionaries (see below). The array can resize dynamically. Arrays are " -"indexed starting from index ``0``. Negative indices count from the end." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:479 -msgid "" -"GDScript arrays are allocated linearly in memory for speed. Large arrays " -"(more than tens of thousands of elements) may however cause memory " -"fragmentation. If this is a concern, special types of arrays are available. " -"These only accept a single data type. They avoid memory fragmentation and " -"use less memory, but are atomic and tend to run slower than generic arrays. " -"They are therefore only recommended to use for large data sets:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:486 -msgid "" -":ref:`PoolByteArray `: An array of bytes (integers from " -"0 to 255)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:487 -msgid ":ref:`PoolIntArray `: An array of integers." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:488 -msgid ":ref:`PoolRealArray `: An array of floats." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:489 -msgid ":ref:`PoolStringArray `: An array of strings." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:490 -msgid "" -":ref:`PoolVector2Array `: An array of :ref:`Vector2 " -"` objects." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:491 -msgid "" -":ref:`PoolVector3Array `: An array of :ref:`Vector3 " -"` objects." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:492 -msgid "" -":ref:`PoolColorArray `: An array of :ref:`Color " -"` objects." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:495 -msgid ":ref:`Dictionary `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:497 -msgid "Associative container which contains values referenced by unique keys." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:510 -msgid "" -"Lua-style table syntax is also supported. Lua-style uses ``=`` instead of ``:" -"`` and doesn't use quotes to mark string keys (making for slightly less to " -"write). Note however that like any GDScript identifier, keys written in this " -"form cannot start with a digit." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:524 -msgid "" -"To add a key to an existing dictionary, access it like an existing key and " -"assign to it::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:533 -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:228 -msgid "Data" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:536 -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 -msgid "Variables" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:538 -msgid "" -"Variables can exist as class members or local to functions. They are created " -"with the ``var`` keyword and may, optionally, be assigned a value upon " -"initialization." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:549 -msgid "" -"Variables can optionally have a type specification. When a type is " -"specified, the variable will be forced to have always that same type, and " -"trying to assign an incompatible value will raise an error." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:553 -msgid "" -"Types are specified in the variable declaration using a ``:`` (colon) symbol " -"after the variable name, followed by the type." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:561 -msgid "" -"If the variable is initialized within the declaration, the type can be " -"inferred, so it's possible to omit the type name::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:567 -msgid "" -"Type inference is only possible if the assigned value has a defined type, " -"otherwise it will raise an error." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:570 -#: ../../docs/tutorials/shading/shading_reference/shaders.rst:39 -msgid "Valid types are:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:572 -msgid "Built-in types (Array, Vector2, int, String, etc.)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:573 -msgid "Engine classes (Node, Resource, Reference, etc.)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:574 -msgid "" -"Constant names if they contain a script resource (``MyScript`` if you " -"declared ``const MyScript = preload(\"res://my_script.gd\")``)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:575 -msgid "" -"Other classes in the same script, respecting scope (``InnerClass." -"NestedClass`` if you declared ``class NestedClass`` inside the ``class " -"InnerClass`` in the same scope)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:576 -msgid "Script classes declared with the ``class_name`` keyword." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:579 -#: ../../docs/tutorials/shading/shading_reference/shading_language.rst:85 -msgid "Casting" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:581 -msgid "" -"Values assigned to typed variables must have a compatible type. If it's " -"needed to coerce a value to be of a certain type, in particular for object " -"types, you can use the casting operator ``as``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:585 -msgid "" -"Casting between object types results in the same object if the value is of " -"the same type or a subtype of the cast type." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:593 -msgid "" -"If the value is not a subtype, the casting operation will result in a " -"``null`` value." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:600 -msgid "" -"For built-in types, they will be forcibly converted if possible, otherwise " -"the engine will raise an error." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:609 -msgid "" -"Casting is also useful to have better type-safe variables when interacting " -"with the scene tree::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:619 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:206 -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:211 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:22 -#: ../../docs/tutorials/shading/shading_reference/shading_language.rst:250 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:71 -#: ../../docs/development/cpp/object_class.rst:94 -msgid "Constants" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:621 -msgid "" -"Constants are similar to variables, but must be constants or constant " -"expressions and must be assigned on initialization." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:635 -msgid "" -"Although the type of constants is inferred from the assigned value, it's " -"also possible to add explicit type specification::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:641 -msgid "Assigning a value of an incompatible type will raise an error." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:644 -msgid "Enums" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:646 -msgid "" -"Enums are basically a shorthand for constants, and are pretty useful if you " -"want to assign consecutive integers to some constant." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:649 -msgid "" -"If you pass a name to the enum, it will put all the keys inside a constant " -"dictionary of that name." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:672 -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:391 -#: ../../docs/tutorials/shading/shading_reference/shading_language.rst:371 -msgid "Functions" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:674 -msgid "" -"Functions always belong to a `class `_. The scope priority for " -"variable look-up is: local → class member → global. The ``self`` variable is " -"always available and is provided as an option for accessing class members, " -"but is not always required (and should *not* be sent as the function's first " -"argument, unlike Python)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:687 -msgid "" -"A function can ``return`` at any point. The default return value is ``null``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:689 -msgid "" -"Functions can also have type specification for the arguments and for the " -"return value. Types for arguments can be added in a similar way to " -"variables::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:695 -msgid "" -"If a function argument has a default value, it's possible to infer the type::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:700 -msgid "" -"The return type of the function can be specified after the arguments list " -"using the arrow token (``->``)::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:706 -msgid "" -"Functions that have a return type **must** return a proper value. Setting " -"the type as ``void`` means the function doesn't return anything. Void " -"functions can return early with the ``return`` keyword, but they can't " -"return any value." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:715 -msgid "" -"Non-void functions must **always** return a value, so if your code has " -"branching statements (such as an ``if``/``else`` construct), all the " -"possible paths must have a return. E.g., if you have a ``return`` inside an " -"``if`` block but not after it, the editor will raise an error because if the " -"block is not executed, the function won't have a valid value to return." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:723 -msgid "Referencing functions" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:725 -msgid "" -"Contrary to Python, functions are *not* first-class objects in GDScript. " -"This means they cannot be stored in variables, passed as an argument to " -"another function or be returned from other functions. This is for " -"performance reasons." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:729 -msgid "" -"To reference a function by name at run-time, (e.g. to store it in a " -"variable, or pass it to another function as an argument) one must use the " -"``call`` or ``funcref`` helpers::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:743 -msgid "Static functions" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:745 -msgid "" -"A function can be declared static. When a function is static, it has no " -"access to the instance member variables or ``self``. This is mainly useful " -"to make libraries of helper functions::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:754 -msgid "Statements and control flow" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:756 -msgid "" -"Statements are standard and can be assignments, function calls, control flow " -"structures, etc (see below). ``;`` as a statement separator is entirely " -"optional." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:761 -msgid "if/else/elif" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:763 -msgid "" -"Simple conditions are created by using the ``if``/``else``/``elif`` syntax. " -"Parenthesis around conditions are allowed, but not required. Given the " -"nature of the tab-based indentation, ``elif`` can be used instead of " -"``else``/``if`` to maintain a level of indentation." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:777 -msgid "Short statements can be written on the same line as the condition::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:784 -msgid "" -"Sometimes, you might want to assign a different initial value based on a " -"boolean expression. In this case, ternary-if expressions come in handy::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:793 -msgid "" -"Simple loops are created by using ``while`` syntax. Loops can be broken " -"using ``break`` or continued using ``continue``:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:804 -msgid "" -"To iterate through a range, such as an array or table, a *for* loop is used. " -"When iterating over an array, the current array element is stored in the " -"loop variable. When iterating over a dictionary, the *index* is stored in " -"the loop variable." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:839 -msgid "" -"A ``match`` statement is used to branch execution of a program. It's the " -"equivalent of the ``switch`` statement found in many other languages, but " -"offers some additional features." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:842 -msgid "Basic syntax::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:853 -msgid "**Crash-course for people who are familiar with switch statements**:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:855 -msgid "Replace ``switch`` with ``match``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:856 -msgid "Remove ``case``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:857 -msgid "" -"Remove any ``break``\\ s. If you don't want to ``break`` by default, you can " -"use ``continue`` for a fallthrough." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:858 -msgid "Change ``default`` to a single underscore." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:861 -msgid "**Control flow**:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:863 -msgid "" -"The patterns are matched from top to bottom. If a pattern matches, the " -"corresponding block will be executed. After that, the execution continues " -"below the ``match`` statement. If you want to have a fallthrough, you can " -"use ``continue`` to stop execution in the current block and check the ones " -"below it." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:867 -msgid "There are 6 pattern types:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:879 -msgid "Constant pattern" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:870 -msgid "Constant primitives, like numbers and strings::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:891 -msgid "Variable pattern" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:882 -msgid "Matches the contents of a variable/enum::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:905 -msgid "Wildcard pattern" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:894 -msgid "This pattern matches everything. It's written as a single underscore." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:896 -msgid "" -"It can be used as the equivalent of the ``default`` in a ``switch`` " -"statement in other languages::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:918 -msgid "Binding pattern" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:908 -msgid "" -"A binding pattern introduces a new variable. Like the wildcard pattern, it " -"matches everything - and also gives that value a name. It's especially " -"useful in array and dictionary patterns::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:939 -msgid "Array pattern" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:921 -msgid "" -"Matches an array. Every single element of the array pattern is a pattern " -"itself, so you can nest them." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:923 -msgid "" -"The length of the array is tested first, it has to be the same size as the " -"pattern, otherwise the pattern doesn't match." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:925 -msgid "" -"**Open-ended array**: An array can be bigger than the pattern by making the " -"last subpattern ``..``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:927 -msgid "Every subpattern has to be comma-separated." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:966 -msgid "Dictionary pattern" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:942 -msgid "" -"Works in the same way as the array pattern. Every key has to be a constant " -"pattern." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:944 -msgid "" -"The size of the dictionary is tested first, it has to be the same size as " -"the pattern, otherwise the pattern doesn't match." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:946 -msgid "" -"**Open-ended dictionary**: A dictionary can be bigger than the pattern by " -"making the last subpattern ``..``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:948 -msgid "Every subpattern has to be comma separated." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:950 -msgid "" -"If you don't specify a value, then only the existence of the key is checked." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:952 -msgid "A value pattern is separated from the key pattern with a ``:``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:979 -msgid "Multiple patterns" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:969 -msgid "" -"You can also specify multiple patterns separated by a comma. These patterns " -"aren't allowed to have any bindings in them." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:982 -msgid "Classes" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:984 -msgid "" -"By default, all script files are unnamed classes. In this case, you can only " -"reference them using the file's path, using either a relative or an absolute " -"path. For example, if you name a script file ``character.gd``::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:997 -msgid "" -"Instead, you can give your class a name to register it as a new type in " -"Godot's editor. For that, you use the ``class_name`` keyword. You can add an " -"optional comma followed by a path to an image, to use it as an icon. Your " -"class will then appear with its new icon in the editor::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1010 -msgid "Here's a class file example:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1029 -msgid "" -"Godot's class syntax is compact: it can only contain member variables or " -"functions. You can use static functions, but not static member variables. In " -"the same way, the engine initializes variables every time you create an " -"instance, and this includes arrays and dictionaries. This is in the spirit " -"of thread safety, since scripts can be initialized in separate threads " -"without the user knowing." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1037 -msgid "Inheritance" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1039 -msgid "A class (stored as a file) can inherit from:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1041 -msgid "A global class." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1042 -msgid "Another class file." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1043 -msgid "An inner class inside another class file." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1045 -msgid "Multiple inheritance is not allowed." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1047 -msgid "Inheritance uses the ``extends`` keyword::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1059 -msgid "" -"To check if a given instance inherits from a given class, the ``is`` keyword " -"can be used::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1071 -msgid "" -"To call a function in a *parent class* (i.e. one ``extend``-ed in your " -"current class), prepend ``.`` to the function name::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1076 -msgid "" -"This is especially useful because functions in extending classes replace " -"functions with the same name in their parent classes. If you still want to " -"call them, you can prefix them with ``.`` (like the ``super`` keyword in " -"other languages)::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1084 -msgid "" -"Default functions like ``_init``, and most notifications such as " -"``_enter_tree``, ``_exit_tree``, ``_process``, ``_physics_process``, etc. " -"are called in all parent classes automatically. There is no need to call " -"them explicitly when overloading them." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1091 -msgid "Class Constructor" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1093 -msgid "" -"The class constructor, called on class instantiation, is named ``_init``. As " -"mentioned earlier, the constructors of parent classes are called " -"automatically when inheriting a class. So, there is usually no need to call " -"``._init()`` explicitly." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1098 -msgid "" -"Unlike the call of a regular function, like in the above example with ``." -"some_func``, if the constructor from the inherited class takes arguments, " -"they are passed like this::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1105 -msgid "This is better explained through examples. Consider this scenario::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1125 -msgid "There are a few things to keep in mind here:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1127 -msgid "" -"If the inherited class (``State.gd``) defines a ``_init`` constructor that " -"takes arguments (``e`` in this case), then the inheriting class (``Idle." -"gd``) *must* define ``_init`` as well and pass appropriate parameters to " -"``_init`` from ``State.gd``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1130 -msgid "" -"``Idle.gd`` can have a different number of arguments than the parent class " -"``State.gd``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1131 -msgid "" -"In the example above, ``e`` passed to the ``State.gd`` constructor is the " -"same ``e`` passed in to ``Idle.gd``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1133 -msgid "" -"If ``Idle.gd``'s ``_init`` constructor takes 0 arguments, it still needs to " -"pass some value to the ``State.gd`` parent class, even if it does nothing. " -"This brings us to the fact that you can pass literals in the base " -"constructor as well, not just variables. eg.::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1143 -msgid "Inner classes" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1145 -msgid "" -"A class file can contain inner classes. Inner classes are defined using the " -"``class`` keyword. They are instanced using the ``ClassName.new()`` function." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1165 -msgid "Classes as resources" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1167 -msgid "" -"Classes stored as files are treated as :ref:`resources `. " -"They must be loaded from disk to access them in other classes. This is done " -"using either the ``load`` or ``preload`` functions (see below). Instancing " -"of a loaded class resource is done by calling the ``new`` function on the " -"class object::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1183 -msgid "Exports" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1187 -msgid "" -"Documentation about exports has been moved to :ref:`doc_gdscript_exports`." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1190 -msgid "Setters/getters" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1192 -msgid "" -"It is often useful to know when a class' member variable changes for " -"whatever reason. It may also be desired to encapsulate its access in some " -"way." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1195 -msgid "" -"For this, GDScript provides a *setter/getter* syntax using the ``setget`` " -"keyword. It is used directly after a variable definition:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1202 -msgid "" -"Whenever the value of ``variable`` is modified by an *external* source (i.e. " -"not from local usage in the class), the *setter* function (``setterfunc`` " -"above) will be called. This happens *before* the value is changed. The " -"*setter* must decide what to do with the new value. Vice versa, when " -"``variable`` is accessed, the *getter* function (``getterfunc`` above) must " -"``return`` the desired value. Below is an example::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1216 -msgid "Either of the *setter* or *getter* functions can be omitted::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1223 -msgid "" -"Setters and getters are useful when :ref:`exporting variables " -"` to the editor in tool scripts or plugins, for " -"validating input." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1226 -msgid "" -"As said, *local* access will *not* trigger the setter and getter. Here is an " -"illustration of this:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1243 -msgid "Tool mode" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1245 -msgid "" -"By default, scripts don't run inside the editor and only the exported " -"properties can be changed. In some cases, it is desired that they do run " -"inside the editor (as long as they don't execute game code or manually avoid " -"doing so). For this, the ``tool`` keyword exists and must be placed at the " -"top of the file::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1257 -msgid "" -"Be cautious when freeing nodes with ``queue_free()`` or ``free()`` in a tool " -"script (especially the script's owner itself). As tool scripts run their " -"code in the editor, misusing them may lead to crashing the editor." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1263 -msgid "Memory management" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1265 -msgid "" -"If a class inherits from :ref:`class_Reference`, then instances will be " -"freed when no longer in use. No garbage collector exists, just reference " -"counting. By default, all classes that don't define inheritance extend " -"**Reference**. If this is not desired, then a class must inherit :ref:" -"`class_Object` manually and must call instance.free(). To avoid reference " -"cycles that can't be freed, a ``weakref`` function is provided for creating " -"weak references." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1273 -msgid "" -"Alternatively, when not using references, the " -"``is_instance_valid(instance)`` can be used to check if an object has been " -"freed." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1282 -msgid "" -"Signals are a tool to emit messages from an object that other objects can " -"react to. To create custom signals for a class, use the ``signal`` keyword." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1294 -msgid "" -"Signals are a `Callback `_ mechanism. They also fill the role of " -"Observers, a common programming pattern. For more information, read the " -"`Observer tutorial `_ in " -"the Game Programming Patterns ebook." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1301 -msgid "" -"You can connect these signals to methods the same way you connect built-in " -"signals of nodes like :ref:`class_Button` or :ref:`class_RigidBody`." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1304 -msgid "" -"In the example below, we connect the ``health_depleted`` signal from a " -"``Character`` node to a ``Game`` node. When the ``Character`` node emits the " -"signal, the game node's ``_on_Character_health_depleted`` is called::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1317 -msgid "You can emit as many arguments as you want along with a signal." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1319 -msgid "" -"Here is an example where this is useful. Let's say we want a life bar on " -"screen to react to health changes with an animation, but we want to keep the " -"user interface separate from the player in our scene tree." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1323 -msgid "" -"In our ``Character.gd`` script, we define a ``health_changed`` signal and " -"emit it with :ref:`Object.emit_signal() `, " -"and from a ``Game`` node higher up our scene tree, we connect it to the " -"``Lifebar`` using the :ref:`Object.connect() ` " -"method::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1363 -msgid "" -"To use signals, your class has to extend the ``Object`` class or any type " -"extending it like ``Node``, ``KinematicBody``, ``Control``..." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1366 -msgid "" -"In the ``Game`` node, we get both the ``Character`` and ``Lifebar`` nodes, " -"then connect the character, that emits the signal, to the receiver, the " -"``Lifebar`` node in this case." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1380 -msgid "" -"This allows the ``Lifebar`` to react to health changes without coupling it " -"to the ``Character`` node." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1383 -msgid "" -"You can write optional argument names in parentheses after the signal's " -"definition::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1389 -msgid "" -"These arguments show up in the editor's node dock, and Godot can use them to " -"generate callback functions for you. However, you can still emit any number " -"of arguments when you emit signals; it's up to you to emit the correct " -"values." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1395 -msgid "" -"GDScript can bind an array of values to connections between a signal and a " -"method. When the signal is emitted, the callback method receives the bound " -"values. These bound arguments are unique to each connection, and the values " -"will stay the same." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1400 -msgid "" -"You can use this array of values to add extra constant information to the " -"connection if the emitted signal itself doesn't give you access to all the " -"data that you need." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1404 -msgid "" -"Building on the example above, let's say we want to display a log of the " -"damage taken by each character on the screen, like ``Player1 took 22 damage." -"``. The ``health_changed`` signal doesn't give us the name of the character " -"that took damage. So when we connect the signal to the in-game console, we " -"can add the character's name in the binds array argument::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1418 -msgid "" -"Our ``BattleLog`` node receives each element in the binds array as an extra " -"argument::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1430 -msgid "Coroutines with yield" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1432 -msgid "" -"GDScript offers support for `coroutines `_ via the :ref:`yield` built-in " -"function. Calling ``yield()`` will immediately return from the current " -"function, with the current frozen state of the same function as the return " -"value. Calling ``resume()`` on this resulting object will continue execution " -"and return whatever the function returns. Once resumed, the state object " -"becomes invalid. Here is an example::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1452 -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1472 -msgid "Will print::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1458 -msgid "" -"It is also possible to pass values between ``yield()`` and ``resume()``, for " -"example::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1479 -msgid "Coroutines & signals" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1481 -msgid "" -"The real strength of using ``yield`` is when combined with signals. " -"``yield`` can accept two arguments, an object and a signal. When the signal " -"is received, execution will recommence. Here are some examples::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1494 -msgid "" -"Coroutines themselves use the ``completed`` signal when they transition into " -"an invalid state, for example::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1505 -msgid "" -"``my_func`` will only continue execution once both buttons have been pressed." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1508 -msgid "Onready keyword" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1510 -msgid "" -"When using nodes, it's common to desire to keep references to parts of the " -"scene in a variable. As scenes are only warranted to be configured when " -"entering the active scene tree, the sub-nodes can only be obtained when a " -"call to ``Node._ready()`` is made." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1522 -msgid "" -"This can get a little cumbersome, especially when nodes and external " -"references pile up. For this, GDScript has the ``onready`` keyword, that " -"defers initialization of a member variable until ``_ready()`` is called. It " -"can replace the above code with a single line::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1530 -msgid "Assert keyword" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1532 -msgid "" -"The ``assert`` keyword can be used to check conditions in debug builds. " -"These assertions are ignored in non-debug builds. This means that the " -"expression passed as argument won't be evaluated in a project exported in " -"release mode. Due to this, assertions must **not** contain expressions that " -"have side effects. Otherwise, the behavior of the script would vary " -"depending on whether the project is run in a debug build." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1544 -msgid "" -"When running a project from the editor, the project will be paused if an " -"assertion error occurs." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:4 -msgid "GDScript: An introduction to dynamic languages" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:9 -msgid "" -"This tutorial aims to be a quick reference for how to use GDScript more " -"efficiently. It focuses on common cases specific to the language, but also " -"covers a lot of information on dynamically typed languages." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:13 -msgid "" -"It's meant to be especially useful for programmers with little or no " -"previous experience with dynamically typed languages." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:17 -msgid "Dynamic nature" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:20 -msgid "Pros & cons of dynamic typing" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:22 -msgid "" -"GDScript is a Dynamically Typed language. As such, its main advantages are " -"that:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:25 -msgid "The language is simple and easy to learn." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:26 -msgid "Most code can be written and changed quickly and without hassle." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:27 -msgid "Less code written means less errors & mistakes to fix." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:28 -msgid "Easier to read the code (less clutter)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:29 -msgid "No compilation is required to test." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:30 -msgid "Runtime is tiny." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:31 -msgid "Duck-typing and polymorphism by nature." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:33 -msgid "While the main disadvantages are:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:35 -msgid "Less performance than statically typed languages." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:36 -msgid "More difficult to refactor (symbols can't be traced)" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:37 -msgid "" -"Some errors that would typically be detected at compile time in statically " -"typed languages only appear while running the code (because expression " -"parsing is more strict)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:40 -msgid "" -"Less flexibility for code-completion (some variable types are only known at " -"run-time)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:43 -msgid "" -"This, translated to reality, means that Godot+GDScript are a combination " -"designed to create games quickly and efficiently. For games that are very " -"computationally intensive and can't benefit from the engine built-in tools " -"(such as the Vector types, Physics Engine, Math library, etc), the " -"possibility of using C++ is present too. This allows you to still create " -"most of the game in GDScript and add small bits of C++ in the areas that " -"need a performance boost." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:52 -msgid "Variables & assignment" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:54 -msgid "" -"All variables in a dynamically typed language are \"variant\"-like. This " -"means that their type is not fixed, and is only modified through assignment. " -"Example:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:58 -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:80 -msgid "Static:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:66 -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:94 -msgid "Dynamic:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:75 -msgid "As function arguments:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:77 -msgid "" -"Functions are of dynamic nature too, which means they can be called with " -"different arguments, for example:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:107 -msgid "Pointers & referencing:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:109 -msgid "" -"In static languages, such as C or C++ (and to some extent Java and C#), " -"there is a distinction between a variable and a pointer/reference to a " -"variable. The latter allows the object to be modified by other functions by " -"passing a reference to the original one." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:114 -msgid "" -"In C# or Java, everything not a built-in type (int, float, sometimes String) " -"is always a pointer or a reference. References are also garbage-collected " -"automatically, which means they are erased when no longer used. Dynamically " -"typed languages tend to use this memory model, too. Some Examples:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:120 -msgid "C++:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:136 -msgid "Java:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:154 -msgid "GDScript:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:166 -msgid "" -"In GDScript, only base types (int, float, string and the vector types) are " -"passed by value to functions (value is copied). Everything else (instances, " -"arrays, dictionaries, etc) is passed as reference. Classes that inherit :ref:" -"`class_Reference` (the default if nothing is specified) will be freed when " -"not used, but manual memory management is allowed too if inheriting manually " -"from :ref:`class_Object`." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:174 -#: ../../docs/tutorials/shading/shading_reference/shading_language.rst:191 -msgid "Arrays" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:176 -msgid "" -"Arrays in dynamically typed languages can contain many different mixed " -"datatypes inside and are always dynamic (can be resized at any time). " -"Compare for example arrays in statically typed languages:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:203 -msgid "And in GDScript:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:212 -msgid "" -"In dynamically typed languages, arrays can also double as other datatypes, " -"such as lists:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:222 -msgid "Or unordered sets:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:231 -msgid "Dictionaries" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:233 -msgid "" -"Dictionaries are a powerful tool in dynamically typed languages. Most " -"programmers that come from statically typed languages (such as C++ or C#) " -"ignore their existence and make their life unnecessarily more difficult. " -"This datatype is generally not present in such languages (or only in limited " -"form)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:239 -msgid "" -"Dictionaries can map any value to any other value with complete disregard " -"for the datatype used as either key or value. Contrary to popular belief, " -"they are efficient because they can be implemented with hash tables. They " -"are, in fact, so efficient that some languages will go as far as " -"implementing arrays as dictionaries." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:245 -msgid "Example of Dictionary:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:252 -msgid "" -"Dictionaries are also dynamic, keys can be added or removed at any point at " -"little cost:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:261 -msgid "" -"In most cases, two-dimensional arrays can often be implemented more easily " -"with dictionaries. Here's a simple battleship game example:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:294 -msgid "" -"Dictionaries can also be used as data markup or quick structures. While " -"GDScript's dictionaries resemble python dictionaries, it also supports Lua " -"style syntax and indexing, which makes it useful for writing initial states " -"and quick structs:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:318 -msgid "For & while" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:320 -msgid "Iterating in some statically typed languages can be quite complex:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:341 -msgid "This is usually greatly simplified in dynamically typed languages:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:348 -msgid "" -"Container datatypes (arrays and dictionaries) are iterable. Dictionaries " -"allow iterating the keys:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:356 -msgid "Iterating with indices is also possible:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:363 -msgid "The range() function can take 3 arguments:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:371 -msgid "Some statically typed programming language examples:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:381 -msgid "Translate to:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:394 -msgid "And backwards looping is done through a negative counter:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:400 -msgid "Becomes:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:408 -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:384 -msgid "While" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:410 -msgid "while() loops are the same everywhere:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:421 -msgid "Custom iterators" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:422 -msgid "" -"You can create custom iterators in case the default ones don't quite meet " -"your needs by overriding the Variant class's ``_iter_init``, ``_iter_next``, " -"and ``_iter_get`` functions in your script. An example implementation of a " -"forward iterator follows:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:454 -msgid "And it can be used like any other iterator:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:462 -msgid "" -"Make sure to reset the state of the iterator in ``_iter_init``, otherwise " -"nested for-loops that use custom iterators will not work as expected." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:466 -msgid "Duck typing" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:468 -msgid "" -"One of the most difficult concepts to grasp when moving from a statically " -"typed language to a dynamic one is duck typing. Duck typing makes overall " -"code design much simpler and straightforward to write, but it's not obvious " -"how it works." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:473 -msgid "" -"As an example, imagine a situation where a big rock is falling down a " -"tunnel, smashing everything on its way. The code for the rock, in a " -"statically typed language would be something like:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:484 -msgid "" -"This way, everything that can be smashed by a rock would have to inherit " -"Smashable. If a character, enemy, piece of furniture, small rock were all " -"smashable, they would need to inherit from the class Smashable, possibly " -"requiring multiple inheritance. If multiple inheritance was undesired, then " -"they would have to inherit a common class like Entity. Yet, it would not be " -"very elegant to add a virtual method ``smash()`` to Entity only if a few of " -"them can be smashed." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:492 -msgid "" -"With dynamically typed languages, this is not a problem. Duck typing makes " -"sure you only have to define a ``smash()`` function where required and " -"that's it. No need to consider inheritance, base classes, etc." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:501 -msgid "" -"And that's it. If the object that hit the big rock has a smash() method, it " -"will be called. No need for inheritance or polymorphism. Dynamically typed " -"languages only care about the instance having the desired method or member, " -"not what it inherits or the class type. The definition of Duck Typing should " -"make this clearer:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:507 -msgid "" -"*\"When I see a bird that walks like a duck and swims like a duck and quacks " -"like a duck, I call that bird a duck\"*" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:510 -msgid "In this case, it translates to:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:512 -msgid "" -"*\"If the object can be smashed, don't care what it is, just smash it.\"*" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:514 -msgid "Yes, we should call it Hulk typing instead." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:516 -msgid "" -"It's possible that the object being hit doesn't have a smash() function. " -"Some dynamically typed languages simply ignore a method call when it doesn't " -"exist (like Objective C), but GDScript is stricter, so checking if the " -"function exists is desirable:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:527 -msgid "" -"Then, simply define that method and anything the rock touches can be smashed." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:4 -msgid "GDScript exports" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:7 -msgid "Introduction to exports" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:9 -msgid "" -"In Godot, class members can be exported. This means their value gets saved " -"along with the resource (such as the :ref:`scene `) " -"they're attached to. They will also be available for editing in the property " -"editor. Exporting is done by using the ``export`` keyword::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:18 -msgid "" -"An exported variable must be initialized to a constant expression or have an " -"export hint in the form of an argument to the ``export`` keyword (see the " -"*Examples* section below)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:22 -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." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:29 -msgid "" -"Exporting properties can also be done in other languages such as C#. The " -"syntax varies depending on the language." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:33 -#: ../../docs/tutorials/physics/using_area_2d.rst:132 -#: ../../docs/tutorials/physics/using_kinematic_body_2d.rst:142 -#: ../../docs/development/compiling/compiling_with_mono.rst:111 -msgid "Examples" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:119 -msgid "" -"It must be noted that even if the script is not being run while in the " -"editor, the exported properties are still editable. This can be used in " -"conjunction with a :ref:`script in \"tool\" mode `." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:124 -msgid "Exporting bit flags" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:126 -msgid "" -"Integers used as bit flags can store multiple ``true``/``false`` (boolean) " -"values in one property. By using the export hint ``int, FLAGS``, they can be " -"set from the editor::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:133 -msgid "" -"Restricting the flags to a certain number of named flags is also possible. " -"The syntax is similar to the enumeration syntax::" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:139 -msgid "" -"In this example, ``Fire`` has value 1, ``Water`` has value 2, ``Earth`` has " -"value 4 and ``Wind`` corresponds to value 8. Usually, constants should be " -"defined accordingly (e.g. ``const ELEMENT_WIND = 8`` and so on)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:144 -msgid "" -"Using bit flags requires some understanding of bitwise operations. If in " -"doubt, boolean variables should be exported instead." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:148 -msgid "Exporting arrays" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_exports.rst:150 -msgid "" -"Exporting arrays works, but with an important caveat: while regular arrays " -"are created local to every class instance, exported arrays are *shared* " -"between all instances. This means that editing them in one instance will " -"cause them to change in all other instances. Exported arrays can have " -"initializers, but they must be constant expressions." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:4 -msgid "GDScript style guide" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:9 -msgid "" -"This styleguide lists conventions to write elegant GDScript. The goal is to " -"encourage writing clean, readable code and promote consistency across " -"projects, discussions, and tutorials. Hopefully, this will also encourage " -"development of auto-formatting tools." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:14 -msgid "" -"Since GDScript is close to Python, this guide is inspired by Python's `PEP 8 " -"`__ programming styleguide." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:18 -msgid "" -"Godot's built-in script editor uses a lot of these conventions by default. " -"Let it help you." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:22 -msgid "Code structure" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:25 -msgid "Indentation" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:27 -msgid "Indent type: Tabs *(editor default)*" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:29 -msgid "Indent size: 4 *(editor default)*" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:31 -msgid "Each indent level should be one greater than the block containing it." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:33 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:53 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:96 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:120 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:140 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:222 -msgid "**Good**:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:40 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:61 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:106 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:127 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:150 -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:230 -msgid "**Bad**:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:50 -msgid "" -"Use 2 indent levels to distinguish continuation lines from regular code " -"blocks." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:70 -msgid "Blank lines" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:72 -msgid "Surround functions and class definitions with two blank lines:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:87 -msgid "Use one blank line inside functions to separate logical sections." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:90 -msgid "One statement per line" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:92 -msgid "" -"Never combine multiple statements on a single line. No, C programmers, not " -"with a single line conditional statement (except with the ternary operator)!" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:115 -msgid "Avoid unnecessary parentheses" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:117 -msgid "" -"Avoid parentheses in expressions and conditional statements. Unless " -"necessary for order of operations, they only reduce readability." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:135 -msgid "Whitespace" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:137 -msgid "" -"Always use one space around operators and after commas. Avoid extra spaces " -"in dictionary references and function calls, or to create \"columns.\"" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:160 -msgid "**NEVER**:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:169 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:191 -msgid "Naming conventions" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:171 -msgid "" -"These naming conventions follow the Godot Engine style. Breaking these will " -"make your code clash with the built-in naming conventions, which is ugly." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:176 -msgid "Classes and nodes" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:178 -msgid "Use PascalCase: ``extends KinematicBody``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:180 -msgid "Also when loading a class into a constant or variable:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:187 -msgid "Functions and variables" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:189 -msgid "Use snake\\_case: ``get_node()``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:191 -msgid "" -"Prepend a single underscore (\\_) to virtual methods (functions the user " -"must override), private functions, and private variables: ``func _ready()``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:198 -msgid "Use past tense:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:208 -msgid "" -"Use CONSTANT\\_CASE, all caps, with an underscore (\\_) to separate words: " -"``const MAX_SPEED = 200``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:212 -msgid "Static typing" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:214 -msgid "" -"Since Godot 3.1, GDScript supports :ref:`optional static " -"typing`." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:217 -msgid "Type hints" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:219 -msgid "" -"Place the colon right after the variable's name, without a space, and let " -"the GDScript compiler infer the variable's type when possible." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:238 -msgid "" -"When you let the compiler infer the type hint, write the colon and equal " -"signs together: ``:=``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:244 -msgid "" -"Add a space on either sides of the return type arrow when defining functions." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:4 -msgid "Static typing in GDScript" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:6 -#: ../../docs/tutorials/physics/physics_introduction.rst:16 -msgid "In this guide, you will learn:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:8 -msgid "**How to use types in GDScript**" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:9 -msgid "That **static types can help you avoid bugs**" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:11 -msgid "" -"Where and how you use this new language feature is entirely up to you: you " -"can use it only in some sensitive GDScript files, use it everywhere, or " -"write code like you always did!" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:15 -msgid "" -"Static types can be used on variables, constants, functions, parameters, and " -"return types." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:20 -msgid "Typed GDScript is available since Godot 3.1." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:23 -msgid "A brief look at static typing" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:25 -msgid "" -"With typed GDScript, Godot can detect even more errors as you write code! It " -"gives you and your teammates more information as you’re working, as the " -"arguments’ types show up when you call a method." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:29 -msgid "" -"Imagine you’re programming an inventory system. You code an ``Item`` node, " -"then an ``Inventory``. To add items to the inventory, the people who work " -"with your code should always pass an ``Item`` to the ``Inventory.add`` " -"method. With types, you can enforce this:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:48 -msgid "" -"Another significant advantage of typed GDScript is the new **warning " -"system**. From version 3.1, Godot gives you warnings about your code as you " -"write it: the engine identifies sections of your code that may lead to " -"issues at runtime, but lets you decide whether or not you want to leave the " -"code as it is. More on that in a moment." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:54 -msgid "" -"Static types also give you better code completion options. Below, you can " -"see the difference between a dynamic and a static typed completion options " -"for a class called ``PlayerController``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:58 -msgid "" -"You’ve probably stored a node in a variable before, and typed a dot to be " -"left with no autocomplete suggestions:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:64 -msgid "" -"This is due to dynamic code. Godot cannot know what node or value type " -"you’re passing to the function. If you write the type explicitly however, " -"you will get all public methods and variables from the node:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:71 -msgid "" -"In the future, typed GDScript will also increase code performance: Just-In-" -"Time compilation and other compiler improvements are already on the roadmap!" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:75 -msgid "" -"Overall, typed programming gives you a more structured experience. It helps " -"prevent errors and improves the self-documenting aspect of your scripts. " -"This is especially helpful when you’re working in a team or on a long-term " -"project: studies have shown that developers spend most of their time reading " -"other people’s code, or scripts they wrote in the past and forgot about. The " -"clearer and the more structured the code, the faster it is to understand, " -"the faster you can move forward." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:84 -msgid "How to use static typing" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:86 -msgid "" -"To define the type of a variable or a constant, write a colon after the " -"variable’s name, followed by its type. E.g. ``var health: int``. This forces " -"the variable's type to always stay the same:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:95 -msgid "" -"Godot will try to infer types if you write a colon, but you omit the type:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:104 -msgid "Currently you can use three types of… types:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:106 -msgid ":ref:`Built-in `" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:107 -msgid "" -"Core classes and nodes (``Object``, ``Node``, ``Area2D``, ``Camera2D``, etc.)" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:109 -msgid "" -"Your own, custom classes. Look at the new :ref:`class_name " -"` feature to register types in the " -"editor." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:114 -msgid "" -"You don't need to write type hints for constants, as Godot sets it " -"automatically from the assigned value. But you can still do so to make the " -"intent of your code clearer." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:117 -msgid "Custom variable types" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:119 -msgid "" -"You can use any class, including your custom classes, as types. There are " -"two ways to use them in scripts. The first method is to preload the script " -"you want to use as a type in a constant:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:128 -msgid "" -"The second method is to use the ``class_name`` keyword when you create. For " -"the example above, your Rifle.gd would look like this:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:136 -msgid "" -"If you use ``class_name``, Godot registers the Rifle type globally in the " -"editor, and you can use it anywhere, without having to preload it into a " -"constant:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:145 -msgid "Variable casting" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:147 -msgid "" -"Type casting is a key concept in typed languages. Casting is the conversion " -"of a value from one type to another." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:150 -msgid "" -"Imagine an Enemy in your game, that ``extends Area2D``. You want it to " -"collide with the Player, a ``KinematicBody2D`` with a script called " -"``PlayerController`` attached to it. You use the ``on_body_entered`` signal " -"to detect the collision. With typed code, the body you detect is going to be " -"a generic ``PhysicsBody2D``, and not your ``PlayerController`` on the " -"``_on_body_entered`` callback." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:157 -msgid "" -"You can check if this ``PhysicsBody2D`` is your Player with the ``as`` " -"casting keyword, and using the colon ``:`` again to force the variable to " -"use this type. This forces the variable to stick to the ``PlayerController`` " -"type:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:170 -msgid "" -"As we’re dealing with a custom type, if the ``body`` doesn’t extend " -"``PlayerController``, the ``player``\\ variable will be set to ``null``. We " -"can use this to check if the body is the player or not. We will also get " -"full autocompletion on the player variable thanks to that cast." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:177 -msgid "" -"If you try to cast with a built-in type and it fails, Godot will throw an " -"error." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:180 -msgid "Safe lines" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:182 -msgid "" -"You can also use casting to ensure safe lines. Safe lines are a new tool in " -"Godot 3.1 to tell you when ambiguous lines of code are type-safe. As you can " -"mix and match typed and dynamic code, at times, Godot doesn’t have enough " -"information to know if an instruction will trigger an error or not at " -"runtime." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:188 -msgid "" -"This happens when you get a child node. Let’s take a timer for example: with " -"dynamic code, you can get the node with ``$Timer``. GDScript supports `duck-" -"typing `__, so even if your " -"timer is of type ``Timer``, it is also a ``Node`` and an ``Object``, two " -"classes it extends. With dynamic GDScript, you also don’t care about the " -"node’s type as long as it has the methods you need to call." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:196 -msgid "" -"You can use casting to tell Godot the type you expect when you get a node: " -"``($Timer as Timer)``, ``($Player as KinematicBody2D)``, etc. Godot will " -"ensure the type works and if so, the line number will turn green at the left " -"of the script editor." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:204 -msgid "Safe vs Unsafe Line" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:208 -msgid "" -"You can turn off safe lines or change their color in the editor settings." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:211 -msgid "Define the return type of a function with the arrow ->" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:213 -msgid "" -"To define the return type of a function, write a dash and a right angle " -"bracket ``->`` after its declaration, followed by the return type:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:221 -msgid "" -"The type ``void`` means the function does not return anything. You can use " -"any type, as with variables:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:230 -msgid "You can also use your own nodes as return types:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:245 -msgid "Typed or dynamic: stick to one style" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:247 -msgid "" -"Typed GDScript and dynamic GDScript can coexist in the same project. But I " -"recommended to stick to either style for consistency in your codebase, and " -"for your peers. It’s easier for everyone to work together if you follow the " -"same guidelines, and faster to read and understand other people’s code." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:253 -msgid "" -"Typed code takes a little more writing, but you get the benefits we " -"discussed above. Here’s an example of the same, empty script, in a dynamic " -"style:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:265 -msgid "And with static typing:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:275 -msgid "" -"As you can see, you can also use types with the engine’s virtual methods. " -"Signal callbacks, like any methods, can also use types. Here’s a " -"``body_entered`` signal in a dynamic style:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:284 -msgid "And the same callback, with type hints:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:291 -msgid "" -"You’re free to replace, e.g. the ``CollisionObject2D``, with your own type, " -"to cast parameters automatically:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:301 -msgid "" -"The ``bullet`` variable could hold any ``CollisionObject2D`` here, but we " -"make sure it is our ``Bullet``, a node we created for our project. If it’s " -"anything else, like an ``Area2D``, or any node that doesn’t extend " -"``Bullet``, the ``bullet`` variable will be ``null``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:307 -msgid "Warning system" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:309 -msgid "" -"The warning system complements typed GDScript. It’s here to help you avoid " -"mistakes that are hard to spot during development, and that may lead to " -"runtime errors." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:313 -msgid "" -"You can configure warnings in the Project Settings under a new section " -"called ``GDScript``:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:319 -msgid "warning system project settings" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:321 -msgid "" -"You can find a list of warnings for the active GDScript file in the script " -"editor’s status bar. The example below has 3 warnings:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:327 -msgid "warning system example" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:329 -msgid "" -"To ignore specific warnings in one file, insert a special comment of the " -"form ``#warning-ignore:warning-id``, or click on the ignore link to the " -"right of the warning’s description. Godot will add a comment above the " -"corresponding line and the code won’t trigger the corresponding warning " -"anymore:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:338 -msgid "warning system ignore example" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:340 -msgid "" -"Warnings won’t prevent the game from running, but you can turn them into " -"errors if you’d like. This way your game won’t compile unless you fix all " -"warnings. Head to the ``GDScript`` section of the Project Settings to turn " -"on this option. Here’s the same file as the previous example with warnings " -"as errors turned on:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:349 -msgid "warnings as errors" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:352 -msgid "Cases where you can’t specify types" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:354 -msgid "" -"To wrap up this introduction, let’s cover a few cases where you can’t use " -"type hints. All the examples below **will trigger errors**." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:357 -msgid "You can’t use Enums as types:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:364 -msgid "" -"You can’t specify the type of individual members in an array. This will give " -"you an error:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:371 -msgid "" -"You can’t force the assignment of types in a ``for`` loop, as each element " -"the ``for`` keyword loops over already has a different type. So you " -"**cannot** write:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:381 -msgid "Two scripts can’t depend on each other in a cyclic fashion:" -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 "" - -#: ../../docs/getting_started/scripting/gdscript/static_typing.rst:402 -msgid "" -"Typed GDScript is a powerful tool. Available as of version 3.1 of Godot, it " -"helps you write more structured code, avoid common errors, and create " -"scalable systems. In the future, static types will also bring you a nice " -"performance boost thanks to upcoming compiler optimizations." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:4 -msgid "GDScript format strings" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:6 -msgid "" -"GDScript offers a feature called *format strings*, which allows reusing text " -"templates to succinctly create different but similar strings." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:9 -msgid "" -"Format strings are just like normal strings, except they contain certain " -"placeholder character-sequences. These placeholders can then easily be " -"replaced by parameters handed to the format string." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:13 -msgid "" -"As an example, with ``%s`` as a placeholder, the format string ``\"Hello %s, " -"how are you?`` can easily be changed to ``\"Hello World, how are you?\"``. " -"Notice the placeholder is in the middle of the string; modifying it without " -"format strings could be cumbersome." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:20 -msgid "Usage in GDScript" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:22 -msgid "Examine this concrete GDScript example:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:35 -msgid "" -"Placeholders always start with a ``%``, but the next character or " -"characters, the *format specifier*, determines how the given value is " -"converted to a string." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:39 -msgid "" -"The ``%s`` seen in the example above is the simplest placeholder and works " -"for most use cases: it converts the value by the same method by which an " -"implicit String conversion or ``str()`` would convert it. Strings remain " -"unchanged, Booleans turn into either ``\"True\"`` or ``\"False\"``, an " -"integral or real number becomes a decimal, other types usually return their " -"data in a human-readable string." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:46 -msgid "" -"There is also another way to format text in GDScript, namely the ``String." -"format()`` method. It replaces all occurrences of a key in the string with " -"the corresponding value. The method can handle arrays or dictionaries for " -"the key/value pairs." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:50 -msgid "" -"Arrays can be used as key, index, or mixed style (see below examples). Order " -"only matters when the index or mixed style of Array is used." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:53 -msgid "A quick example in GDScript:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:66 -msgid "" -"There are other `format specifiers`_, but they are only applicable when " -"using the ``%`` operator." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:71 -msgid "Multiple placeholders" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:73 -msgid "" -"Format strings may contain multiple placeholders. In such a case, the values " -"are handed in the form of an array, one value per placeholder (unless using " -"a format specifier with ``*``, see `dynamic padding`_):" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:85 -msgid "" -"Note the values are inserted in order. Remember all placeholders must be " -"replaced at once, so there must be an appropriate number of values." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:90 -msgid "Format specifiers" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:92 -msgid "" -"There are format specifiers other than ``s`` that can be used in " -"placeholders. They consist of one or more characters. Some of them work by " -"themselves like ``s``, some appear before other characters, some only work " -"with certain values or characters." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:99 -msgid "Placeholder types" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:101 -msgid "" -"One and only one of these must always appear as the last character in a " -"format specifier. Apart from ``s``, these require certain types of " -"parameters." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:105 -msgid "``s``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:105 -msgid "" -"**Simple** conversion to String by the same method as implicit String " -"conversion." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:108 -msgid "``c``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:108 -msgid "" -"A single **Unicode character**. Expects an unsigned 8-bit integer (0-255) " -"for a code point or a single-character string." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:111 -msgid "``d``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:111 -msgid "" -"A **decimal integral** number. Expects an integral or real number (will be " -"floored)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:114 -msgid "``o``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:114 -msgid "" -"An **octal integral** number. Expects an integral or real number (will be " -"floored)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:117 -msgid "``x``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:117 -msgid "" -"A **hexadecimal integral** number with **lower-case** letters. Expects an " -"integral or real number (will be floored)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:120 -msgid "``X``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:120 -msgid "" -"A **hexadecimal integral** number with **upper-case** letters. Expects an " -"integral or real number (will be floored)." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:123 -msgid "``f``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:123 -msgid "A **decimal real** number. Expects an integral or real number." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:128 -msgid "Placeholder modifiers" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:130 -msgid "" -"These characters appear before the above. Some of them work only under " -"certain conditions." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:134 -msgid "In number specifiers, **show + sign** if positive." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:136 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:94 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:103 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:121 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:312 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:332 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:334 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:342 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:361 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:373 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:385 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:398 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:400 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:409 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:411 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:420 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:428 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:441 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:454 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:469 -msgid "Integer" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:136 -msgid "" -"Set **padding**. Padded with spaces or with zeroes if integer starts with " -"``0`` in an integer placeholder. When used after ``.``, see ``.``." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:140 -msgid "``.``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:140 -msgid "" -"Before ``f``, set **precision** to 0 decimal places. Can be followed up with " -"numbers to change. Padded with zeroes." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:143 -msgid "**Pad to the right** rather than the left." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:145 -msgid "``*``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:145 -msgid "" -"**Dynamic padding**, expect additional integral parameter to set padding or " -"precision after ``.``, see `dynamic padding`_." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:151 -msgid "Padding" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:153 -msgid "" -"The ``.`` (*dot*), ``*`` (*asterisk*), ``-`` (*minus sign*) and digit (``0``-" -"``9``) characters are used for padding. This allows printing several values " -"aligned vertically as if in a column, provided a fixed-width font is used." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:158 -msgid "To pad a string to a minimum length, add an integer to the specifier:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:166 -msgid "" -"If the integer starts with ``0``, integral values are padded with zeroes " -"instead of white space:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:174 -msgid "" -"Precision can be specified for real numbers by adding a ``.`` (*dot*) with " -"an integer following it. With no integer after ``.``, a precision of 0 is " -"used, rounding to integral value. The integer to use for padding must appear " -"before the dot." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:186 -msgid "" -"The ``-`` character will cause padding to the right rather than the left, " -"useful for right text alignment:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:197 -msgid "Dynamic padding" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:199 -msgid "" -"By using the ``*`` (*asterisk*) character, the padding or precision can be " -"set without modifying the format string. It is used in place of an integer " -"in the format specifier. The values for padding and precision are then " -"passed when formatting:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:212 -msgid "" -"It is still possible to pad with zeroes in integer placeholders by adding " -"``0`` before ``*``:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:222 -msgid "Escape sequence" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:224 -msgid "" -"To insert a literal ``%`` character into a format string, it must be escaped " -"to avoid reading it as a placeholder. This is done by doubling the character:" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:235 -msgid "Format method examples" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:237 -msgid "" -"The following are some examples of how to use the various invocations of the " -"``String.format`` method." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:242 -msgid "**Style**" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:242 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:264 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:277 -msgid "**Example**" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:242 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:264 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:277 -msgid "**Result**" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:244 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:246 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:248 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:277 -msgid "Dictionary" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:244 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:250 -msgid "key" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:244 -msgid "" -"``\"Hi, {name} v{version}!\".format({\"name\":\"Godette\", \"version\":" -"\"3.0\"})``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:244 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:246 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:248 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:250 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:252 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:254 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:256 -msgid "Hi, Godette v3.0!" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:246 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:252 -msgid "index" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:246 -msgid "``\"Hi, {0} v{1}!\".format({\"0\":\"Godette\", \"1\":\"3.0\"})``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:248 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:254 -msgid "mix" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:248 -msgid "" -"``\"Hi, {0} v{version}!\".format({\"0\":\"Godette\", \"version\":\"3.0\"})``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:250 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:252 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:254 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:256 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:256 -msgid "Array" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:250 -msgid "" -"``\"Hi, {name} v{version}!\".format([[\"version\",\"3.0\"], [\"name\"," -"\"Godette\"]])``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:252 -msgid "``\"Hi, {0} v{1}!\".format([\"Godette\",\"3.0\"])``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:254 -msgid "``\"Hi, {name} v{0}!\".format([3.0, [\"name\",\"Godette\"]])``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:256 -msgid "no index" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:256 -msgid "``\"Hi, {} v{}!\".format([\"Godette\", 3.0], \"{}\")``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:259 -msgid "" -"Placeholders can also be customized when using ``String.format``, here's " -"some examples of that functionality." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:266 -msgid "Infix (default)" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:266 -msgid "``\"Hi, {0} v{1}\".format([\"Godette\", \"3.0\"], \"{_}\")``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:266 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:268 -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:270 -msgid "Hi, Godette v3.0" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:268 -msgid "Postfix" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:268 -msgid "``\"Hi, 0% v1%\".format([\"Godette\", \"3.0\"], \"_%\")``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:270 -msgid "Prefix" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:270 -msgid "``\"Hi, %0 v%1\".format([\"Godette\", \"3.0\"], \"%_\")``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:273 -msgid "" -"Combining both the ``String.format`` method and the ``%`` operator could be " -"useful, as ``String.format`` does not have a way to manipulate the " -"representation of numbers." -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:279 -msgid "" -"``\"Hi, {0} v{version}\".format({0:\"Godette\", \"version\":\"%0.2f\" % " -"3.114})``" -msgstr "" - -#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:279 -msgid "Hi, Godette v3.11" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/what_is_visual_scripting.rst:4 -msgid "What is Visual Scripting" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/what_is_visual_scripting.rst:6 -msgid "" -"Visual Scripting is a tool designed to make the entry barrier to programming " -"much lower. As code is more visual, it needs less abstract thinking to be " -"understood. Any artist, animator, game designer, etc. can look at it and " -"quickly grasp the flow of logic." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/what_is_visual_scripting.rst:11 -msgid "" -"The reason it does not make existing programming obsolete is, simply, that " -"it does not scale as well. It takes considerably more time to create code " -"with it, and it's often more difficult to modify than just writing a few " -"characters." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/what_is_visual_scripting.rst:15 -msgid "" -"With the misunderstanding cleared up, the question that remains is what are " -"the practical uses for Visual Scripting." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/what_is_visual_scripting.rst:18 -msgid "The most common use cases are as follows:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/what_is_visual_scripting.rst:20 -msgid "" -"Game development beginners who want to learn an engine but have no " -"programming experience yet." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/what_is_visual_scripting.rst:21 -msgid "" -"Artists and Game Designers who have no experience in programming and want to " -"create quick prototypes or simple games." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/what_is_visual_scripting.rst:22 -msgid "" -"Programmers working in a team that want to make part of the game logic " -"available to Artists or Game Designers in order to offload some of their " -"work." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/what_is_visual_scripting.rst:24 -msgid "" -"These scenarios are far more common than one might think, so this is why " -"Godot has added this feature." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:4 -msgid "Getting started with Visual Scripting" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:6 -msgid "" -"As with everything in Godot, we prioritize a good experience over copying or " -"integrating third party solutions which might not fit nicely in the current " -"workflow. This led us to write our own version of how we believe this " -"feature would work best with the engine." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:10 -msgid "" -"In Godot, a Visual Script fits smoothly together with regular scripts in the " -"Editor tab" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:15 -msgid "" -"In fact, Visual Scripting integrates so well to Godot that it's hard to " -"believe it was added only in version 3.0. This is because, when editing, the " -"rest of Godot panels and docks act like a palette from where you can drag " -"and drop all sorts of information to the script canvas:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:23 -msgid "Creating a script" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:25 -msgid "" -"Creating scripts works the same as with other scripting languages: Select " -"any node in the scene and push the \"New Script\" button at the top right " -"corner of the Scene Tree dock:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:31 -msgid "" -"Once it opens, the script type \"Visual Script\" must be selected from the " -"drop down list. The script extension must be \".vs\" (for Visual Script!)." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:37 -msgid "" -"Finally, the Script Editor will open, allowing you to start editing the " -"visual script:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:43 -msgid "Adding a function" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:45 -msgid "" -"Unlike other visual scripting implementations, Visual Scripting in Godot is " -"heavily based on functions. This happens because it uses the same interface " -"to communicate with the engine as other scripting engines. In Godot, the " -"scripting interface is universal and all implementations conform to it." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:49 -msgid "A function is an individual canvas with nodes connected." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:51 -msgid "" -"A single script can contain many functions, each of which will have a canvas " -"of its own, allowing for more organization." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:53 -msgid "There are three main ways to add functions in a script:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:56 -msgid "Overriding a virtual function" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:58 -msgid "" -"Most types of nodes and other types of objects in Godot contain virtual " -"functions. These are functions that will be called (run your code) when " -"something happens and can be looked up in the reference. Virtual functions " -"are listed when pressing the \"Override\" icon in the member panel:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:65 -msgid "" -"In the following example, a function will be executed when the node is " -"loaded and added to the running scene. For this, the _ready() virtual method " -"will be overridden:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:71 -msgid "Finally, a canvas appears for this function, showing the override:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:76 -msgid "" -"As some functions expect you to return a value, they will also add a return " -"node where such value is supposed to be provided:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:83 -msgid "Connecting a signal to a function" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:85 -msgid "" -"Nodes in a tree emit signals when something happens. Godot uses signals for " -"all sorts of things. A typical example would be a button that emits a " -"\"pressed\" signal when actually pressed." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:88 -msgid "" -"For this, a node must be selected and the Node tab opened. This will allow " -"inspecting the signals. Once they are displayed, connect the \"pressed\" " -"signal:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:94 -msgid "" -"This will open the connection dialog. In this dialog, you must select the " -"node where the signal will be connected to, and the function that will " -"receive the signal:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:100 -msgid "" -"If this is done right, a new function will be created in our script and a " -"signal will automatically be connected to it:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:107 -msgid "Creating a function manually" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:109 -msgid "" -"The last way to create functions is to do it manually. In general, this is " -"not as common unless you really need it. Custom functions work when another " -"(or the same) script calls them manually. The main use cases for this are " -"breaking a larger function up into several manageable chunks and reusing " -"your visual code." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:113 -msgid "" -"To create a function manually, push the big \"Plus\" button, and a new " -"function will be added with a default name:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:119 -msgid "" -"This will add a new function, which can be renamed by simply double clicking " -"its name:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:125 -msgid "" -"To edit the \"arguments\" this function can get (the values you pass to it " -"when you call this function), simply click the Function node and check the " -"inspector:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/getting_started.rst:131 -msgid "More on that will be explained later in this document." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:4 -msgid "Nodes and terminology" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:6 -msgid "" -"Before continuing, it must be noted that the *Node* terminology needs to be " -"used with care. When referring to *Visual Script Nodes* (or generally " -"*Nodes*) this text will refer to the little boxes you connect with lines, " -"which are part of a graph. When referring to *Scene Nodes*, it is implied " -"that the elements that make up a Scene are being referred, which are part of " -"a tree. Their naming is similar but their function is different. When " -"referring to *Node* here, it will be implied that a *Visual Script Node* is " -"referred to unless indicated otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:15 -msgid "Node properties" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:17 -msgid "" -"Like in most visual scripting implementations, each node has editable " -"properties. In Godot, though, we try to avoid bloating the nodes with " -"editable controls for the sake of readability." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:20 -msgid "" -"Nodes still display the required information as text, but editing is done " -"via the *Inspector*. To edit them, select any node and edit its properties " -"in the *Inspector*." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:25 -msgid "Ports and connections" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:27 -msgid "" -"Programming in Godot Visual Scripting is done via *Nodes* and *Port " -"Connections* inside each function." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:31 -msgid "Ports" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:33 -msgid "" -"Nodes in Godot Visual Scripting have *Ports*. These are endpoints that " -"appear to the left and right of nodes and which can be used to make " -"*Connections*: There are two types of *Ports*: *Sequence* and *Data*." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:40 -msgid "" -"*Sequence Ports* indicate the order in which operations are executed. " -"Typically when a *Node* is done processing, it will go to the next node from " -"one of the ports at the right. If nothing is connected, the function may " -"end, or another output *Sequence Port* might be tried (this depends on the " -"node). Thanks to this, you can follow the logic flow within a function by " -"following the white lines. Not every *Node* has *Sequence Ports*. In fact, " -"most do not." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:46 -msgid "" -"*Data Ports* ports contain typed values. Types can be any regular Godot " -"types, such as a boolean, an integer, a string, a Vector3, an array, any " -"Object or Scene Node, etc. A *Data Port* on the right side of a node is " -"considered an output, while, a port on the left side is an input. Connecting " -"them allows information to flow to the next node." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:51 -msgid "" -"Not all *Data Port* types are compatible and will allow connections, though. " -"Pay special attention to colors and icons, as each type has a different " -"representation:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:58 -#: ../../docs/development/file_formats/tscn.rst:27 -msgid "Connections" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:60 -msgid "" -"Connecting is a relatively simple process. Drag an *Output Port* towards an " -"*Input Port*." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:65 -msgid "" -"Disconnecting takes a bit more practice. Disconnecting in *Data Ports* " -"happens by dragging the *Input* away, while for *Sequence Ports*, this " -"happens by dragging the *Output* away." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:71 -msgid "" -"This may seem strange at first, but it happens because *Data Ports* are 1:N " -"(A single output port can connect to many inputs), while *Sequence Ports* " -"are N:1 (Many sequence outputs can be connected to a single input)." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:75 -msgid "" -"Connecting to empty space (drag to connect but unpress over empty space) is " -"also context sensitive, it will supply a list of most common operations. For " -"sequences, it will be conditional nodes:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:81 -msgid "While, for data, a contextual set/get/call menu will open:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:87 -msgid "Adding nodes" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:89 -msgid "" -"Finally! We got to the fun part! But, before explaining in more detail what " -"each type of node does, let's take a short look at how nodes are most " -"commonly added and dealt with." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:94 -msgid "Accessing scene nodes" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:96 -msgid "" -"One of the most common tasks is accessing Scene Tree Nodes (again, not to " -"mistake with *Visual Script Nodes*). Dragging from the Scene Tree and " -"dropping into the canvas will ask you to *call a method* (sometimes referred " -"to as *member function*) on this node." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:102 -msgid "" -"While accessing properties is desired in most cases (more on that below), " -"sometimes *calling methods* can be useful too. Methods execute specific " -"actions on objects. In the above case, the mouse pointer can be warped to a " -"position in local coordinates to the control. Another common use case is " -"queueing a node for deletion, which is done with the *queue_free* method." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:109 -msgid "" -"Care must be taken that this only works if the scene being edited contains " -"your *Visual Script* in one of the nodes! Otherwise, a warning will be shown." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:113 -msgid "Accessing scene node properties" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:115 -msgid "" -"This is the most common way to edit *Scene Nodes* in Visual Scripting. " -"Select a *Scene Node* from the *Scene Tree*, go to the Inspector, find *the " -"Name* of the property you want to edit (hint, *not* the value!) and drag it " -"to the canvas:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:120 -msgid "" -"The result is that this value can be changed from your script by writing to " -"a *Data Port*." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:122 -msgid "" -"If instead reading this value is desired, drag the node again but hold the " -"*Control* key (or Command on Mac). This will create a getter:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:127 -msgid "In this case, the value can be read from a *Data Port*." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:133 -msgid "" -"Variables are memory containers local to the script which can hold a value. " -"This value can be read from any of the functions of the script or from other " -"scripts via the method described in the previous step." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:135 -msgid "" -"To add a Variable, push the \"+\" button on the *Variables* section of the " -"Members panel. Double-click the new variable to rename it:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:140 -msgid "Right-clicking the variable allows you to configure its properties:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:147 -msgid "" -"As it can be seen above, the type and initial value of the variable can be " -"changed, as well as some property hints. Ticking the \"Export\" option makes " -"the variable visible in the Inspector when selecting the node. This also " -"makes it available to other scripts via the method described in the previous " -"step." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:153 -msgid "" -"To use the variable in the script, simply drag it to the canvas to create a " -"getter:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:158 -msgid "Likewise, hold *Control* (*Command* on Mac) to drop a setter:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:166 -msgid "" -"It is also possible to create your own signals in a script and use them. For " -"this, do the same steps you did for variables in the previous step, except " -"for *Signals*:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:171 -msgid "" -"A signal can also be edited via the right-click menu to customize its " -"arguments:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:176 -msgid "" -"The signal you have created will appear in the Inspector, along with the " -"built-in node signals. This allows you to connect it from another script " -"from another *Scene Node*:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:181 -msgid "Finally, to emit the signal, simply drag it to the canvas:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:186 -msgid "" -"Remember that emitting a signal is a sequenced operation, so it must come " -"from a Sequence port." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:190 -msgid "Adding more nodes" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:192 -msgid "" -"Now that the basics are covered, let's discuss the large amount of utility " -"nodes available for your canvas! Below the member panel, exists the list of " -"all available node types:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:198 -msgid "Ctrl-F (Command-F on Mac) allows you to search the list." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:200 -msgid "" -"Any of them can be dragged to the scene. Unlike nodes (e.g. dragging a " -"property from the Inspector sets the context to the node being edited " -"automatically), these are added without any \"contextual\" information, so " -"this has to be done manually." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:206 -msgid "" -"Remember that you can check the class reference for what each node does, as " -"they are documented there. That mentioned, a brief overview of node types " -"follows:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:213 -msgid "" -"Constant nodes are nodes that provide values that, while not changing over " -"time, can be useful as reference values. Most of the time they are integer " -"or float." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:219 -msgid "" -"The first one is \"Constant\", which allows you to select any value of any " -"type as constant, from an integer (42) to a String (\"Hello!\"). In general, " -"this node is not used that often because of default input values in *Data " -"Ports*, but it's good to know it exists." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:221 -msgid "" -"The second is the GlobalConstant node, which contains a long list of " -"constants for global types in Godot. In there you can find some useful " -"constants to refer to key names, joystick or mouse buttons, etc." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:224 -msgid "" -"The third one is MathConstant, which provides typical mathematical " -"constants, such as PI, E, etc." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:230 -msgid "" -"Data nodes deal with all sorts of access to information. Any information in " -"Godot is accessed via these nodes, so they are some of the most important " -"ones to use and pretty diverse." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:236 -msgid "" -"There are many types of nodes of interest here, so a short attempt to " -"describe them will follow:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:240 -msgid "Action" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:242 -msgid "" -"Action nodes are vital when dealing with input from a device. You can read " -"more about actions in the (@TODO ACTION TUTE LINK). In the following example " -"below, the control is moved to the right when the \"move_right\" action is " -"pressed." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:249 -msgid "Engine Singleton" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:251 -msgid "" -"Engine singletons are global interfaces (meaning they can be accessed " -"without a reference; unlike Scene Nodes, they are always available). They " -"have several purposes, but in general, they are useful for low-level access " -"or OS-related access." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:257 -msgid "" -"Remember that dragging a connection to empty space will help you call " -"functions or set/get properties on these:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:263 -msgid "Local Variables" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:265 -msgid "" -"These are nodes you can use as temporary storage for your graphs. Make sure " -"they all have the same name and type when using them and they will reference " -"the same piece of memory." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:270 -msgid "" -"As it can be seen above, there are two nodes available: A simple getter, and " -"a sequenced getter (setting requires a sequence port)." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:274 -msgid "Scene Node" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:276 -msgid "" -"This is just a reference to a node in the tree, but it's easier to use this " -"node by dragging the actual node from the scene tree to the canvas (this " -"will create it and configure it)." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:281 -msgid "Self" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:283 -msgid "" -"In some rare occasions, it may be desired to pass this Scene Node as " -"argument. It can be used to call functions and set/get properties, or drag " -"nodes (or event the node itself that has the script) from the Scene Tree to " -"the canvas for this." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:290 -msgid "" -"This node is similar to the Singleton node because it references the " -"SceneTree, which contains the active scene. SceneTree, however, only works " -"when the node is sitting in the scene and active, otherwise accessing it " -"will return an error." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:294 -msgid "" -"SceneTree allows for many low-level things, like setting stretch options, " -"calling groups, make timers, or even load another scene. It's a good class " -"to get familiar with." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:299 -msgid "Preload" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:301 -msgid "" -"This does the same function as preload() in GDScript. It maintains this " -"resource loaded and ready to use. Rather than instancing the node, it's " -"simpler to drag the desired resource from the filesystem dock to the canvas." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:306 -msgid "Resource Path" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:308 -msgid "" -"This node is a simple helper to get a string with a path to a resource you " -"can pick. It's useful in functions that load things from disk." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:313 -msgid "Comment" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:315 -msgid "" -"A Comment node works as a node you can resize to put around other nodes. It " -"will not try to get focus or be brought to top when selecting it. It can " -"also be used to write text on it." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:322 -msgid "Flow Control" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:324 -msgid "" -"Flow control nodes allow the execution to take different branches, usually " -"depending on a given condition." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:331 -msgid "Condition" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:333 -msgid "" -"This is a simple node that checks a bool port. If true, it will go via the " -"\"true\" sequence port. If false, the second. After going for either of " -"them, it goes via the \"done\" port. Leaving sequence ports disconnected is " -"fine if not all of them are used." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:339 -msgid "Iterator" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:341 -msgid "" -"Some data types in Godot (ie, arrays, dictionaries) are iterable. This means " -"that a bit of code can run for each element that it has." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:344 -msgid "" -"The Iterator node goes through all elements and, for each of them, it goes " -"via the \"each\" sequence port, making the element available in the \"elem\" " -"data port." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:347 -msgid "When done, it goes via the \"exit\" sequence port." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:351 -msgid "Return" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:353 -msgid "" -"Some functions can return values. In general for virtual ones, Godot will " -"add the Return node for you. A return node forces the function to end." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:358 -msgid "Sequence" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:360 -msgid "" -"This node is useful mostly for organizing your graph. It calls its sequence " -"ports in order." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:364 -msgid "TypeCast" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:366 -msgid "" -"This is a useful and commonly used node. You can use it to cast arguments or " -"other objects to the type you desire. Afterwards, you can even drag the " -"object output to get full completion." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:372 -msgid "" -"It is also possible to cast to a script, which will allow complete script " -"properties and functions:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:378 -msgid "Switch" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:380 -msgid "" -"The Switch node is similar to the Condition node, but it matches many values " -"at the same time." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:386 -msgid "" -"This is a more primitive form of iteration. \"repeat\" sequence output will " -"be called as long as the condition in the \"cond\" data port is met." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:393 -msgid "" -"Functions are simple helpers, most of the time deterministic. They take some " -"arguments as input and return an output. They are almost never sequenced." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:398 -msgid "Built-In" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:400 -msgid "" -"There is a list of built-in helpers. The list is almost identical to the one " -"from :ref:`GDScript`. Most of them are mathematical " -"functions, but others can be useful helpers. Make sure to take a look at the " -"list at some point." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:404 -msgid "By Type" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:406 -msgid "" -"Those are the methods available to basic types. For example, if you want a " -"dot-product, you can search for \"dot\" instead of the Vector3 category. In " -"most cases just search the list of nodes, it should be faster." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:411 -msgid "Call" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:413 -msgid "" -"This is the generic calling node. It is rarely used directly but by dragging " -"to empty space on an already configured node." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:417 -msgid "Constructors" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:419 -msgid "" -"These are all the functions needed to create Godot basic datatypes. For " -"example, If you need to create a Vector3 out of 3 floats, a constructor must " -"be used." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:425 -msgid "Destructor" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:427 -msgid "" -"This is the opposite to Constructor, it allows to separate any basic type " -"(ie, Vector3) into its sub-elements." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:433 -msgid "Emit Signal" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:435 -msgid "" -"Emits signals from any object. In general it's not that useful, as dragging " -"a signal to the canvas works better." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:439 -msgid "Get/Set" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:441 -msgid "" -"Generic Getter/Setter node. Dragging properties from the Inspector works " -"better, as they appear properly configured on drop." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:445 -msgid "Wait" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:447 -msgid "" -"The Wait nodes will suspend execution of the function until something " -"happens (many frames can pass until resuming, in fact). Default nodes allow " -"you to wait for a frame to pass, a fixed frame or a given amount of time " -"until execution is resumed." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:452 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:298 -msgid "Yield" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:454 -msgid "" -"This node completely suspends the execution of the script, and it will make " -"the function return a value that can be used to resume execution." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:458 -msgid "Yield Signal" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:460 -msgid "Same as Yield, but will wait until a given signal is emitted." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:464 -msgid "Index" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:466 -msgid "" -"Generic indexing operator, not often used but it's good that it exists just " -"in case." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:472 -msgid "" -"These are mostly generic operators, such as addition, multiplication, " -"comparison, etc. By default, these mostly accept any datatype (and will " -"throw an error at run-time if the types fed do not match those expected by " -"the operator). It is always recommended to set the right type for operators " -"to catch errors faster and make the graph easier to read." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:481 -msgid "Expression Node" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:483 -msgid "" -"Among the operators, the *Expression* node is the most powerful. If well " -"used, it allows you to enormously simplify visual scripts that are math or " -"logic heavy. Type any expression on it and it will be executed in real-time." -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:486 -msgid "Expression nodes can:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:488 -msgid "" -"Perform math and logic expressions based on custom inputs (eg: \"a*5+b\", " -"where a and b are custom inputs):" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:493 -msgid "Access local variables or properties:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:498 -msgid "" -"Use most of the existing built-in functions that are available to GDScript, " -"such as sin(),cos(),print(), as well as constructors, such as Vector3(x,y,z)," -"Rect2(..), etc.:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:503 -msgid "Call API functions:" -msgstr "" - -#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:508 -msgid "" -"Use sequenced mode, which makes more sense in case of respecting the " -"processing order:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/index.rst:2 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:30 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:59 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:188 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:203 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:215 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:226 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:234 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:249 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:261 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:321 -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:115 -msgid "C#" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:6 -msgid "" -"C# support is a new feature available since Godot 3.0. As such, you may " -"still run into some issues, or find spots where the documentation could be " -"improved. Please report issues with C# in Godot on the `engine GitHub page " -"`_, and any documentation " -"issues on the `documentation GitHub page `_." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:14 -msgid "" -"This page provides a brief introduction to C#, both what it is and how to " -"use it in Godot. Afterwards, you may want to look at :ref:`how to use " -"specific features `, read about the :ref:`differences " -"between the C# and the GDScript API ` and (re)visit " -"the :ref:`Scripting section ` of the step-by-step tutorial." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:21 -msgid "" -"C# is a high-level programming language developed by Microsoft. In Godot, it " -"is implemented with the Mono 5.x .NET framework, including full support for " -"C# 7.0. Mono is an open source implementation of Microsoft's .NET Framework " -"based on the ECMA standards for C# and the Common Language Runtime. A good " -"starting point for checking its capabilities is the `Compatibility `_ page in the Mono " -"documentation." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:29 -msgid "" -"This is **not** a full-scale tutorial on the C# language as a whole. If you " -"aren't already familiar with its syntax or features, see the `Microsoft C# " -"guide `_ or look for a " -"suitable introduction elsewhere." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:36 -msgid "Setting up C# for Godot" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:41 -msgid "" -"Download and install the latest version of `Visual Studio `_ (*not* Visual Studio Code), which " -"contains utilities required to use C# in Godot. If you don't plan on using " -"the Visual Studio IDE, you can download just the `Visual Studio Build Tools " -"`_ instead. Make sure you at least have the .NET " -"Framework 4.5 targeting pack installed, you can get it using any of the " -"installers mentioned above inside the \"Individual components\" tab." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:51 -msgid "macOS and Linux" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:53 -msgid "" -"Download and install the latest version of the `Mono SDK `_. As of Godot 3.1 beta 3, the version number doesn't " -"matter since Godot bundles its own Mono 5.18 installation. We only need the " -"Mono installation for NuGet and MSBuild which are required to use C# in " -"Godot." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:59 -msgid "" -"To download Mono on macOS, use the \"Stable Channel\" link from the `Mono " -"Downloads Page `_. The Visual Studio " -"channel is an earlier version of Mono and will not work." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:65 -msgid "Additional notes" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:67 -msgid "" -"Your Godot version must have Mono support enabled, so make sure to download " -"the **Mono version** of Godot. If you are building Godot from source, make " -"sure to follow the steps to enable Mono support in your build as outlined in " -"the :ref:`doc_compiling_with_mono` page." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:73 -msgid "" -"In summary, you must have installed Visual Studio or Mono (depending on your " -"operating system) **and** the Mono-enabled version of Godot." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:77 -msgid "Configuring an external editor" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:79 -msgid "" -"C# support in Godot's script editor is minimal. Consider using an external " -"IDE or editor, such as `Visual Studio Code `_ or MonoDevelop. These provide autocompletion, debugging, and other " -"useful features for C#. To select an external editor in Godot, click on " -"**Editor → Editor Settings** and scroll down to **Mono**. Under **Mono**, " -"click on **Editor**, and select your external editor of choice." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:87 -msgid "" -"If you are using Visual Studio Code, ensure you download and install the `C# " -"extension `_ to enable features like syntax highlighting and IntelliSense." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:92 -msgid "Creating a C# script" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:94 -msgid "" -"After you successfully set up C# for Godot, you should see the following " -"option when selecting ``Attach script`` in the context menu of a node in " -"your scene:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:99 -msgid "" -"Note that while some specifics change, most concepts work the same when " -"using C# for scripting. If you're new to Godot, you may want to follow the " -"tutorials on :ref:`doc_scripting` at this point. While some places in the " -"documentation still lack C# examples, most concepts can be transferred " -"easily from GDScript." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:106 -msgid "Project setup and workflow" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:108 -msgid "" -"When you create the first C# script, Godot initializes the C# project files " -"for your Godot project. This includes generating a C# solution (``.sln``) " -"and a project file (``.csproj``), as well as some utility files and folders " -"(``.mono`` and ``Properties/AssemblyInfo.cs``). All of these but ``.mono`` " -"are important and should be committed to your version control system. ``." -"mono`` can be safely added to the ignore list of your VCS. When " -"troubleshooting, it can sometimes help to delete the ``.mono`` folder and " -"let it regenerate." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:117 -msgid "" -"Note that currently, there are some issues where Godot and the C# project " -"don't stay in sync; if you delete, rename or move a C# script, the change " -"may not be reflected in the C# project file. In cases like this, you will " -"have to edit the C# project file manually." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:122 -msgid "" -"For example, if you created a script (e.g. ``Test.cs``) and delete it in " -"Godot, compilation will fail because the missing file is still expected to " -"be there by the C# project file. For now, you can simply open up the ``." -"csproj`` file and look for the ``ItemGroup``, there should be a line " -"included like the following:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:136 -msgid "" -"Simply remove that line and your project should build correctly again. Same " -"for renaming and moving things, simply rename and move them in the project " -"file if needed." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:141 -#: ../../docs/tutorials/io/background_loading.rst:87 -#: ../../docs/tutorials/misc/pausing_games.rst:80 -msgid "Example" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:143 -msgid "" -"Here's a blank C# script with some comments to demonstrate how it works." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:170 -msgid "" -"As you can see, functions normally in global scope in GDScript like Godot's " -"``print`` function are available in the ``GD`` class which is part of the " -"``Godot`` namespace. For a list of methods in the ``GD`` class, see the " -"class reference pages for :ref:`@GDScript ` and :ref:" -"`@GlobalScope `." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:177 -msgid "" -"Keep in mind that the class you wish to attach to your node should have the " -"same name as the ``.cs`` file. Otherwise, you will get the following error " -"and won't be able to run the scene: *\"Cannot find class XXX for script " -"res://XXX.cs\"*" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:183 -msgid "General differences between C# and GDScript" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:185 -msgid "" -"The C# API uses ``PascalCase`` instead of ``snake_case`` in GDScript/C++. " -"Where possible, fields and getters/setters have been converted to " -"properties. In general, the C# Godot API strives to be as idiomatic as is " -"reasonably possible." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:189 -msgid "For more information, see the :ref:`doc_c_sharp_differences` page." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:192 -msgid "Current gotchas and known issues" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:194 -msgid "" -"As C# support is quite new in Godot, there are some growing pains and things " -"that need to be ironed out. Below is a list of the most important issues you " -"should be aware of when diving into C# in Godot, but if in doubt, also take " -"a look over the official `issue tracker for Mono issues `_." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:200 -msgid "" -"As explained above, the C# project isn't always kept in sync automatically " -"when things are deleted, renamed or moved in Godot (`#12917 `_)." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:203 -msgid "" -"Writing editor plugins is possible, but it is currently quite convoluted." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:204 -msgid "" -"State is currently not saved and restored when hot-reloading, with the " -"exception of exported variables." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:206 -msgid "" -"Exporting Mono projects is only supported for desktop platforms (Linux, " -"Windows and macOS). Android, iOS, HTML5 and UWP are not currently supported " -"(`#20267 `_, `#20268 " -"`_ `#20270 `_ `#20271 `_)." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:212 -msgid "" -"Attached C# scripts should refer to a class that has a class name that " -"matches the file name." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:216 -msgid "Performance of C# in Godot" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:218 -msgid "" -"According to some preliminary `benchmarks `_, the performance of C# in Godot — while generally in the same " -"order of magnitude — is roughly **~4×** that of GDScript in some naive " -"cases. C++ is still a little faster; the specifics are going to vary " -"according to your use case. GDScript is likely fast enough for most general " -"scripting workloads. C# is faster, but requires some expensive marshalling " -"when talking to Godot." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:226 -msgid "Using NuGet packages in Godot" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:228 -msgid "" -"`NuGet `_ packages can be installed and used with " -"Godot, as with any C# project. Many IDEs are able to add packages directly. " -"They can also be added manually by adding the package reference in the ``." -"csproj`` file located in the project root:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:243 -msgid "" -"Whenever packages are added or modified, run ``nuget restore`` in the root " -"of the project directory. To ensure that NuGet packages will be available " -"for msbuild to use, run:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:4 -msgid "Features" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:6 -msgid "" -"This page provides an overview of the commonly used features of both C# and " -"Godot and how they are used together." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:10 -msgid "Type conversion and casting" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:12 -msgid "" -"C# is a statically typed language. Therefore, you can't do the following:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:19 -msgid "" -"The method ``GetNode()`` returns a ``Node`` instance. You must explicitly " -"convert it to the desired derived type, ``Sprite`` in this case." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:22 -msgid "For this, you have various options in C#." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:24 -msgid "**Casting and Type Checking**" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:26 -msgid "" -"Throws ``InvalidCastException`` if the returned node cannot be cast to " -"Sprite. You would use it instead of the ``as`` operator if you are pretty " -"sure it won't fail." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:34 -msgid "**Using the AS operator**" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:36 -msgid "" -"The ``as`` operator returns null if the node cannot be cast to Sprite, and " -"for that reason, it cannot be used with value types." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:45 -msgid "**Using the generic methods**" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:47 -msgid "" -"Generic methods are also provided to make this type conversion transparent." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:49 -msgid "" -"``GetNode()`` casts the node before returning it. It will throw an " -"``InvalidCastException`` if the node cannot be cast to the desired type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:56 -msgid "" -"``GetNodeOrNull()`` uses the ``as`` operator and will return ``null`` if " -"the node cannot be cast to the desired type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:64 -msgid "**Type checking using the IS operator**" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:66 -msgid "" -"To check if the node can be cast to Sprite, you can use the ``is`` operator. " -"The ``is`` operator returns false if the node cannot be cast to Sprite, " -"otherwise it returns true." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:77 -msgid "" -"For more advanced type checking, you can look into `Pattern Matching " -"`_." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:82 -msgid "C# signals" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:84 -msgid "" -"For a complete C# example, see the **Handling a signal** section in the step " -"by step :ref:`doc_scripting` tutorial." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:86 -msgid "" -"Declaring a signal in C# is done with the ``[Signal]`` attribute on a " -"delegate." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:96 -msgid "" -"These signals can then be connected either in the editor or from code with " -"``Connect``." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:116 -msgid "Emitting signals is done with the ``EmitSignal`` method." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:126 -msgid "" -"Notice that you can always reference a signal name with the ``nameof`` " -"keyword (applied on the delegate itself)." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:128 -msgid "" -"It is possible to bind values when establishing a connection by passing an " -"object array." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:148 -msgid "" -"Signals support parameters and bound values of all the `built-in types " -"`_ and Classes derived from :ref:`Godot.Object " -"`. Consequently, any ``Node`` or ``Reference`` will be " -"compatible automatically, but custom data objects will need to extend from " -"`Godot.Object` or one of its subclasses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:160 -msgid "" -"Finally, signals can be created by calling ``AddUserSignal``, but be aware " -"that it should be executed before any use of said signals (with ``Connect`` " -"or ``EmitSignal``)." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:4 -msgid "API differences to GDScript" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:6 -msgid "This is a (incomplete) list of API differences between C# and GDScript." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:9 -msgid "General differences" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:11 -msgid "" -"As explained in the :ref:`doc_c_sharp`, C# generally uses ``PascalCase`` " -"instead of the ``snake_case`` used in GDScript and C++." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:15 -#: ../../docs/tutorials/threads/thread_safe_apis.rst:15 -msgid "Global scope" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:17 -msgid "" -"Global functions and some constants had to be moved to classes, since C# " -"does not allow declaring them in namespaces. Most global constants were " -"moved to their own enums." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:24 -msgid "" -"Global constants were moved to their own enums. For example, ``ERR_*`` " -"constants were moved to the ``Error`` enum." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:27 -msgid "Special cases:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:32 -msgid "``SPKEY``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:32 -msgid "``GD.SpKey``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:33 -msgid "``TYPE_*``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:33 -msgid "``Variant.Type`` enum" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:34 -msgid "``OP_*``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:34 -msgid "``Variant.Operator`` enum" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:38 -msgid "Math functions" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:40 -msgid "" -"Math global functions, like ``abs``, ``acos``, ``asin``, ``atan`` and " -"``atan2``, are located under ``Mathf`` as ``Abs``, ``Acos``, ``Asin``, " -"``Atan`` and ``Atan2``. The ``PI`` constant can be found as ``Mathf.Pi``." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:45 -msgid "Random functions" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:47 -msgid "" -"Random global functions, like ``rand_range`` and ``rand_seed``, are located " -"under ``GD``. Example: ``GD.RandRange`` and ``GD.RandSeed``." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:51 -msgid "Other functions" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:53 -msgid "" -"Many other global functions like ``print`` and ``var2str`` are located under " -"``GD``. Example: ``GD.Print`` and ``GD.Var2Str``." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:56 -msgid "Exceptions:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:61 -msgid "``weakref(obj)``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:61 -msgid "``Object.WeakRef(obj)``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:62 -msgid "``is_instance_valid(obj)``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:62 -msgid "``Object.IsInstanceValid(obj)``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:66 -msgid "Tips" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:68 -msgid "" -"Sometimes it can be useful to use the ``using static`` directive. This " -"directive allows to access the members and nested types of a class without " -"specifying the class name." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:71 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:90 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:121 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:132 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:144 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:305 -#: ../../docs/tutorials/math/matrices_and_transforms.rst:467 -#: ../../docs/tutorials/io/background_loading.rst:268 -#: ../../docs/tutorials/shading/shading_reference/shading_language.rst:90 -#: ../../docs/tutorials/platform/services_for_ios.rst:205 -#: ../../docs/tutorials/platform/services_for_ios.rst:252 -#: ../../docs/community/contributing/code_style_guidelines.rst:150 -msgid "Example:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:86 -msgid "Export keyword" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:88 -msgid "" -"Use the ``[Export]`` attribute instead of the GDScript ``export`` keyword." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:103 -msgid "Signal keyword" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:105 -msgid "" -"Use the ``[Signal]`` attribute to declare a signal instead of the GDScript " -"``signal`` keyword. This attribute should be used on a `delegate`, whose " -"name signature will be used to define the signal." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:113 -msgid "See also: :ref:`c_sharp_signals`" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:116 -msgid "Singletons" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:118 -msgid "" -"Singletons are available as static classes rather than using the singleton " -"pattern. This is to make code less verbose than it would be with an " -"``Instance`` property." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:127 -msgid "" -"However, in some very rare cases this is not enough. For example, you may " -"want to access a member from the base class ``Godot.Object``, like " -"``Connect``. For such use cases we provide a static property named " -"``Singleton`` that returns the singleton instance. The type of this instance " -"is ``Godot.Object``." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:139 -#: ../../docs/tutorials/plugins/editor/import_plugins.rst:244 -#: ../../docs/tutorials/plugins/editor/import_plugins.rst:250 -#: ../../docs/development/cpp/core_types.rst:174 -msgid "String" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:141 -msgid "" -"Use ``System.String`` (``string``). Most of Godot's String methods are " -"provided by the ``StringExtensions`` class as extension methods." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:151 -msgid "There are a few differences, though:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:153 -msgid "" -"``erase``: Strings are immutable in C#, so we cannot modify the string " -"passed to the extension method. For this reason, ``Erase`` was added as an " -"extension method of ``StringBuilder`` instead of string. Alternatively, you " -"can use ``string.Remove``." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:157 -msgid "" -"``IsSubsequenceOf``/``IsSubsequenceOfi``: An additional method is provided, " -"which is an overload of ``IsSubsequenceOf``, allowing you to explicitly " -"specify case sensitivity:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:168 -msgid "" -"``Match``/``Matchn``/``ExprMatch``: An additional method is provided besides " -"``Match`` and ``Matchn``, which allows you to explicitly specify case " -"sensitivity:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:179 -#: ../../docs/tutorials/math/matrices_and_transforms.rst:126 -#: ../../docs/tutorials/math/matrices_and_transforms.rst:614 -msgid "Basis" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:181 -msgid "" -"Structs cannot have parameterless constructors in C#. Therefore, ``new " -"Basis()`` initializes all primitive members to their default value. Use " -"``Basis.Identity`` for the equivalent of ``Basis()`` in GDScript and C++." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:185 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:231 -msgid "The following method was converted to a property with a different name:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:190 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:206 -msgid "``get_scale()``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:190 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:206 -msgid "``Scale``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:194 -#: ../../docs/tutorials/math/matrices_and_transforms.rst:157 -msgid "Transform2D" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:196 -msgid "" -"Structs cannot have parameterless constructors in C#. Therefore, ``new " -"Transform2D()`` initializes all primitive members to their default value. " -"Please use ``Transform2D.Identity`` for the equivalent of ``Transform2D()`` " -"in GDScript and C++." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:200 -msgid "" -"The following methods were converted to properties with their respective " -"names changed:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:205 -msgid "``get_rotation()``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:205 -msgid "``Rotation``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:210 -msgid "Plane" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:212 -msgid "" -"The following method was converted to a property with a *slightly* different " -"name:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:217 -msgid "``center()``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:217 -msgid "``Center``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:221 -msgid "Rect2" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:223 -msgid "" -"The following field was converted to a property with a *slightly* different " -"name:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:228 -msgid "``end``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:228 -msgid "``End``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:236 -msgid "``get_area()``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:236 -msgid "``Area``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:240 -msgid "Quat" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:242 -msgid "" -"Structs cannot have parameterless constructors in C#. Therefore, ``new " -"Quat()`` initializes all primitive members to their default value. Please " -"use ``Quat.Identity`` for the equivalent of ``Quat()`` in GDScript and C++." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:246 -msgid "" -"The following methods were converted to a property with a different name:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:251 -msgid "``length()``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:251 -msgid "``Length``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:252 -msgid "``length_squared()``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:252 -msgid "``LengthSquared``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:258 -msgid "" -"*This is temporary. PoolArrays will need their own types to be used the way " -"they are meant to.*" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:263 -msgid "``Array``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:263 -msgid "``Godot.Collections.Array``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:264 -msgid "``PoolIntArray``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:264 -msgid "``int[]``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:265 -msgid "``PoolByteArray``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:265 -msgid "``byte[]``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:266 -msgid "``PoolFloatArray``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:266 -msgid "``float[]``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:267 -msgid "``PoolStringArray``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:267 -msgid "``String[]``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:268 -msgid "``PoolColorArray``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:268 -msgid "``Color[]``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:269 -msgid "``PoolVector2Array``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:269 -msgid "``Vector2[]``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:270 -msgid "``PoolVector3Array``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:270 -msgid "``Vector3[]``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:273 -msgid "" -"``Godot.Collections.Array`` is a type-safe wrapper around ``Godot." -"Collections.Array``. Use the ``Godot.Collections.Array(Godot.Collections." -"Array)`` constructor to create one." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:279 -msgid "Use ``Godot.Collections.Dictionary``." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:281 -msgid "" -"``Godot.Collections.Dictionary`` is a type-safe wrapper around ``Godot." -"Collections.Dictionary``. Use the ``Godot.Collections.Dictionary(Godot." -"Collections.Dictionary)`` constructor to create one." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:285 -msgid "Variant" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:287 -msgid "``System.Object`` (``object``) is used instead of ``Variant``." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:290 -msgid "Communicating with other scripting languages" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:292 -msgid "" -"The methods ``object Object.Call(string method, params object[] args)``, " -"``object Object.Get(string field)`` and ``object Object.Set(string field, " -"object value)`` are provided to communicate with instances of other " -"scripting languages via the Variant API." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:300 -msgid "" -"Something similar to GDScript's ``yield`` with a single parameter can be " -"achieved with C#'s `yield keyword `_." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:303 -msgid "" -"The equivalent of yield on signal can be achieved with async/await and " -"``Godot.Object.ToSignal``." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:313 -msgid "Other differences" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:315 -msgid "" -"``preload``, as it works in GDScript, is not available in C#. Use ``GD." -"Load`` or ``ResourceLoader.Load`` instead." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:318 -msgid "Other differences:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:323 -msgid "``Color8``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:323 -msgid "``Color.Color8``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:324 -msgid "``is_inf``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:324 -msgid "``float.IsInfinity``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:325 -msgid "``is_nan``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:325 -msgid "``float.IsNaN``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:326 -msgid "``dict2inst``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:326 -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:327 -msgid "TODO" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:327 -msgid "``inst2dict``" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:4 -msgid "C# style guide" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:6 -msgid "" -"Having well-defined and consistent coding conventions is important for every " -"project, and Godot is no exception to this rule." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:9 -msgid "" -"This page contains a coding style guide, which is followed by developers of " -"and contributors to Godot itself. As such, it is mainly intended for those " -"who want to contribute to the project, but since the conventions and " -"guidelines mentioned in this article are those most widely adopted by the " -"users of the language, we encourage you to do the same, especially if you do " -"not have such a guide yet." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:14 -msgid "" -"This article is by no means an exhaustive guide on how to follow the " -"standard coding conventions or best practices. If you feel unsure of an " -"aspect which is not covered here, please refer to more comprehensive " -"documentation, such as `C# Coding Conventions `_ or " -"`Framework Design Guidelines `_." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:21 -msgid "Language specification" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:23 -msgid "" -"Godot currently uses **C# version 7.0** in its engine and example source " -"code. So, before we move to a newer version, care must be taken to avoid " -"mixing language features only available in C# 7.1 or later." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:27 -msgid "" -"For detailed information on C# features in different versions, please see " -"`What's New in C# `_." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:31 -msgid "Formatting conventions" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:33 -msgid "Use line feed (**LF**) characters to break lines, not CRLF or CR." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:34 -msgid "" -"Use **UTF-8** encoding without a `byte order mark `_." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:35 -msgid "" -"Use **4 spaces** instead of tabs for indentation (which is referred to as " -"\"soft tabs\")." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:36 -msgid "" -"Consider breaking a line into several if it's longer than 100 characters." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:39 -msgid "Line breaks and blank lines" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:41 -msgid "" -"For a general indentation rule, follow `the \"Allman Style\" `_ which recommends " -"placing the brace associated with a control statement on the next line, " -"indented to the same level:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:58 -msgid "However, you may choose to omit line breaks inside brackets:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:60 -msgid "For simple property accessors." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:61 -msgid "For simple object, array, or collection initializers." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:62 -msgid "For abstract auto property, indexer, or event declarations." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:84 -msgid "Insert a blank line:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:86 -msgid "After a list of ``using`` statements." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:87 -msgid "Between method, properties, and inner type declarations." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:88 -msgid "At the end of each file." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:90 -msgid "" -"Field and constant declarations can be grouped together according to " -"relevance. In that case, consider inserting a blank line between the groups " -"for easier reading." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:93 -msgid "Avoid inserting a blank line:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:95 -msgid "After ``{``, the opening brace." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:96 -msgid "Before ``}``, the closing brace." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:97 -msgid "After a comment block or a single-line comment." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:98 -msgid "Adjacent to another blank line." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:136 -msgid "Using spaces" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:138 -msgid "Insert a space:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:140 -msgid "Around a binary and tertiary operator." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:141 -msgid "" -"Between an opening parenthesis and ``if``, ``for``, ``foreach``, ``catch``, " -"``while``, ``lock`` or ``using`` keywords." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:142 -msgid "Before and within a single line accessor block." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:143 -msgid "Between accessors in a single line accessor block." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:144 -msgid "After a comma which is not at the end of a line." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:145 -msgid "After a semicolon in a ``for`` statement." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:146 -msgid "After a colon in a single line ``case`` statement." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:147 -msgid "Around a colon in a type declaration." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:148 -msgid "Around a lambda arrow." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:149 -msgid "" -"After a single-line comment symbol (``//``), and before it if used at the " -"end of a line." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:151 -msgid "Do not use a space:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:153 -msgid "After type cast parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:154 -msgid "Within single line initializer braces." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:156 -msgid "" -"The following example shows a proper use of spaces, according to some of the " -"above mentioned conventions:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:193 -msgid "" -"Use **PascalCase** for all namespaces, type names and member level " -"identifiers (i.e. methods, properties, constants, events), except for " -"private fields:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:214 -msgid "" -"Use **camelCase** for all other identifiers (i.e. local variables, method " -"arguments), and use an underscore (``_``) as a prefix for private fields " -"(but not for methods or properties, as explained above):" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:228 -msgid "" -"There's an exception with acronyms which consist of two letters, like " -"``UI``, which should be written in uppercase letters where PascalCase would " -"be expected, and in lowercase letters otherwise." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:231 -msgid "" -"Note that ``id`` is **not** an acronym, so it should be treated as a normal " -"identifier:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:242 -msgid "" -"It is generally discouraged to use a type name as a prefix of an identifier, " -"like ``string strText`` or ``float fPower``, for example. An exception is " -"made, however, for interfaces, which **should**, in fact, have an uppercase " -"letter ``I`` prefixed to their names, like ``IInventoryHolder`` or " -"``IDamageable``." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:246 -msgid "" -"Lastly, consider choosing descriptive names and do not try to shorten them " -"too much if it affects readability." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:249 -msgid "" -"For instance, if you want to write code to find a nearby enemy and hit it " -"with a weapon, prefer:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:255 -msgid "Rather than:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:262 -msgid "Implicitly typed local variables" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:264 -msgid "" -"Consider using implicitly typing (``var``) for declaration of a local " -"variable, but do so **only when the type is evident** from the right side of " -"the assignment:" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:294 -msgid "Other considerations" -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:296 -msgid "Use explicit access modifiers." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:297 -msgid "Use properties instead of non-private fields." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:298 -msgid "" -"Use modifiers in this order: ``public``/``protected``/``private``/" -"``internal``/``virtual``/``override``/``abstract``/``new``/``static``/" -"``readonly``." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:300 -msgid "" -"Avoid using fully-qualified names or ``this.`` prefix for members when it's " -"not necessary." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:301 -msgid "Remove unused ``using`` statements and unnecessary parentheses." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:302 -msgid "Consider omitting the default initial value for a type." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:303 -msgid "" -"Consider using null-conditional operators or type initializers to make the " -"code more compact." -msgstr "" - -#: ../../docs/getting_started/scripting/c_sharp/c_sharp_style_guide.rst:304 -msgid "" -"Use safe cast when there is a possibility of the value being a different " -"type, and use direct cast otherwise." -msgstr "" - -#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:8 -msgid "" -"Since Godot has no restrictions on project structure or filesystem usage, " -"organizing files when learning the engine can seem challenging. This " -"tutorial suggests a workflow which should be a good starting point. We will " -"also cover using version control with Godot." -msgstr "" - -#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:14 -msgid "Organization" -msgstr "" - -#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:16 -msgid "" -"Godot is scene-based in nature, and uses the filesystem as-is, without " -"metadata or an asset database." -msgstr "" - -#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:19 -msgid "" -"Unlike other engines, many resources are contained within the scene itself, " -"so the amount of files in the filesystem is considerably lower." -msgstr "" - -#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:22 -msgid "" -"Considering that, the most common approach is to group assets as close to " -"scenes as possible; when a project grows, it makes it more maintainable." -msgstr "" - -#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:26 -msgid "" -"As an example, one can usually place into a single folder their basic " -"assets, such as sprite images, 3D model meshes, materials, and music, etc. " -"They can then use a separate folder to store built levels that use them." -msgstr "" - -#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:47 -msgid "Importing" -msgstr "" - -#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:49 -msgid "" -"Godot versions prior to 3.0 did the import process from files outside the " -"project. While this can be useful in large projects, it resulted in an " -"organization hassle for most developers." -msgstr "" - -#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:53 -msgid "" -"Because of this, assets are now transparently imported from within the " -"project folder." -msgstr "" - -#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:56 -msgid "" -"If a folder shouldn't be imported into Godot, an exception can be made with " -"a .gdignore file." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/index.rst:2 -msgid "Blender ESCN exporter" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/index.rst:4 -msgid "" -"This chapter relates to the Blender plugin called \"Godot Blender Exporter" -"\", which can be downloaded here: https://github.com/godotengine/godot-" -"blender-exporter" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/index.rst:7 -msgid "" -"This plugin can be used to export Blender scenes in a Godot-specific scene " -"format called ESCN, which is similar to TSCN (text format) but will be " -"imported as binary SCN for performance." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/index.rst:12 -msgid "Details on exporting" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/index.rst:27 -msgid "Disabling specific objects" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/index.rst:29 -msgid "" -"Sometimes you don't want some objects exported (e.g. high-res models used " -"for baking). An object will not be exported if it is not rendered in the " -"scene. This can be set in the outliner:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/index.rst:35 -msgid "" -"Objects hidden in the viewport will be exported, but will be hidden in the " -"Godot scene." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/index.rst:40 -msgid "Build pipeline integration" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/index.rst:42 -msgid "" -"If you have hundreds of model files, you don't want your artists to waste " -"time manually exporting their blend files. To combat this, the exporter " -"provides a python function ``io_scene_godot.export(out_file_path)`` that can " -"be called to export a file. This allows easy integration with other build " -"systems. An example Makefile and python script that exports all the blends " -"in a directory are present in the Godot-Blender-exporter repository." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 -#: ../../docs/tutorials/3d/using_gridmaps.rst:60 -msgid "Materials" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:5 -msgid "Using existing Godot materials" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:7 -msgid "" -"One way in which the exporter can handle materials is to attempt to match " -"the Blender material with an existing Godot material. This has the advantage " -"of being able to use all of the features of Godot's material system, but it " -"means that you cannot see your model with the material applied inside " -"Blender." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:12 -msgid "" -"To do this, the exporter attempts to find Godot materials with names that " -"match those of the material name in Blender. So if you export an object in " -"Blender with the material name ``PurpleDots`` then the exporter will search " -"for the file ``PurpleDots.tres`` and assign it to the object. If this file " -"is not a ``SpatialMaterial`` or ``ShaderMaterial`` or if it cannot be found, " -"then the exporter will fall back to exporting the material from Blender." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:20 -msgid "" -"Where the exporter searches for the ``.tres`` file is determined by the " -"\"Material Search Paths\" option:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:34 -msgid "This can take the value of:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:26 -msgid "" -"Project Directory - Attempts to find the ``project.Godot`` and recursively " -"searches through subdirectories. If ``project.Godot`` cannot be found it " -"will throw an error. This is useful for most projects where naming conflicts " -"are unlikely." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:30 -msgid "" -"Export Directory - Look for materials in subdirectories of the export " -"location. This is useful for projects where you may have duplicate material " -"names and need more control over what material gets assigned." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:33 -msgid "None - Do not search for materials. Export them from the Blender file." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:37 -msgid "Export of Cycles/EEVEE materials" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:39 -msgid "" -"The exporter has a primitive support for converting Cycles/EEVEE material " -"node tree to Godot Shader Material. Note that some of the Shader Node are " -"not supported yet due to difficulties in implementation, which are:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:43 -msgid "all the ``noisy textures``" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:44 -msgid "``generated texture coordinates``" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:45 -msgid "``group node``" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:46 -msgid "" -"shader nodes except ``PrincipledBSDF``, ``Diffuse``, ``Glossy``, ``Glass``, " -"``add shader`` and ``mix shader``" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:49 -msgid "" -"If possible try to use PrincipledBSDF node with GGX distribution as the " -"output shader node, it is the only one guarantee to be exactly correctly. " -"Others are just based on approximation." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:52 -msgid "" -"Sometimes materials may not be valid for exporting (e.g. has some " -"unsupported node) or it is using Blender Internal Engine, only the diffuse " -"color and a few flags (e.g. unshaded) are exported and form a Spatial " -"Material." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:58 -msgid "Generate external materials" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:60 -msgid "" -"The default configuration of material exporting would keep all the materials " -"internal to the ``escn`` file. There is an option which could enable " -"generating external ``.material`` file when the ``escn`` file opens in Godot." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:66 -msgid "" -"``.material`` file can be assigned to any material slot to be a external " -"resource." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/physics.rst:2 -msgid "Physics properties" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/physics.rst:4 -msgid "" -"Exporting physics properties is done by enabling \"Rigid Body\" in Blender's " -"physics tab:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/physics.rst:10 -msgid "" -"By default, a single Blender object with rigid body enabled will export as " -"three nodes: a PhysicsBody, a CollisionShape, and a MeshInstance." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/physics.rst:14 -msgid "Body type" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/physics.rst:16 -msgid "" -"Blender only has the concept of \"Active\" and \"Passive\" rigid bodies. " -"These turn into Static and RigidBody nodes. To create a kinematic body, " -"enable the \"animated\" checkbox on an \"Active\" body:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/physics.rst:23 -#: ../../docs/tutorials/physics/physics_introduction.rst:55 -msgid "Collision shapes" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/physics.rst:25 -msgid "" -"Many of the parameters for collision shapes are missing from Blender, and " -"many of the collision shapes are also not present. However, almost all of " -"the options in Blender's rigid body collision and rigid body dynamics " -"interfaces are supported:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/physics.rst:39 -msgid "There are the following caveats:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/physics.rst:33 -msgid "" -"Not all of the collision shapes are supported. Only ``Mesh``, ``Convex " -"Hull``, ``Capsule``, ``Sphere`` and ``Box`` are supported in both Blender " -"and Godot" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/physics.rst:36 -msgid "" -"In Godot, you can have different collision groups and collision masks. In " -"Blender you only have collision groups. As a result, the exported object's " -"collision mask is equal to its collision group. Most of the time, this is " -"what you want." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/physics.rst:42 -msgid "" -"To build compound physics shapes, parent together multiple objects with " -"rigid body enabled. The physics properties are taken from the parent-most " -"rigid body, and the rest are used as collision shapes." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/physics.rst:47 -msgid "Collision geometry only" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/physics.rst:49 -msgid "" -"Frequently you want different geometry for your collision meshes and your " -"graphical meshes, but by default the exporter will export a mesh along with " -"the collision shape. To only export the collision shape, set the object's " -"maximum draw type to Wire:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/physics.rst:56 -msgid "" -"This will also influence how the object is shown in Blender's viewport. Most " -"of the time, you want your collision geometry to be shown see-through when " -"working on the models, so this works out fairly nicely." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/lights.rst:2 -#: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:68 -#: ../../docs/tutorials/3d/introduction_to_3d.rst:223 -msgid "Lights" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/lights.rst:4 -msgid "" -"By default, lamps in Blender have shadows enabled. This can cause " -"performance issues in Godot." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/lights.rst:8 -msgid "" -"Lamps are exported using their \"Blender Render\" settings. When Blender 2.8 " -"is released, this will be removed and this part of the exporter will change." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/lights.rst:11 -msgid "" -"Sun, point and spot lamps are all exported from Blender along with many of " -"their properties:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/lights.rst:16 -msgid "There are some things to note:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/lights.rst:18 -msgid "" -"In Blender, a light casts light all the way to infinity. In Godot, it is " -"clamped by the attenuation distance. To most closely match between the " -"viewport and Godot, enable the \"Sphere\" checkbox. (Highlighted green)" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/lights.rst:21 -msgid "" -"Light attenuation models differ between Godot and Blender. The exporter " -"attempts to make them match, but it isn't always very good." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/lights.rst:23 -msgid "" -"Spotlight angular attenuation models also differ between Godot and Blender. " -"The exporter attempts to make them similar, but it doesn't always look the " -"same." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/lights.rst:26 -msgid "" -"There is no difference between buffer shadow and ray shadow in the export." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/mesh.rst:2 -msgid "Mesh" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/mesh.rst:5 -msgid "Modifiers" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/mesh.rst:6 -msgid "" -"There is an exporting option :code:`Apply Modifiers` to control whether mesh " -"modifiers are applied to the exported mesh." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/mesh.rst:11 -msgid "Shape Key" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/mesh.rst:12 -msgid "" -"Exporting mesh shape key is supported, however exporting each shape key is " -"almost like exporting the mesh again, so don't be surprised it takes a " -"relatively long time." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/mesh.rst:17 -msgid "" -"A lot of modifiers are not compatible with shape keys (e.g. subsurface " -"modifier), so if you found you have incorrect shape keys exported, try to " -"disable :code:`Apply Modifiers` and do the exporting again. Besides, it is " -"worthwhile to report the incompatible modifier to the `issue list `__, which helps to " -"develop the exporter to have a more precise check of modifiers." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/skeleton.rst:2 -#: ../../docs/development/file_formats/tscn.rst:161 -msgid "Skeleton" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/skeleton.rst:7 -msgid "Rest Bone" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/skeleton.rst:9 -msgid "" -"Armature object in Blender is exported as a Skeleton node along with rest " -"position (transform in Godot) of bones." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/skeleton.rst:13 -msgid "" -"The three check boxes :code:`Inherit Rotation`, :code:`Inherit Scale`, :code:" -"`Local Location` (colored in red) must be ticked when building armature in " -"Blender, so that the exported bone transform be consistent between Blender " -"and Godot" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/skeleton.rst:18 -msgid "" -"It is important that the mesh is not deformed by bones when exporting in " -"Blender. Make sure that the skeleton is reset to its T-pose or default rest " -"pose." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/skeleton.rst:22 -msgid "Bone Weights" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/skeleton.rst:24 -msgid "" -"Blender put rigged mesh vertices which has no bone weights at its original " -"position, but these vertices would be placed at (0, 0, 0) in Godot, making " -"the mesh deformed. Therefore, the exporter would raise an error for any " -"vertex with no bone weights detected in a rigged mesh." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/skeleton.rst:30 -msgid "Non-Deform Bone" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/skeleton.rst:32 -msgid "" -"Note that the non-deform bone can be configured as not exported by enabling " -"the :code:`Exclude Control Bones`; the deform bone checkbox is shown in the " -"picture." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/skeleton.rst:38 -msgid "Bone Attachment" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/skeleton.rst:39 -msgid "" -"A bone can be the parent of an object in Blender; this relation is exported " -"as a BoneAttachment node in the Godot scene." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:8 -msgid "Animation supported:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:4 -msgid "transform animation of all types of objects" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:5 -msgid "transform animation of pose bones" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:6 -msgid "shape key animation" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:7 -msgid "light animation" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:8 -msgid "camera animation" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:11 -msgid "Multiple Actions For Single Object" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:12 -msgid "" -"In most games, one object would have several animations to switch between. " -"This add-on has support for exporting multiple actions all at once into a " -"single AnimationPlayer and makes it easy to switch actions." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:16 -msgid "" -"This workflow makes use of blender nla_tracks. Here is a brief guide on how " -"to use this feature:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:19 -msgid "**1. Stash active action**" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:21 -msgid "" -"New created action is always an active action binded to object. There are " -"several ways to place an active action into NLA track, one is of course " -"doing it in ``NLA Editor``" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:28 -msgid "Or it can be done stashing the action in ``Dope Sheet``" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:33 -msgid "**2. Check mute status of NLA tracks**" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:35 -msgid "" -"An NLA track can be ``mute`` or ``unmute``, the exporter will export all the " -"``mute`` NLA track as a separate action, while blends all the ``unmute`` NLA " -"tracks into every action (including the action action) being exported." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:41 -msgid "**3. Export the scene**" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:43 -msgid "Make sure the ``Export Stashed Actions`` option has been turned on." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:47 -msgid "" -"Then all the stashed actions, as well as the active action, are exported to " -"an AnimationPlayer." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:54 -msgid "Constraints" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:55 -msgid "" -"Sometimes complicated animation is built with object constraint; a usual " -"example is inverse kinematics. The add-on would automatically check if an " -"object has some constraint; if it does, all the constraints are baked into " -"actions and then exported along with the object." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:62 -msgid "Animation Mode" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:63 -msgid "" -"Godot and Blender have different structure to store animation data. In Godot " -"animation data is stored in an AnimationPlayer node, instead of in each " -"animated node. In order to fix this inconsistence and still make the " -"animation play versatile, this add-on has three animation exporting modes." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:70 -msgid "**Mode 'Animation as Actions'**" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:72 -msgid "" -"Treat all the animations as object actions, so in the exported scene, every " -"object would have its own AnimationPlayer and hold its actions." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:76 -msgid "**Mode 'Scene Animation'**" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:78 -msgid "" -"If you want your animation to generate the same result as playing at " -"Blender's timeline, this is what you want. In this mode, all the animations " -"in the scene are placed in just one AnimationPlayer in the scene root." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:82 -msgid "**Mode 'Animation as Action with Squash'**" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:84 -msgid "" -"This mode has very similar behaviour of mode 'Animation as Action', but it " -"can generate fewer AnimationPlayers; objects in parent-children relationship " -"would share their AnimationPlayer. It is useful when you have several rigs, " -"and each Skeleton and Mesh has actions; then one rig would have just one " -"AnimationPlayer." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/index.rst:2 -msgid "Assets workflow" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:4 -msgid "Import process" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:7 -msgid "Importing assets in Godot 3.0+" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:9 -msgid "" -"Previously, importing assets in Godot 2.x required manual maintenance of a " -"separate directory with source assets. Without doing this, it was impossible " -"to specify how to convert and change import flags for textures, audio files, " -"scenes, etc." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:14 -msgid "" -"In Godot 3.0, we use a more modern approach to importing: Simply drop your " -"assets (image files, scenes, audio files, fonts, etc) directly in the " -"project folder (copy them manually with your OS file explorer). Godot will " -"automatically import these files internally and keep the imported resources " -"hidden in a res://.import folder." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:20 -msgid "This allows changing all the import parameters transparently." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:23 -msgid "Changing import parameters" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:25 -msgid "" -"Changing the import parameters of an asset in Godot (again, keep in mind " -"import parameters are only present in non-native Godot resource types) is " -"easy. Select the relevant resource in the filesystem dock:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:31 -msgid "" -"Then, after adjusting the parameters, press \"Reimport\". These parameters " -"will only be used for this asset and on future reimports." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:34 -msgid "" -"Changing the import parameters of several assets at the same time is also " -"possible. Simply select all of them together in the resources dock and the " -"exposed parameters will apply to all of them when reimporting." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:39 -msgid "Automatic reimport" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:41 -msgid "" -"When the MD5 checksum of the source asset changes, Godot will perform an " -"automatic reimport of it, applying the preset configured for that specific " -"asset." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:46 -msgid "Files generated" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:48 -msgid "" -"Importing will add an extra .import file, containing the import " -"configuration. Make sure to commit these to your version control system!" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:53 -msgid "" -"Additionally, extra assets will be preset in the hidden res://.import folder:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:57 -msgid "" -"If any of the files present in this folder is erased (or the whole folder), " -"the asset or assets will be reimported automatically. As such, committing " -"this folder to the version control system is optional. It can shorten " -"reimporting time when checking out on another computer, but it takes " -"considerably more space and transfer time. Pick your poison!" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:64 -msgid "Changing import resource type" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:66 -msgid "" -"Some source assets can be imported as different types of resources. For " -"this, select the relevant type of resource desired and press \"Reimport\":" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:74 -msgid "Changing default import parameters" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:76 -msgid "" -"Different types of games might require different defaults. Changing the " -"defaults per project can be achieved by using the \"Preset..\" Menu. Besides " -"some resource types offering presets, the default setting can be saved and " -"cleared too:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:84 -msgid "Simplicity is key!" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:86 -msgid "" -"This is a very simple workflow which should take very little time to get " -"used to. It also enforces a more correct way to deal with resources." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/import_process.rst:89 -msgid "" -"There are many types of assets available for import, so please continue " -"reading to understand how to work with all of them!" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:4 -msgid "Importing images" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:7 -msgid "Why import them?" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:9 -msgid "" -"In Godot 3+, image files are no longer native resources and they must be " -"imported. The reason behind this is the large amount of configuration " -"parameters that image files can be imported with." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:13 -msgid "" -"This small tutorial will explain what these parameters are and how to best " -"make use of them." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:17 -msgid "Importing textures" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:19 -msgid "" -"The default action in Godot is to import images as textures. Textures are " -"stored in video memory and can't be accessed directly. This is what makes " -"drawing them efficient." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:23 -msgid "Import options are vast:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:28 -msgid "Detect 3D" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:30 -msgid "" -"This option makes Godot be aware of when a texture (which is imported for 2D " -"as default) is used in 3D. If this happens, setting are changed so the " -"texture flags are friendlier to 3D (mipmaps, filter and repeat become " -"enabled and compression is changed to VRAM). Texture is also reimported " -"automatically." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:34 -msgid "Compression" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:36 -msgid "" -"Images are one of the largest assets in a game. To handle them efficiently, " -"they need to be compressed. Godot offers several compression methods, " -"depending on the use case." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:40 -msgid "Compress Mode" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:42 -msgid "" -"VRAM Compression: This is the most common compression mode for 3D assets. " -"File on disk is reduced and video memory usage is also reduced considerably. " -"For 3D, it may present unwanted artifacts, though." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:44 -msgid "" -"Lossless Compression: This is the most common compression for 2D assets. It " -"shows assets without any kind of artifacting, and disk compression is " -"decent. It will use considerably more amount of video memory than VRAM, " -"though." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:46 -msgid "" -"Lossy Compression: For games with lots of large 2D assets, lossy compression " -"can be a great choice. It has some artifacting, but less than VRAM and the " -"file size is almost a tenth of Lossless." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:48 -msgid "" -"Uncompressed: Only useful for formats that can't be compressed (like, raw " -"float)." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:50 -msgid "" -"In this table, each of the four options are described together with their " -"advantages and disadvantages ( |good| = Best, |bad| =Worst ):" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:54 -msgid "Uncompressed" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:54 -msgid "Compress Lossless (PNG)" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:54 -msgid "Compress Lossy (WebP)" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:54 -msgid "Compress VRAM" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:56 -msgid "Stored as raw pixels" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:56 -msgid "Stored as PNG" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:56 -msgid "Stored as WebP" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:56 -msgid "Stored as S3TC/BC,PVRTC/ETC, depending on platform" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:58 -msgid "Size on Disk" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:58 -#: ../../docs/getting_started/workflow/assets/importing_images.rst:60 -msgid "|bad| Large" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:58 -msgid "|regular| Small" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:58 -msgid "|good| Very Small" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:60 -msgid "Memory Usage" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:60 -msgid "|good| Small" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:62 -msgid "Performance" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:62 -#: ../../docs/getting_started/workflow/assets/importing_images.rst:66 -msgid "|regular| Normal" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:62 -#: ../../docs/getting_started/workflow/assets/importing_images.rst:66 -msgid "|good| Fast" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:64 -msgid "Quality Loss" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:64 -msgid "|good| None" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:64 -msgid "|regular| Slight" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:64 -msgid "|bad| Moderate" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:66 -msgid "Load Time" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:66 -msgid "|bad| Slow" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:76 -msgid "HDR Mode" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:78 -msgid "" -"Godot supports high dynamic range textures (as .HDR or .EXR). These are " -"mostly useful as high dynamic range equirectangular panorama skies (the " -"internet has plenty if you search for them), which replace Cubemaps in Godot " -"2.x. Modern PCs support the BC6H VRAM format, but there are still plenty " -"that do not." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:81 -msgid "" -"If you want Godot to ensure full compatibility in terms of the kind of " -"textures, enable the \"Force RGBE\" option." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:84 -msgid "Normal Map" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:86 -msgid "" -"When using a texture as normal map, only the red and green channels are " -"required. Given regular texture compression algorithms produce artifacts " -"that don't look that nice in normal maps, the RGTC compression format is the " -"best fit for this data. Forcing this option to \"Enabled\" will make Godot " -"import the image as RGTC compressed. By default, it's set to \"Detect\", " -"which means that if the texture is ever used as a normal map, it will be " -"changed to \"Enabled\" and reimported automatically." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:91 -msgid "" -"Note that RGTC compression affects the resulting normal map image. You will " -"have to adjust custom shaders that use the normal map to take this into " -"account." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:94 -#: ../../docs/tutorials/3d/spatial_material.rst:19 -msgid "Flags" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:96 -msgid "" -"There are plenty of settings that can be toggled when importing an image as " -"a texture, depending on the use case." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:99 -msgid "Repeat" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:101 -msgid "" -"This setting is most commonly used in 3D, and is therefore generally " -"disabled in 2D. It sets UV coordinates going beyond the 0,0 - 1,1 range to " -"\"loop\"." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:103 -msgid "Repeating can optionally be set to mirrored mode." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:106 -#: ../../docs/tutorials/audio/audio_buses.rst:174 -msgid "Filter" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:108 -msgid "" -"When pixels become larger than the screen pixels, this option enables linear " -"interpolation for them. The result is a smoother (less blocky) texture. This " -"setting can be commonly used in 2D and 3D, but it's usually disabled when " -"making pixel perfect games." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:111 -msgid "Mipmaps" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:113 -msgid "" -"When pixels become smaller than the screen, mipmaps kick in. This helps " -"reduce the grainy effect when shrinking the textures. Keep in mind that, in " -"older hardware (GLES2, mainly mobile), there are some requirements to use " -"mipmaps:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:116 -msgid "Texture width and height must be powers of 2" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:117 -msgid "Repeat must be enabled" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:119 -msgid "" -"Keep in mind the above when making phone games and applications, want to aim " -"for full compatibility, and need mipmaps." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:121 -msgid "" -"When doing 3D, mipmap should be turned on, as this also improves performance " -"(smaller versions of the texture are used for objects further away)." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:124 -msgid "Anisotropic" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:126 -msgid "" -"When textures are near parallel to the view (like floors), this option makes " -"them have more detail by reducing blurriness." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:129 -msgid "SRGB" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:131 -msgid "" -"Godot uses Linear colorspace when rendering 3D. Textures mapped to albedo or " -"detail channels need to have this option turned on in order for colors to " -"look correct. When set to \"Detect\" mode, the texture will be marked as " -"SRGB when used in albedo channels." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:135 -msgid "Process" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:137 -msgid "" -"Some special processes can be applied to images when imported as textures." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:140 -msgid "Fix Alpha Border" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:142 -msgid "" -"This puts pixels of the same surrounding color in transition from " -"transparency to non transparency. It helps mitigate the outline effect when " -"exporting images from Photoshop and the like." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:147 -msgid "" -"It's a good idea to leave it on by default, unless specific values are " -"needed." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:150 -msgid "Premultiplied Alpha" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:152 -msgid "" -"An alternative to fix darkened borders is to use premultiplied alpha. By " -"enabling this option, the texture will be converted to this format. Keep in " -"mind that a material will need to be created that uses the PREMULT ALPHA " -"blend mode on canvas items that need it." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:156 -msgid "HDR as sRGB" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:158 -msgid "" -"A few HDR files are broken and contain sRGB color data. It is advised not to " -"use them, but, in the worst-case scenario, toggling this option on will make " -"them look right." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:161 -msgid "Invert Color" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_images.rst:163 -msgid "" -"Reverses the image's color. This is useful, for example, to convert a height " -"map generated by external programs to depth map to use with :ref:" -"`doc_spatial_material`." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:4 -msgid "Importing audio samples" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:7 -msgid "Why import?" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:9 -msgid "" -"Raw audio data in general is large and undesired. Godot provides two main " -"options to import your audio data: WAV and Ogg Vorbis." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:12 -msgid "Each has different advantages." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:14 -msgid "" -"WAV files use raw data or light compression, make few demands on the CPU to " -"play back (hundreds of simultaneous voices in this format are fine), but " -"take up significant space." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:15 -msgid "" -"Ogg Vorbis files use a stronger compression that results in much smaller " -"file size, but require significantly more processing power to play back." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:20 -msgid "Here is a comparative chart." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:23 -msgid "Format" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:23 -msgid "1 second of audio" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:25 -msgid "WAV 24-bit, 96 kHz, stereo" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:25 -msgid "576 KB" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:27 -msgid "WAV 16-bit, 44 kHz, mono" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:27 -msgid "88 KB" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:29 -msgid "WAV 16-bit, IMA-ADPCM, mono" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:29 -msgid "22 KB" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:31 -msgid "Ogg Vorbis 128 Kb/s, stereo" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:31 -msgid "16 KB" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:33 -msgid "Ogg Vorbis 96 Kb/s, stereo" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:33 -msgid "12 KB" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:36 -msgid "" -"Consider using WAV for short and repetitive sound effects, and Ogg Vorbis " -"for music, speech, and long sound effects." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:40 -#: ../../docs/getting_started/workflow/best_practices/index.rst:2 -msgid "Best practices" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:42 -msgid "" -"Godot has an :ref:`extensive bus system ` with built-in " -"effects. This saves SFX artists the need to add reverb to the sound effects, " -"reducing their size greatly and ensuring correct trimming. Say no to SFX " -"with baked reverb!" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:49 -msgid "As you can see above, sound effects become huge with reverb added." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:52 -msgid "Trimming" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:54 -msgid "" -"One issue that happens often is that the waveform is exported with long " -"silences at the beginning and at the end. These are inserted by DAWs when " -"saving to a waveform, increase their size unnecessarily and add latency to " -"the moment they are played back." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:59 -msgid "Importing as WAV with the **Trimming** option enabled solves this." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:63 -msgid "Looping" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:65 -msgid "" -"Godot supports looping in the samples (tools such as Sound Forge or Audition " -"can add loop points to WAV files). This is useful for sound effects, such as " -"engines, machine guns etc. Ping-pong looping is also supported." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_audio_samples.rst:70 -msgid "" -"As an alternative, the Import dock has a **Loop** option that enables " -"looping for the entire sample when importing." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:4 -msgid "Importing translations" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:7 -msgid "Games and internationalization" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:9 -msgid "" -"The world is full of different markets and cultures and, to maximize " -"profits™, nowadays games are released in several languages. To solve this, " -"internationalized text must be supported in any modern game engine." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:14 -msgid "" -"In regular desktop or mobile applications, internationalized text is usually " -"located in resource files (or .po files for GNU stuff). Games, however, can " -"use several orders of magnitude more text than applications, so they must " -"support efficient methods for dealing with loads of multilingual text." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:20 -msgid "" -"There are two approaches to generate multilingual language games and " -"applications. Both are based on a key:value system. The first is to use one " -"of the languages as the key (usually English), the second is to use a " -"specific identifier. The first approach is probably easier for development " -"if a game is released first in English, later in other languages, but a " -"complete nightmare if working with many languages at the same time." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:28 -msgid "" -"In general, games use the second approach and a unique ID is used for each " -"string. This allows you to revise the text while it is being translated to " -"other languages. The unique ID can be a number, a string, or a string with a " -"number (it's just a unique string anyway)." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:33 -msgid "" -"If you need a more powerful file format, Godot also supports loading " -"translations written in the gettext ``.po`` format. See :ref:" -"`doc_localization_using_gettext` for details." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:38 -msgid "Translation format" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:40 -msgid "" -"To complete the picture and allow efficient support for translations, Godot " -"has a special importer that can read CSV files. All spreadsheet editors (be " -"it Libreoffice, Microsoft Office, Google Docs, etc.) can export to this " -"format, so the only requirement is that the files have a special " -"arrangement. The CSV files must be saved in UTF-8 encoding and be formatted " -"as follows:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:48 -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:67 -msgid "keys" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:48 -msgid "" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:48 -msgid "" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:48 -msgid "" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:50 -msgid "KEY1" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:50 -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:52 -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:54 -#: ../../docs/tutorials/misc/binary_serialization_api.rst:33 -msgid "string" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:52 -msgid "KEY2" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:54 -msgid "KEYN" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:57 -msgid "" -"The \"lang\" tags must represent a language, which must be one of the :ref:" -"`valid locales ` supported by the engine. The \"KEY\" tags must " -"be unique and represent a string universally (they are usually in uppercase, " -"to differentiate from other strings). These keys will be replaced at runtime " -"by the matching translated string. Note that the case is important, \"KEY1\" " -"and \"Key1\" will be different keys. The top-left cell is ignored and can be " -"left empty or having any content. Here's an example:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:67 -#: ../../docs/tutorials/i18n/locales.rst:178 -msgid "en" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:67 -#: ../../docs/tutorials/i18n/locales.rst:220 -msgid "es" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:67 -#: ../../docs/tutorials/i18n/locales.rst:372 -msgid "ja" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:69 -msgid "GREET" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:69 -msgid "Hello, friend!" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:69 -msgid "Hola, amigo!" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:69 -msgid "こんにちは" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:71 -msgid "ASK" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:71 -msgid "How are you?" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:71 -msgid "Cómo está?" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:71 -msgid "元気ですか" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:73 -msgid "BYE" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:73 -msgid "Goodbye" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:73 -msgid "Adiós" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:73 -msgid "さようなら" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:76 -msgid "" -"The same example is shown below as a comma-separated plain text file, which " -"should be the result of editing the above in a spreadsheet. When editing the " -"plain text version, be sure to enclose any message that contains a comma " -"with double quotes, so that the comma is not parsed as delimiter. " -"Alternatively, you can select another delimiter in the import options." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:91 -msgid "CSV importer" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:93 -msgid "" -"Godot will treat CSV files as translations by default. It will import them " -"and generate one or more compressed translation resource files next to it." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:96 -msgid "" -"Importing will also add the translation to the list of translations to load " -"when the game runs, specified in project.godot (or the project settings). " -"Godot allows loading and removing translations at runtime as well." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:101 -msgid "" -"Select the ``.csv`` file and access the \"Import\" dock to define import " -"options. You can toggle the compression of the imported translations, and " -"select the delimiter to use when parsing the CSV file." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_translations.rst:107 -msgid "Be sure to click \"Reimport\" after any change to these options." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:4 -msgid "Importing 3D scenes" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:7 -msgid "Godot scene importer" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:9 -msgid "" -"When dealing with 3D assets, Godot has a flexible and configurable importer." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:11 -msgid "" -"Godot works with *scenes*. This means that the entire scene being worked on " -"in your favorite 3D DCC will be transferred as close as possible." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:14 -msgid "Godot supports the following 3D *scene file fomats*:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:16 -msgid "DAE (COLLADA), which is currently the most mature workflow." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 -msgid "" -"glTF 2.0. Both text and binary formats are supported. Godot has full support " -"for it, but the format is new and gaining traction." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:18 -msgid "" -"OBJ (Wavefront) formats. It is also fully supported, but pretty limited (no " -"support for pivots, skeletons, etc)." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 -msgid "ESCN, a Godot specific format that Blender can export with a plugin." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 -msgid "" -"Just copy the scene file together with the texture to the project " -"repository, and Godot will do a full import." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 -msgid "" -"It is important that the mesh is not deformed by bones when exporting. Make " -"sure that the skeleton is reset to its T-pose or default rest pose before " -"exporting with your favorite 3D editor." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 -msgid "Why not FBX?" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 -msgid "" -"Most game engines use the FBX format for importing 3D scenes, which is " -"definitely one of the most standardized in the industry. However, this " -"format requires the use of a closed library from Autodesk, which is " -"distributed with more restrictive licensing terms than Godot." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 -msgid "" -"The plan is, sometime in the future, to offer a binary plug-in using " -"GDNative." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 -msgid "Exporting DAE files from Maya and 3DS Max" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 -msgid "" -"Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " -"by default and should not be used. The best way to export this format is by " -"using the `OpenCollada `__ plugins. They work well, although they are not always " -"up-to date with the latest version of the software." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 -msgid "Exporting DAE files from Blender" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 -msgid "" -"Blender has built-in COLLADA support too, but it's also broken and should " -"not be used." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 -msgid "" -"Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 -msgid "Exporting glTF 2.0 files from Blender" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 -msgid "" -"There are three ways to export glTF files from Blender. As a glTF binary (``." -"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " -"``.bin`` + textures)." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 -msgid "" -"glTF binary files are the smallest of the three options. They include the " -"mesh and textures set up in Blender. When brought into Godot the textures " -"are part of the object's material file." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 -msgid "" -"glTF embedded files function the same way as binary files. They don't " -"provide extra functionality in Godot, and shouldn't be used since they have " -"a larger file size." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 -msgid "" -"There are two reasons to use glTF with the textures separate. One is to have " -"the scene description in a text based format and the binary data in a " -"separate binary file. This can be useful for version control if you want to " -"review changes in a text based format. The second is you need the texture " -"files separate from the material file. If you don't need either of those " -"glTF binary files are fine." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 -msgid "" -"Blender does not export emissive textures with the glTF file. If your model " -"uses one it must be brought in separately." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 -msgid "Exporting ESCN files from Blender" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 -msgid "" -"The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " -"of another name for a .tscn file (Godot scene file); it keeps as much " -"information as possible from a Blender scene." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 -msgid "" -"The ESCN exporter has a detailed `document `__ " -"describing its functionality and usage." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 -msgid "Import workflows" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 -msgid "" -"Godot scene importer allows different workflows regarding how data is " -"imported. Depending on many options, it is possible to import a scene with:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 -msgid "" -"External materials (default): Where each material is saved to a file " -"resource. Modifications to them are kept." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 -msgid "" -"External meshes: Where each mesh is saved to a different file. Many users " -"prefer to deal with meshes directly." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 -msgid "" -"External animations: Allowing saved animations to be modified and merged " -"when sources change." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 -msgid "" -"External scenes: Save each of the root nodes of the imported scenes as a " -"separate scene." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 -msgid "Single scene: A single scene file with everything built in." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 -msgid "" -"As different developers have different needs, this import process is highly " -"customizable." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 -msgid "Import options" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 -msgid "The importer has several options, which will be discussed below:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 -msgid "Root Type" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 -msgid "" -"By default, the type of the root node in imported scenes is \"Spatial\", but " -"this can be modified." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 -msgid "Root Name" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 -msgid "Allows setting a specific name to the generated root node." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 -msgid "Root Scale" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -msgid "The scale of the root node." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 -msgid "Custom Script" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 -msgid "" -"A special script to process the whole scene after import can be provided. " -"This is great for post processing, changing materials, doing funny stuff " -"with the geometry etc." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 -msgid "Create a script like this:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 -msgid "" -"The ``post_import`` function takes the imported scene as argument (the " -"parameter is actually the root node of the scene). The scene that will " -"finally be used must be returned. It can be a different one." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 -msgid "Storage" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 -msgid "" -"By default, Godot imports a single scene. This option allows specifying that " -"nodes below the root will each be a separate scene and instanced into the " -"imported one." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 -msgid "" -"Of course, instancing such imported scenes in other places manually works, " -"too." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 -#: ../../docs/tutorials/io/data_paths.rst:51 -msgid "Location" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 -msgid "" -"Godot supports materials in meshes or nodes. By default, materials will be " -"put on each node." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 -msgid "" -"Materials can be stored within the scene or in external files. By default, " -"they are stored in external files so editing them is possible. This is " -"because most 3D DCCs don't have the same material options as those present " -"in Godot." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 -msgid "" -"When materials are built-in, they will be lost each time the source scene is " -"modified and re-imported." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 -msgid "Keep On Reimport" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 -msgid "" -"Once materials are edited to use Godot features, the importer will keep the " -"edited ones and ignore the ones coming from the source scene. This option is " -"only present if materials are saved as files." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 -msgid "Meshes" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 -msgid "Compress" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 -msgid "" -"Makes meshes use less precise numbers for multiple aspects of the mesh in " -"order to save space." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 -msgid "These are:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 -msgid "" -"Transform Matrix (Location, rotation, and scale) : 32-bit float " -"to 16-bit signed integer." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 -msgid "" -"Vertices : 32-bit float " -"to 16-bit signed integer." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 -msgid "" -"Normals : 32-bit float " -"to 32-bit unsigned integer." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 -msgid "" -"Tangents : 32-bit float " -"to 32-bit unsigned integer." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -msgid "" -"Vertex Colors : 32-bit float " -"to 32-bit unsigned integer." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 -msgid "" -"UV : 32-bit float " -"to 32-bit unsigned integer." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 -msgid "" -"UV2 : 32-bit float " -"to 32-bit unsigned integer." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 -msgid "" -"Vertex weights : 32-bit float " -"to 16-bit unsigned integer." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 -msgid "" -"Armature bones : 32-bit float " -"to 16-bit unsigned integer." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 -msgid "" -"Array index : 32-bit or 16-" -"bit unsigned integer based on how many elements there are." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 -msgid "Additional info:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 -msgid "" -"UV2 = The second UV channel for detail textures and baked lightmap textures." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 -msgid "" -"Array index = An array of numbers that number each element of the arrays " -"above; i.e. they number the vertices and normals." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 -msgid "" -"In some cases, this might lead to loss of precision, so disabling this " -"option may be needed. For instance, if a mesh is very big or there are " -"multiple meshes being imported that cover a large area, compressing the " -"import of this mesh(es) may lead to gaps in geometry or vertices not being " -"exactly where they should be." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 -msgid "Ensure Tangents" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 -msgid "" -"If textures with normal mapping are to be used, meshes need to have tangent " -"arrays. This option ensures that these are generated if not present in the " -"source scene. Godot uses Mikktspace for this, but it's always better to have " -"them generated in the exporter." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 -msgid "" -"Meshes can be stored in separate files (resources) instead of built-in. This " -"does not have much practical use unless one wants to build objects with them " -"directly." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 -msgid "" -"This option is provided to help those who prefer working directly with " -"meshes instead of scenes." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 -msgid "Light Baking" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 -msgid "Whether or not the mesh is used in baked lightmaps." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 -msgid "**Disabled:** The mesh is not used in baked lightmaps." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 -msgid "**Enable:** The mesh is used in baked lightmaps." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 -msgid "" -"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " -"UV layer for lightmaps." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 -msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 -msgid "External Files" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 -msgid "" -"Generated meshes and materials can be optionally stored in a subdirectory " -"with the name of the scene." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 -msgid "Animation options" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 -msgid "" -"Godot provides many options regarding how animation data is dealt with. Some " -"exporters (such as Blender) can generate many animations in a single file. " -"Others, such as 3DS Max or Maya, need many animations put into the same " -"timeline or, at worst, put each animation in a separate file." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 -msgid "Import of animations is enabled by default." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 -msgid "FPS" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 -msgid "" -"Most 3D export formats store animation timeline in seconds instead of " -"frames. To ensure animations are imported as faithfully as possible, please " -"specify the frames per second used to edit them. Failing to do this may " -"result in shaky animations." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 -msgid "Filter Script" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 -msgid "" -"It is possible to specify a filter script in a special syntax to decide " -"which tracks from which animations should be kept. (@TODO this needs " -"documentation)" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 -msgid "" -"By default, animations are saved as built-in. It is possible to save them to " -"a file instead. This allows adding custom tracks to the animations and " -"keeping them after a reimport." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 -msgid "Optimizer" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 -msgid "" -"When animations are imported, an optimizer is run, which reduces the size of " -"the animation considerably. In general, this should always be turned on " -"unless you suspect that an animation might be broken due to it being enabled." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 -msgid "Clips" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 -msgid "" -"It is possible to specify multiple animations from a single timeline as " -"clips. Specify from which frame to which frame each clip must be taken (and, " -"of course, don't forget to specify the FPS option above)." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 -msgid "Scene inheritance" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 -msgid "" -"In many cases, it may be desired to make modifications to the imported " -"scene. By default, this is not possible because if the source asset changes " -"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " -"app), Godot will re-import the whole scene." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 -msgid "" -"It is possible, however, to make local modifications by using *Scene " -"Inheritance*. Try to open the imported scene and the following dialog will " -"appear:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 -msgid "In inherited scenes, the only limitations for modifications are:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 -msgid "Nodes can't be removed (but can be added anywhere)." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 -msgid "" -"Sub-Resources can't be edited (save them externally as described above for " -"this)" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 -msgid "Other than that, everything is allowed!" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 -msgid "Import hints" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 -msgid "" -"Many times, when editing a scene, there are common tasks that need to be " -"done after exporting:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 -msgid "Adding collision detection to objects" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 -msgid "Setting objects as navigation meshes" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 -msgid "" -"Deleting nodes that are not used in the game engine (like specific lights " -"used for modelling)" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 -msgid "" -"To simplify this workflow, Godot offers a few suffixes that can be added to " -"the names of the objects in your 3D modelling software. When imported, Godot " -"will detect them and perform actions automatically:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 -msgid "Remove nodes (-noimp)" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 -msgid "" -"Node names that have this suffix will be removed at import time, no matter " -"what their type is. They will not appear in the imported scene." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 -msgid "Create collisions (-col, -colonly, -convcolonly)" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 -msgid "" -"Option \"-col\" will work only for Mesh nodes. If it is detected, a child " -"static collision node will be added, using the same geometry as the mesh." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 -msgid "" -"However, it is often the case that the visual geometry is too complex or too " -"un-smooth for collisions, which ends up not working well." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 -msgid "" -"To solve this, the \"-colonly\" modifier exists, which will remove the mesh " -"upon import and create a :ref:`class_staticbody` collision instead. This " -"helps the visual mesh and actual collision to be separated." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 -msgid "" -"Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " -"instead of a :ref:`class_concavepolygonshape`." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 -msgid "" -"Option \"-colonly\" can also be used with Blender's empty objects. On " -"import, it will create a :ref:`class_staticbody` with a collision node as a " -"child. The collision node will have one of a number of predefined shapes, " -"depending on Blender's empty draw type:" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 -msgid "Single arrow will create a :ref:`class_rayshape`" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 -msgid "Cube will create a :ref:`class_boxshape`" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 -msgid "Image will create a :ref:`class_planeshape`" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 -msgid "" -"Sphere (and the others not listed) will create a :ref:`class_sphereshape`" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 -msgid "" -"For better visibility in Blender's editor, the user can set \"X-Ray\" option " -"on collision empties and set some distinct color for them in User " -"Preferences / Themes / 3D View / Empty." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 -msgid "Create navigation (-navmesh)" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 -msgid "" -"A mesh node with this suffix will be converted to a navigation mesh. " -"Original Mesh node will be removed." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 -msgid "Create a VehicleBody (-vehicle)" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 -msgid "" -"A mesh node with this suffix will be imported as a child to a :ref:" -"`VehicleBody ` node." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 -msgid "Create a VehicleWheel (-wheel)" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 -msgid "" -"A mesh node with this suffix will be imported as a child to a :ref:" -"`VehicleWheel ` node." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 -msgid "Rigid Body (-rigid)" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 -msgid "Creates a rigid body from this mesh." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 -msgid "Animation loop (-loop, -cycle)" -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 -msgid "" -"Animation clips in the COLLADA document that start or end with the token " -"\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " -"flag set. This is case-sensitive and does not require a hyphen." -msgstr "" - -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 -msgid "" -"In Blender, this requires using the NLA Editor and naming the Action with " -"the \"loop\" or \"cycle\" prefix or suffix." -msgstr "" - -#: ../../docs/getting_started/workflow/export/index.rst:2 -msgid "Export" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:4 -msgid "Exporting projects" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:9 -msgid "Why export?" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:11 -msgid "" -"Originally, Godot did not have any means to export projects. The developers " -"would compile the proper binaries and build the packages for each platform " -"manually." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:15 -msgid "" -"When more developers (and even non-programmers) started using it, and when " -"our company started taking more projects at the same time, it became evident " -"that this was a bottleneck." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:20 -msgid "On PC" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:22 -msgid "" -"Distributing a game project on PC with Godot is rather easy. Drop the Godot " -"binary in the same directory as the ``project.godot`` file, then compress " -"the project directory and you are done." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:26 -msgid "" -"It sounds simple, but there are probably a few reasons why the developer may " -"not want to do this. The first one is that it may not be desirable to " -"distribute loads of files. Some developers may not like curious users " -"peeking at how the game was made, others may find it inelegant, and so on. " -"Another reason is that the developer might prefer a specially-compiled " -"binary, which is smaller in size, more optimized and does not include tools " -"like the editor and debugger." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:34 -msgid "" -"Finally, Godot has a simple but efficient system for creating DLCs as extra " -"package files." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:38 -msgid "On mobile" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:40 -msgid "" -"The same scenario on mobile platforms is a little worse. To distribute a " -"project on those devices, a binary for each of those platforms is built, " -"then added to a native project together with the game data." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:45 -msgid "" -"This can be troublesome because it means that the developer must be " -"familiarized with the SDK of each platform before even being able to export. " -"While learning each SDK is always encouraged, it can be frustrating to be " -"forced to do it at an undesired time." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:50 -msgid "" -"There is also another problem with this approach: different devices prefer " -"some data in different formats to run. The main example of this is texture " -"compression. All PC hardware uses S3TC (BC) compression and that has been " -"standardized for more than a decade, but mobile devices use different " -"formats for texture compression, such as PVRTC (iOS) or ETC (Android)." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:58 -msgid "Export menu" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:60 -msgid "" -"After many attempts at different export workflows, the current one has " -"proven to work the best. At the time of this writing, not all platforms are " -"supported yet, but the supported platforms continue to grow." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:64 -msgid "To open the export menu, click the **Export** button:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:68 -msgid "" -"The export menu will open. However, it will be completely empty. This is " -"because we need to add an export preset." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:73 -msgid "" -"To create an export preset, click the **Add…** button at the top of the " -"export menu. This will open a drop-down list of platforms to choose from for " -"an export preset." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:79 -msgid "" -"The default options are often enough to export, so tweaking them is usually " -"not necessary. However, many platforms require additional tools (SDKs) to be " -"installed to be able to export. Additionally, Godot needs export templates " -"installed to create packages. The export menu will complain when something " -"is missing and will not allow the user to export for that platform until " -"they resolve it:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:88 -msgid "" -"At that time, the user is expected to come back to the documentation and " -"follow instructions on how to properly set up that platform." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:94 -msgid "" -"Apart from setting up the platform, the export templates must be installed " -"to be able to export projects. They can be obtained as a TPZ file (which is " -"a renamed ZIP archive) from the `download page of the website `_." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:99 -msgid "" -"Once downloaded, they can be installed using the **Install Export " -"Templates** option in the editor:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:105 -msgid "Export mode" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:107 -msgid "" -"When exporting, Godot makes a list of all the files to export and then " -"creates the package. There are 3 different modes for exporting:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:110 -msgid "Export every single file in the project" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:111 -msgid "Export only resources (+ custom filter), this is the default." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:112 -msgid "Export only selected resources (+ custom filter)" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:116 -msgid "" -"**Export every single file** - This mode exports every single file in the " -"project. This is good to test if something is being forgotten, but " -"developers often have a lot of unrelated stuff around in the project " -"directory, which makes it a bad idea." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:121 -msgid "" -"**Export only resources** - Only resources are exported. For most projects, " -"this is enough. However many developers like to use custom datafiles in " -"their games. To compensate for this, filters can be added for extra " -"extensions (for instance, ``*.txt,*.csv``)." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:126 -msgid "" -"**Export only selected resources** - Only select resources from a list are " -"exported. This is probably overkill for most projects, but in some cases it " -"is justified (usually huge projects). This mode offers total control of what " -"is exported. Individual resources can be selected and dependency detection " -"is performed to ensure that everything needed is added." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:136 -msgid "Exporting from the command line" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:138 -msgid "" -"In production, it is useful to automate builds, and Godot supports this with " -"the ``--export`` and ``--export-debug`` command line parameters. Exporting " -"from the command line still requires an export preset to define the export " -"parameters. A basic invocation of the command would be:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:147 -msgid "" -"This will export to ``some_name.exe``, assuming there is a preset called " -"\"Windows Desktop\" and the template can be found. The output path is " -"relative to the project path or absolute; it does not respect the directory " -"the command was invoked from." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:152 -msgid "" -"You can also configure it to export only the PCK or ZIP file, allowing a " -"single export to be used with multiple Godot executables. This takes place " -"if the target name ends with ``.pck`` or ``.zip``." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_projects.rst:156 -msgid "" -"It is often useful to combine the ``--export`` flag with the ``--path`` " -"flag, and to create a dedicated export preset for automated export:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:4 -msgid "Exporting packs, patches, and mods" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:7 -msgid "Use cases" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:9 -msgid "" -"Oftentimes one would like to add functionality to one's game after it has " -"been deployed." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:12 -msgid "Examples of this include..." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:14 -msgid "" -"Downloadable Content: the ability to add features and content to one's game." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:15 -msgid "Patches: the ability to fix a bug that is present in a shipped product." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:16 -msgid "Mods: grant other people the ability to create content for one's game." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:18 -msgid "" -"These tools help developers to extend their development beyond the initial " -"release." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:22 -msgid "Overview of PCK files" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:24 -msgid "" -"Godot enables this via a feature called **resource packs** (PCK files, with " -"extension ``.pck``)." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:27 -msgid "**Advantages:**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:29 -msgid "incremental updates/patches" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:30 -msgid "offer DLCs" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:31 -msgid "offer mod support" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:32 -msgid "no source code disclosure needed for mods" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:33 -msgid "more modular project structure" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:34 -msgid "users don’t have to replace the entire game" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:36 -msgid "" -"The first part of using them involves exporting and delivering the project " -"to players. Then, when one wants to add functionality or content later on, " -"they just deliver the updates via PCK files to the users." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:40 -msgid "PCK files usually contain, but are not limited to:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:42 -msgid "scripts" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:43 -msgid "scenes" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:44 -msgid "shaders" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:45 -msgid "models" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:46 -msgid "textures" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:47 -msgid "sound effects" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:48 -msgid "music" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:49 -msgid "any other asset suitable for import into the game" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:51 -msgid "" -"The PCK files can even be an entirely different Godot project, which the " -"original game loads in at runtime." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:55 -msgid "Generating PCK files" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:57 -msgid "" -"In order to pack all resources of a project into a PCK file open the project " -"and go to Project/Export and click on “Export PCK/Zip”. Also make sure to " -"have an export template selected while doing so." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:63 -msgid "" -"Another method would be to :ref:`export from the command line " -"`. If the output file ends with a PCK " -"or ZIP file extension, then the export process will build that type of file " -"for the chosen platform." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:69 -msgid "" -"If one wishes to support mods for their game, they will need their users to " -"create similarly exported files. Assuming the original game expects a " -"certain structure for the PCK's resources and/or a certain interface for its " -"scripts, then either..." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:74 -msgid "" -"The developer must publicize documentation of these expected structures/ " -"interfaces, expect modders to install Godot Engine, and then also expect " -"those modders to conform to the documentation's defined API when building " -"mod content for the game (so that it will work). Users would then use " -"Godot's built in exporting tools to create a PCK file, as detailed above." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:80 -msgid "" -"The developer uses Godot to build a GUI tool for adding their exact API " -"content to a project. This Godot tool must either run on a tools-enabled " -"build of the engine or have access to one (distributed alongside or perhaps " -"in the original game's files). The tool can then use the Godot executable to " -"export a PCK file from the command line with :ref:`OS.execute() " -"`. It makes the most sense for the game to not use " -"a tool-build though (for security) and for the modding tools to *do* use a " -"tool-enabled engine build." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:90 -msgid "Opening PCK files at runtime" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:92 -msgid "" -"To import a PCK file, one uses a one-liner. Keep in mind, there is no error " -"or exception if the import fails. Instead, one might have to create some " -"validation code as a layer on top. The following example expects a “mod.pck” " -"file in the directory of the games executable. The PCK file contains a " -"“mod_scene.tscn” test scene in its root." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:117 -msgid "" -"If you import a file with the same file path/name as one you already have in " -"your project, the imported one will replace it. This is something to watch " -"out for when creating DLC or mods (solved easily with a tool isolating mods " -"to a specific mods subfolder). However, it is also a way of creating patches " -"for one's own game. A PCK file of this kind can fix the content of a " -"previously loaded PCK." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_pcks.rst:126 -msgid "" -"This tutorial should illustrate how easy adding mods, patches or DLC to a " -"game is. The most important thing is to identify how one plans to distribute " -"future content for their game and develop a workflow that is customized for " -"that purpose. Godot should make that process smooth regardless of which " -"route a developer pursues." -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:4 -msgid "Feature tags" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:9 -msgid "" -"Godot has a special system to tag availability of features. Each *feature* " -"is represented as a string, which can refer to many of the following:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:12 -msgid "Platform name." -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:13 -msgid "Platform architecture (64-bit or 32-bit, x86 or ARM)." -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:14 -msgid "Platform type (desktop, mobile, Web)." -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:15 -msgid "Supported texture compression algorithms on the platform." -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:16 -msgid "" -"Whether a build is ``debug`` or ``release`` (``debug`` includes the editor)." -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:17 -msgid "" -"Whether the project is running from the editor or a \"standalone\" binary." -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:18 -msgid "Many more things." -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:20 -msgid "Features can be queried at run-time from the singleton API by calling:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:28 -msgid "Default features" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:30 -msgid "" -"Here is a list of most feature tags in Godot. Keep in mind they are **case-" -"sensitive**:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:33 -msgid "**Feature tag**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:35 -msgid "**Android**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:35 -msgid "Running on Android" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:37 -msgid "**HTML5**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:37 -msgid "Running on HTML5" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:39 -msgid "**JavaScript**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:39 -msgid ":ref:`JavaScript singleton ` is available" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:42 -msgid "**OSX**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:42 -msgid "Running on macOS" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:44 -msgid "**iOS**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:44 -msgid "Running on iOS" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:46 -msgid "**UWP**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:46 -msgid "Running on UWP" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:48 -msgid "**Windows**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:48 -msgid "Running on Windows" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:50 -msgid "**X11**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:50 -msgid "Running on X11 (Linux/BSD desktop)" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:52 -msgid "**Server**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:52 -msgid "Running on the headless server platform" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:54 -msgid "**debug**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:54 -msgid "Running on a debug build (including the editor)" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:56 -msgid "**release**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:56 -msgid "Running on a release build" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:58 -msgid "**editor**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:58 -msgid "Running on an editor build" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:60 -msgid "**standalone**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:60 -msgid "Running on a non-editor build" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:62 -msgid "**64**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:62 -msgid "Running on a 64-bit build (any architecture)" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:64 -msgid "**32**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:64 -msgid "Running on a 32-bit build (any architecture)" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:66 -msgid "**x86_64**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:66 -msgid "Running on a 64-bit x86 build" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:68 -msgid "**x86**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:68 -msgid "Running on a 32-bit x86 build" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:70 -msgid "**arm64**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:70 -msgid "Running on a 64-bit ARM build" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:72 -msgid "**arm**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:72 -msgid "Running on a 32-bit ARM build" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:74 -msgid "**mobile**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:74 -msgid "Host OS is a mobile platform" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:76 -msgid "**pc**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:76 -msgid "Host OS is a PC platform (desktop/laptop)" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:78 -msgid "**web**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:78 -msgid "Host OS is a Web browser" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:80 -msgid "**etc**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:80 -msgid "Textures using ETC1 compression are supported" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:82 -msgid "**etc2**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:82 -msgid "Textures using ETC2 compression are supported" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:84 -msgid "**s3tc**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:84 -msgid "Textures using S3TC (DXT/BC) compression are supported" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:86 -msgid "**pvrtc**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:86 -msgid "Textures using PVRTC compression are supported" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:90 -msgid "Custom features" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:92 -msgid "" -"It is possible to add custom features to a build; use the relevant field in " -"the *export preset* used to generate it:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:98 -msgid "Overriding project settings" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:100 -msgid "" -"Features can be used to override specific configuration values in the " -"*Project Settings*. This allows you to better customize any configuration " -"when doing a build." -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:103 -msgid "" -"In the following example, a different icon is added for the demo build of " -"the game (which was customized in a special export preset, which, in turn, " -"includes only demo levels)." -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:108 -msgid "After overriding, a new field is added for this specific configuration:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:113 -msgid "Default overrides" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:115 -msgid "" -"There are already a lot of settings that come with overrides by default; " -"they can be found in many sections of the project settings." -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:121 -msgid "Customizing the build" -msgstr "" - -#: ../../docs/getting_started/workflow/export/feature_tags.rst:123 -msgid "" -"Feature tags can be used to customize a build process too, by writing a " -"custom **ExportPlugin**. They are also used to specify which shared library " -"is loaded and exported in **GDNative**." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_pc.rst:4 -msgid "Exporting for PC" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_pc.rst:6 -msgid "" -"The simplest way to distribute a game for PC is to copy the executables " -"(``godot.exe`` on Windows, ``godot`` on the rest), compress the folder and " -"send it to someone else. However, this is often not desired." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_pc.rst:10 -msgid "" -"Godot offers a more elegant approach for PC distribution when using the " -"export system. When exporting for PC (Linux, Windows, macOS), the exporter " -"takes all the project files and creates a ``data.pck`` file. This file is " -"bundled with a specially optimized binary that is smaller, faster and does " -"not contain the editor and debugger." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:4 -msgid "Exporting for iOS" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:6 -msgid "" -"These are the steps to load a Godot project in Xcode. This allows you to " -"build and deploy to an iOS device, build a release for the App Store, and do " -"everything else you can normally do with Xcode." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:11 -#: ../../docs/tutorials/legal/complying_with_licenses.rst:15 -#: ../../docs/development/compiling/compiling_for_windows.rst:9 -#: ../../docs/development/compiling/compiling_for_x11.rst:9 -#: ../../docs/development/compiling/compiling_for_osx.rst:9 -#: ../../docs/development/compiling/compiling_for_android.rst:20 -#: ../../docs/development/compiling/compiling_for_ios.rst:9 -#: ../../docs/development/compiling/cross-compiling_for_ios_on_linux.rst:27 -#: ../../docs/development/compiling/compiling_for_uwp.rst:9 -#: ../../docs/development/compiling/compiling_for_web.rst:9 -#: ../../docs/development/compiling/compiling_with_mono.rst:9 -msgid "Requirements" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:13 -msgid "" -"You must export for iOS from a computer running macOS with Xcode installed." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:14 -msgid "" -"Download the Godot export templates. Use the Godot menu: Editor > Manage " -"Export Templates" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:17 -msgid "Export a Godot project to Xcode" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:19 -msgid "" -"In the Godot editor, open the **Export** window from the **Project** menu. " -"When the Export window opens, click **Add..** and select **iOS**." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:22 -msgid "" -"The following export options are required. Leaving any blank will cause the " -"exporter to throw an error:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:25 -msgid "In the **Application** category * **App Store Team ID**" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:27 -msgid "Everything in the **Required Icons** category" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:28 -msgid "Everything in the **Landscape Launch Screens** category" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:29 -msgid "Everything in the **Portrait Launch Screens** category" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:31 -msgid "" -"After you click **Export Project**, there are still two important options " -"left:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:33 -msgid "" -"**Path** is an empty folder that will contain the exported Xcode project " -"files." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:34 -msgid "" -"**File** will be the name of the Xcode project and several project specific " -"files and directories." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:38 -msgid "" -"This tutorial uses **exported_xcode_project_name**, but you will use your " -"project's name. When you see **exported_xcode_project_name** in the " -"following steps, replace it with the name you used instead." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:42 -msgid "" -"Avoid using spaces when you choose your **exported_xcode_project_name** as " -"this can lead to corruption in your XCode project file." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:45 -msgid "When the export completes, the output folder should look like this:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:49 -msgid "" -"Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy " -"like any other iOS app." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:53 -msgid "Active development considerations" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:55 -msgid "" -"The above method creates an exported project that you can build for release, " -"but you have to re-export every time you make a change in Godot." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:58 -msgid "" -"While developing, you can speed this process up by linking your Godot " -"project files directly into your app." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:61 -msgid "In the following example:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:63 -msgid "" -"**exported_xcode_project_name** is the name of the exported iOS application " -"(as above)." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:64 -msgid "**godot_project_to_export** is the name of the Godot project." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:67 -msgid "Steps to link a Godot project folder to Xcode" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 -msgid "Start from an exported iOS project (follow the steps above)." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:70 -msgid "In Finder, drag the Godot project folder into the Xcode file browser." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:74 -msgid "" -"3. In the dialog, make sure **Create folder references** is selected. This " -"means you will be able to continue to edit your Godot project in its current " -"location." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 -msgid "See the **godot_project_to_export** folder in the Xcode file browser." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:80 -msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:84 -msgid "" -"6. Open **exported_xcode_project_name-Info.plist** and add a string property " -"named **godot_path** (this is the real key name) with a value " -"**godot_project_to_export** (this is the name of your project)" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:90 -msgid "" -"That's it! You can now edit your project in the Godot editor and build it in " -"Xcode when you want to run it on a device." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:94 -#: ../../docs/tutorials/platform/services_for_ios.rst:4 -msgid "Services for iOS" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:96 -msgid "" -"Special iOS services can be used in Godot. Check out the :ref:" -"`doc_services_for_ios` page." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:4 -msgid "Exporting for Universal Windows Platform" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:6 -msgid "" -"There's no extra requirement to export an ``.appx`` package that can be " -"installed as a Windows App or submitted to the Windows Store. Exporting UWP " -"packages also works from any platform, not only from Windows." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:10 -msgid "" -"However, if you want to install and run the app, you need to sign it with a " -"trusted signature. Currently, Godot does not support signing of packages, so " -"you need to use external tools to do so." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:14 -msgid "" -"Also, make sure the Publisher Name you set when exporting the package " -"matches the name used on the certificate." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:18 -msgid "Limitations on Xbox One" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:20 -msgid "" -"As described in the `UWP documentation `__:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:25 -msgid "Submitted as an \"App\"" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:23 -msgid "available memory is 1GB" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:24 -msgid "share of 2-4 CPU cores" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:25 -msgid "shared access of GPU power (45%)" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:30 -msgid "" -"Submitted as a \"Game\" (through `Xbox Live Creators Program `__)" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:28 -msgid "available memory is 5GB" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:29 -msgid "4 exclusive CPU cores and 2 shared CPU cores" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:30 -msgid "exclusive access to GPU power (100%)" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:32 -msgid "" -"Exceeding these memory limitations will cause allocation failures and the " -"application will crash." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:35 -msgid "Creating a signing certificate" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:37 -msgid "" -"This requires the ``MakeCert.exe`` and ``Pvk2Pfx.exe`` tools, which come " -"with the Windows SDK. If you use Visual Studio, you can open one of its " -"Developer Prompts, since it comes with these tools and they can be located " -"in the path." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:41 -msgid "" -"You can get more detailed instructions from `Microsoft's documentation " -"`__." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:44 -msgid "First, run ``MakeCert`` to create a private key::" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:48 -msgid "" -"Where ``publisherName`` matches the Publisher Name of your package and " -"``expirationDate`` is in the ``mm/dd/yyyy`` format." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:51 -msgid "" -"Next, create a Personal Information Exchange (.pfx) file using ``Pvk2Pfx." -"exe``::" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:55 -msgid "" -"If you don't specify a password with ``/po`` argument, the PFX will have the " -"same password as the private key." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:58 -msgid "" -"You will also need to trust this certificate in order to be able to install " -"your app. Open the Command Prompt as Administrator and run the following " -"command::" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:64 -msgid "Signing the package" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:66 -msgid "Finally, use ``SignTool.exe`` from the Windows SDK or Visual Studio::" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:71 -msgid "Installing the package" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:73 -msgid "" -"As of the Windows 10 Anniversary Update, you are able to install packages " -"simply by double clicking the ``.appx`` file from Windows Explorer." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:76 -msgid "" -"It's also possible to install by using the ``Add-AppxPackage`` PowerShell " -"cmdlet." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_uwp.rst:78 -msgid "" -"If you want to update your already installed app, you must update the " -"version number on the new package or first uninstall the previous package." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:4 -msgid "Exporting for Android" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:6 -msgid "" -"Exporting for Android has fewer requirements than compiling Godot for it. " -"The following steps detail what is needed to setup the SDK and the engine." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:10 -msgid "Download the Android SDK" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:12 -msgid "" -"Download and install the Android SDK from https://developer.android.com/" -"studio/" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:16 -msgid "Install OpenJDK or Oracle JDK" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:18 -msgid "" -"Download and install `OpenJDK `__ " -"or `Oracle JDK `__. Versions below JDK 8 may not work; some users have reported " -"issues with the jarsigner (used to sign the APKs) in JDK 7." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:21 -msgid "Create a debug.keystore" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:23 -msgid "" -"Android needs a debug keystore file to install to devices and distribute non-" -"release APKs. If you have used the SDK before and have built projects, ant " -"or eclipse probably generated one for you (on Linux and macOS, you can find " -"it in the ``~/.android`` directory)." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:28 -msgid "" -"If you can't find it or need to generate one, the keytool command from the " -"JDK can be used for this purpose:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:36 -msgid "Make sure you have adb" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:38 -msgid "" -"Android Debug Bridge (adb) is the command line tool used to communicate with " -"Android devices. It's installed with the SDK, but you may need to install " -"one (any) of the Android API levels for it to be installed in the SDK " -"directory." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:43 -msgid "Setting it up in Godot" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:45 -msgid "" -"Enter the Editor Settings screen. This screen contains the editor settings " -"for the user account in the computer (it's independent from the project)." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:51 -msgid "Scroll down to the section where the Android settings are located:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:55 -msgid "In that screen, the path to 3 files needs to be set:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:57 -msgid "The *adb* executable (adb.exe on Windows)" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:58 -msgid "The *jarsigner* executable (from JDK 6 or 8)" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:59 -msgid "The debug *keystore*" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:61 -msgid "Once that is configured, everything is ready to export to Android!" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:64 -msgid "Exporting for Google Play Store" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:66 -msgid "" -"Uploading an APK to Google's Play Store requires you to sign using a non-" -"debug keystore file; such file can be generated like this:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:73 -msgid "" -"This keystore and key are used to verify your developer identity, remember " -"the password and keep it in a safe place! Use Google's Android Developer " -"guides to learn more about `APK signing `__." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:76 -msgid "Now fill in the following forms in your Android Export Presets:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:80 -msgid "**Release:** Enter the path to the keystore file you just generated." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:81 -msgid "**Release User:** Replace with the key alias." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:82 -msgid "" -"**Release Password:** Key password. Note that the keystore password and the " -"key password currently have to be the same." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:84 -msgid "" -"**Your export_presets.cfg file now contains sensitive information.** If you " -"use a version control system, you should remove it from public repositories " -"and add it to your ``.gitignore`` file or equivalent." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:88 -msgid "" -"Don't forget to uncheck the **Export With Debug** checkbox while choosing " -"the APK's name." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:93 -msgid "Optimizing the APK size" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:95 -msgid "" -"By default, the APK will contain native libraries for both ARMv7 and ARMv8 " -"architectures. This increases its size significantly. To create a smaller " -"APK, uncheck either **Armeabi-v 7a** or **Arm 64 -v 8a** in your project's " -"Android export preset. This will create an APK that only contains a library " -"for a single architecture. Note that applications targeting ARMv7 can also " -"run on ARMv8 devices, but the opposite is not true." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:102 -msgid "" -"Since August 2019, Google Play requires all applications to be available in " -"64-bit form. This means you cannot upload an APK that contains *just* an " -"ARMv7 library. To solve this, you can upload several APKs to Google Play " -"using its `Multiple APK support `__. Each APK should target a single architecture; " -"creating an APK for ARMv7 and ARMv8 is usually sufficient to cover most " -"devices in use today." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_android.rst:109 -msgid "" -"You can optimize the size further by compiling an Android export template " -"with only the features you need. See :ref:`doc_optimizing_for_size` for more " -"information." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:4 -msgid "Exporting for the Web" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:6 -msgid "" -"HTML5 export allows publishing games made in Godot Engine to the browser. " -"This requires support for `WebAssembly `__ and " -"`WebGL `__ in the user's browser." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:11 -msgid "" -"Use the browser-integrated developer console, usually opened with :kbd:" -"`F12`, to view **debug information** like JavaScript, engine, and WebGL " -"errors." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:15 -msgid "" -"Many browsers, including Firefox and Chromium-based browsers, will not load " -"exported projects when **opened locally** per ``file://`` protocol. To get " -"around this, use a local server." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:19 -msgid "" -"Python offers an easy method to start a local server. Use ``python -m " -"SimpleHTTPServer`` with Python 2 or ``python -m http.server`` with Python 3 " -"to serve the current working directory at ``http://localhost:8000``." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:25 -msgid "WebGL 2" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:27 -msgid "" -"Until the *OpenGL ES 3* renderer is removed from Godot in favor of *Vulkan*, " -"HTML5 export uses *WebGL 2* when the *GLES3* option is selected." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:30 -msgid "" -"Usage of WebGL 2 is not recommended due to its expected removal from Godot " -"without replacement." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:33 -msgid "" -"WebGL 2 is not supported in all browsers. **Firefox** and **Chromium** " -"(Chrome, Opera) are the most popular supported browsers, **Safari** and " -"**Edge** do not work. On **iOS**, all browsers are based on WebKit (i.e. " -"Safari), so they will also not work." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:38 -msgid "" -"Godot's WebGL 2 renderer has issues with 3D and is no longer maintained." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:41 -msgid "Limitations" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:43 -msgid "" -"For security and privacy reasons, many features that work effortlessly on " -"native platforms are more complicated on the web platform. Following is a " -"list of limitations you should be aware of when porting a Godot game to the " -"web." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:48 -msgid "Using cookies for data persistence" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:50 -msgid "" -"Users must **allow cookies** (specifically IndexedDB) if persistence of the " -"``user://`` file system is desired. When playing a game presented in an " -"``iframe``, **third-party** cookies must also be enabled. Incognito/private " -"browsing mode also prevents persistence." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:55 -msgid "" -"The method ``OS.is_userfs_persistent()`` can be used to check if the " -"``user://`` file system is persistent, but can give false positives in some " -"cases." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:60 -msgid "Full screen and mouse capture" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:62 -msgid "" -"Browsers do not allow arbitrarily **entering full screen**. The same goes " -"for **capturing the cursor**. Instead, these actions have to occur as a " -"response to a JavaScript input event. In Godot, this means entering full " -"screen from within a pressed input event callback such as ``_input`` or " -"``_unhandled_input``. Querying the :ref:`class_Input` singleton is not " -"sufficient, the relevant input event must currently be active." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:69 -msgid "" -"For the same reason, the full screen project setting doesn't work unless the " -"engine is started from within a valid input event handler. This requires :" -"ref:`customization of the HTML page `." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:74 -msgid "Audio autoplay" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:76 -msgid "" -"Chrome restricts how websites may play audio. It may be necessary for the " -"player to click or tap or press a key to enable audio." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:79 -msgid "" -"Google offers additional information about their `Web Audio autoplay " -"policies `__." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:83 -msgid ":ref:`class_HTTPClient` and :ref:`class_HTTPRequest`" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:85 -msgid "The HTTP classes have several restrictions on the HTML5 platform:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:87 -msgid "Accessing or changing the ``StreamPeer`` is not possible" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:88 -msgid "Threaded/Blocking mode is not available" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:89 -msgid "" -"Cannot progress more than once per frame, so polling in a loop will freeze" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:90 -msgid "No chunked responses" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:91 -msgid "Host verification cannot be disabled" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:92 -msgid "" -"Subject to `same-origin policy `__" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:95 -msgid "Exported ``.html`` file must not be reused" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:97 -msgid "" -"On export, several text placeholders are replaced in the **generated HTML " -"file** specifically for the given export options. It must not be reused in " -"further exports." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:102 -msgid "Boot splash is not displayed" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:104 -msgid "" -"The default HTML page does not display the boot splash while loading. " -"However, the image is exported as a PNG file, so :ref:`custom HTML pages " -"` can display it." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:109 -msgid "Unimplemented functionality" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:111 -msgid "" -"The following functionality is currently unavailable on the HTML5 platform:" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:113 -#: ../../docs/tutorials/threads/using_multiple_threads.rst:7 -#: ../../docs/tutorials/threads/thread_safe_apis.rst:7 -msgid "Threads" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:114 -#: ../../docs/tutorials/plugins/gdnative/index.rst:2 -msgid "GDNative" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:116 -msgid "Clipboard synchronisation between engine and operating system" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:117 -msgid "" -"Networking other than :ref:`class_HTTPClient` and :ref:" -"`class_WebSocketClient`" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:119 -msgid "" -"Check the `list of open HTML5 issues on Github `__ to see " -"if the functionality you're interested in has an issue yet. If not, open one " -"to communicate your interest." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:125 -msgid "Serving the files" -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:127 -msgid "" -"Exporting for the web generates several files to be served from a web " -"server, including a default HTML page for presentation. A custom HTML file " -"can be used, see :ref:`doc_customizing_html5_shell`." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:131 -msgid "" -"The generated ``.html`` file can be used as ``DirectoryIndex`` in Apache " -"servers and can be renamed to e.g. ``index.html`` at any time, its name is " -"never depended on by default." -msgstr "" - -#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:135 -msgid "" -"The HTML page draws the game at maximum size within the browser window. This " -"way it can be inserted into an ``