From 3426c71f39a24d01cf30b1cbde130bcc57d26336 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Tue, 10 Apr 2018 12:32:22 +0200 Subject: [PATCH] Add fr, es and zh_CN Weblate PO files Using `./update.sh --add-langs`. Further langs will be added directly via Weblate. --- update.sh | 18 + weblate/es.po | 51480 +++++++++++++++++++++++++++++++++++++++++++++ weblate/fr.po | 51480 +++++++++++++++++++++++++++++++++++++++++++++ weblate/zh_CN.po | 51480 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 154458 insertions(+) create mode 100644 weblate/es.po create mode 100644 weblate/fr.po create mode 100644 weblate/zh_CN.po diff --git a/update.sh b/update.sh index 33d3e88478..285fad178e 100755 --- a/update.sh +++ b/update.sh @@ -10,11 +10,15 @@ WEBLATE_DIR="weblate" WEBLATE_TEMPLATE="$WEBLATE_DIR/docs.pot" WEBLATE_POFILES=$(find $WEBLATE_DIR -type f -name "*.po") +# Used only for --add-langs - languages will mostly be added via Weblate directly +LANGS="es fr zh_CN" + # Options update_sphinx_pot=false update_sphinx_po=false update_weblate_pot=false update_weblate_po=false +add_langs=false # Command line arguments while [ $# -gt 0 ]; do @@ -45,6 +49,10 @@ while [ $# -gt 0 ]; do update_weblate_pot=true update_weblate_po=true ;; + --add-langs|-l) + add_langs=true + make_sphinx_po_symlinks=true + ;; *) echo "Invalid argument." esac @@ -82,6 +90,16 @@ if [ "$update_weblate_po" = true ]; then done fi +# Manual method to generate new Weblate PO files to bootstrap a lang +if [ "$add_langs" = true ]; then + for lang in $LANGS; do + if [ ! -f "$WEBLATE_DIR/$lang.po" ]; then + msginit --no-translator -i $WEBLATE_TEMPLATE -o "$WEBLATE_DIR/$lang.po"; + fi + done + WEBLATE_POFILES=$(find $WEBLATE_DIR -type f -name "*.po") +fi + # Generate/Merge Sphinx PO files from Weblate PO file if [ "$update_sphinx_po" = true ]; then echo "=== Merging Sphinx PO files with their template and Weblate PO file ===" diff --git a/weblate/es.po b/weblate/es.po new file mode 100644 index 0000000000..88c6cd263a --- /dev/null +++ b/weblate/es.po @@ -0,0 +1,51480 @@ +# French translations for Godot Engine package +# Traductions françaises du paquet Godot Engine. +# Copyright (C) 2014-2018, 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. +# Automatically generated, 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine latest\n" +"Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" +"POT-Creation-Date: 2018-04-10 12:22+0200\n" +"PO-Revision-Date: 2018-04-10 12:22+0200\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ../../docs/about/introduction.rst:4 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:7 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:4 +#: ../../docs/getting_started/workflow/export/feature_tags.rst:7 +#: ../../docs/getting_started/workflow/project_setup/project_organization.rst:7 +#: ../../docs/getting_started/step_by_step/filesystem.rst:7 +#: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:7 +#: ../../docs/getting_started/step_by_step/animations.rst:7 +#: ../../docs/getting_started/step_by_step/singletons_autoload.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/scene_tree.rst:7 +#: ../../docs/development/cpp/custom_resource_format_loaders.rst:7 +#: ../../docs/development/cpp/creating_android_modules.rst:7 +#: ../../docs/development/cpp/custom_audiostreams.rst:7 +#: ../../docs/tutorials/plugins/editor/import_plugins.rst:7 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:7 +#: ../../docs/tutorials/audio/audio_streams.rst:7 +#: ../../docs/tutorials/audio/audio_buses.rst:7 +#: ../../docs/tutorials/viewports/viewports.rst:7 +#: ../../docs/tutorials/physics/kinematic_character_2d.rst:7 +#: ../../docs/tutorials/physics/ray-casting.rst:7 +#: ../../docs/tutorials/networking/ssl_certificates.rst:7 +#: ../../docs/tutorials/misc/saving_games.rst:7 +#: ../../docs/tutorials/misc/binary_serialization_api.rst:7 +#: ../../docs/tutorials/misc/internationalizing_games.rst:7 +#: ../../docs/tutorials/assetlib/uploading_to_assetlib.rst:7 +#: ../../docs/tutorials/shading/screen-reading_shaders.rst:7 +#: ../../docs/tutorials/shading/shading_language.rst:7 +#: ../../docs/tutorials/shading/shader_materials.rst:7 +#: ../../docs/tutorials/math/matrices_and_transforms.rst:7 +#: ../../docs/tutorials/math/vector_math.rst:7 +#: ../../docs/tutorials/debug/overview_of_debugging_tools.rst:7 +#: ../../docs/tutorials/3d/high_dynamic_range.rst:7 +#: ../../docs/tutorials/3d/using_gridmaps.rst:7 +#: ../../docs/tutorials/3d/3d_performance_and_limitations.rst:7 +#: ../../docs/tutorials/3d/gi_probes.rst:7 +#: ../../docs/tutorials/3d/baked_lightmaps.rst:7 +#: ../../docs/tutorials/3d/mesh_generation_with_heightmap_and_shaders.rst:7 +#: ../../docs/tutorials/3d/lights_and_shadows.rst:7 +#: ../../docs/tutorials/3d/spatial_material.rst:7 +#: ../../docs/tutorials/3d/reflection_probes.rst:7 +#: ../../docs/tutorials/3d/using_multi_mesh_instance.rst:7 +#: ../../docs/tutorials/3d/using_transforms.rst:7 +#: ../../docs/tutorials/2d/using_tilemaps.rst:7 +#: ../../docs/tutorials/2d/2d_movement.rst:7 +#: ../../docs/tutorials/2d/2d_transforms.rst:7 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:7 +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 aims at giving 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 "About Godot Engine" +msgstr "" + +#: ../../docs/about/introduction.rst:23 +msgid "" +"A game engine is a complex tool, and it is therefore difficult to present " +"Godot in a few words. Here's however our PR presentation, which you are free " +"to reuse if you need a quick writeup about Godot Engine." +msgstr "" + +#: ../../docs/about/introduction.rst:27 +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 that 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:34 +msgid "" +"Godot is completely free and open source under the very 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:41 +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:46 +msgid "About the documentation" +msgstr "" + +#: ../../docs/about/introduction.rst:48 +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:55 +msgid "" +"You can contribute to Godot's documentation by opening issue tickets or " +"sending patches via pull requests on its GitHub `source repository `_." +msgstr "" + +#: ../../docs/about/introduction.rst:59 +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:64 +msgid "Organisation of the documentation" +msgstr "" + +#: ../../docs/about/introduction.rst:66 +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:70 +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:73 +msgid "" +"The :ref:`sec-learn` section is the 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:78 +msgid "" +"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " +"in any order. It contains many feature-specific tutorials and documentations." +msgstr "" + +#: ../../docs/about/introduction.rst:80 +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:83 +msgid "" +"The :ref:`sec-community` gives information related to contributing to the " +"engine development and the life of its community, e.g. how to report bugs, " +"help with the documentation, etc. It also points to various community " +"channels like IRC and Discord and contains a list of recommended third-party " +"tutorials outside of this documentation." +msgstr "" + +#: ../../docs/about/introduction.rst:88 +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:94 +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:97 +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/Libre Open Source Software available under the `OSI-approved " +"`_ MIT license." +msgstr "" + +#: ../../docs/about/faq.rst:11 +msgid "" +"This means it is free as in \"free speech\" as well as in \"free beer\"." +msgstr "" + +#: ../../docs/about/faq.rst:13 +msgid "In short:" +msgstr "" + +#: ../../docs/about/faq.rst:15 +msgid "There are no usage restrictions on Godot" +msgstr "" + +#: ../../docs/about/faq.rst:16 +msgid "" +"This means you can use it for any game or application, commercially or non-" +"commercially, in any industry" +msgstr "" + +#: ../../docs/about/faq.rst:17 +msgid "You can modify, (re)distribute and remix Godot to your heart's content" +msgstr "" + +#: ../../docs/about/faq.rst:19 +msgid "" +"For more, see `here `_ or ask " +"your lawyer of choice." +msgstr "" + +#: ../../docs/about/faq.rst:21 +msgid "" +"All the contents of the documentation 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/faq.rst:25 +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:28 +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:31 +msgid "" +"Also see `the license page on the Godot website `_." +msgstr "" + +#: ../../docs/about/faq.rst:34 +msgid "Which platforms are supported by Godot?" +msgstr "" + +#: ../../docs/about/faq.rst:36 +msgid "**For the editor:**" +msgstr "" + +#: ../../docs/about/faq.rst:38 +msgid "Windows" +msgstr "" + +#: ../../docs/about/faq.rst:39 ../../docs/about/faq.rst:45 +msgid "Mac OS X" +msgstr "" + +#: ../../docs/about/faq.rst:40 ../../docs/about/faq.rst:46 +msgid "X11 (Linux, \\*BSD)" +msgstr "" + +#: ../../docs/about/faq.rst:42 +msgid "**For exporting your games:**" +msgstr "" + +#: ../../docs/about/faq.rst:44 +msgid "Windows (and UWP)" +msgstr "" + +#: ../../docs/about/faq.rst:47 +msgid "Android" +msgstr "" + +#: ../../docs/about/faq.rst:48 +msgid "iOS" +msgstr "" + +#: ../../docs/about/faq.rst:49 +msgid "Web" +msgstr "" + +#: ../../docs/about/faq.rst:51 +msgid "" +"Both 32 and 64 bit binaries are supported where it makes sense, with 64 " +"being the default." +msgstr "" + +#: ../../docs/about/faq.rst:53 +msgid "" +"Some users also report building and using Godot successfully on ARM-based " +"system with Linux, like the Raspberry Pi. There is also some unofficial " +"thirdparty work being done on building for some consoles. None of this is " +"included in the default build scripts or export templates, however." +msgstr "" + +#: ../../docs/about/faq.rst:57 +msgid "" +"For more on this, see the sections on :ref:`exporting ` and :ref:`compiling Godot yourself `." +msgstr "" + +#: ../../docs/about/faq.rst:60 +msgid "Which languages are supported in Godot?" +msgstr "" + +#: ../../docs/about/faq.rst:62 +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:65 +msgid "" +"Note that C# and Visual Scripting support is comparatively young and " +"GDScript still has some advantages as outlined below." +msgstr "" + +#: ../../docs/about/faq.rst:68 +msgid "" +"Support for new languages can be added by third parties using the GDNative / " +"NativeScript / PluginScript facilities. (See question about plugins below.)" +msgstr "" + +#: ../../docs/about/faq.rst:71 +msgid "" +"Work is currently underway, for example, on unofficial bindings for Godot to " +"`Python `_ and `Nim `_." +msgstr "" + +#: ../../docs/about/faq.rst:75 +msgid "" +"GDScript? Why use a custom scripting language instead of my language of " +"choice?" +msgstr "" + +#: ../../docs/about/faq.rst:77 +msgid "" +"The short answer is that we think the additional complexity both on your " +"side (when first learning Godot and GDScript) as well as our side " +"(maintenance) is worth the more integrated and seamless experience over " +"attracting additional users with more familiar programming languages that " +"result in a worse experience. We understand if you would rather use another " +"language in Godot (see list of supported options above), but we strongly " +"encourage you to try it and see the benefits for yourself." +msgstr "" + +#: ../../docs/about/faq.rst:85 +msgid "" +"GDScript is designed to integrate from the ground to the way Godot works, " +"more than any other language, and is very simple and easy to learn. Takes at " +"most a day or two to get comfortable and it's very easy to see the benefits " +"once you do. Please do the effort to learn GDScript, you will not regret it." +msgstr "" + +#: ../../docs/about/faq.rst:91 +msgid "" +"Godot C++ API is also efficient and easy to use (the entire Godot editor is " +"made with this API), and an excellent tool to optimize parts of a project, " +"but trying to use it instead of GDScript for an entire game is, in most " +"cases, a waste of time." +msgstr "" + +#: ../../docs/about/faq.rst:96 +msgid "" +"Yes, for more than a decade we tried in the past integrating several VMs " +"(and even shipped games using them), such as Python, Squirrel and Lua (in " +"fact we authored tolua++ in the past, one of the most popular C++ binders). " +"None of them worked as well as GDScript does now." +msgstr "" + +#: ../../docs/about/faq.rst:101 +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:105 +msgid "For the more technically versed, proceed to the next item." +msgstr "" + +#: ../../docs/about/faq.rst:108 +msgid "I don't believe you. What are the technical reasons for the item above?" +msgstr "" + +#: ../../docs/about/faq.rst:110 +msgid "The main reasons are:" +msgstr "" + +#: ../../docs/about/faq.rst:112 +msgid "" +"No good thread support in most script VMs, and Godot uses threads (Lua, " +"Python, Squirrel, JS, AS, etc.)." +msgstr "" + +#: ../../docs/about/faq.rst:114 +msgid "" +"No good 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:116 +msgid "" +"Horrible interface for binding to C++, results in large amount of code, " +"bugs, bottlenecks and general inefficiency (Lua, Python, Squirrel, JS, etc.)" +msgstr "" + +#: ../../docs/about/faq.rst:119 +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:122 +msgid "" +"Garbage collector results in stalls or unnecessarily large memory usage " +"(Lua, Python, JS, AS, etc.)." +msgstr "" + +#: ../../docs/about/faq.rst:124 +msgid "" +"Difficulty to integrate with the code editor for providing code completion, " +"live editing, etc. (all of them). This is very well supported by GDScript." +msgstr "" + +#: ../../docs/about/faq.rst:128 +msgid "" +"GDScript was designed to solve the issues above, and performs very well in " +"all the above scenarios. Please learn GDScript and enjoy a very smooth " +"integration of scripting with the game engine (yes, it's a rare but very " +"enjoyable situation when things just work). It's worth it, give it a try!" +msgstr "" + +#: ../../docs/about/faq.rst:135 +msgid "I want to extend Godot. What are my options for creating plugins?" +msgstr "" + +#: ../../docs/about/faq.rst:137 +msgid "" +"For creating Godot Editor plugins look at :ref:`EditorPlugins " +"` and tool scripts." +msgstr "" + +#: ../../docs/about/faq.rst:139 +msgid "" +"Additional languages could be added via PluginScript or the more low-level " +"NativeScript." +msgstr "" + +#: ../../docs/about/faq.rst:141 +msgid "" +"If you want to add a certain native library, your best bet is GDNative and " +"custom C++ modules." +msgstr "" + +#: ../../docs/about/faq.rst:143 +msgid "Also see the official blog posts on these topics:" +msgstr "" + +#: ../../docs/about/faq.rst:145 +msgid "" +"`A look at the GDNative architecture `_" +msgstr "" + +#: ../../docs/about/faq.rst:146 +msgid "`GDNative is here! `_" +msgstr "" + +#: ../../docs/about/faq.rst:148 +msgid "" +"You can also take a look at the GDScript implementation, the Godot modules " +"as well as the `unofficial Python support `_ for Godot." +msgstr "" + +#: ../../docs/about/faq.rst:152 +msgid "Why is FBX not supported for import?" +msgstr "" + +#: ../../docs/about/faq.rst:154 +msgid "" +"FBX SDK has a very `restrictive license `_, that is incompatible with the `open license " +"`_ provided by Godot." +msgstr "" + +#: ../../docs/about/faq.rst:158 +msgid "" +"That said, Godot's Collada support is really good, please use the " +"`OpenCollada `_ exporter for maximum compatibility if you are using Maya or 3DS " +"Max. If you are using Blender, take a look at our own `Better Collada " +"Exporter `_." +msgstr "" + +#: ../../docs/about/faq.rst:164 +msgid "Also, glTF support was added in Godot 3.0." +msgstr "" + +#: ../../docs/about/faq.rst:166 +msgid "" +"FBX support could still be provided by third parties as a plugin. (See " +"Plugins question above.)" +msgstr "" + +#: ../../docs/about/faq.rst:169 +msgid "" +"Will [Insert closed SDK such as PhysX, GameWorks, etc.] be supported in " +"Godot?" +msgstr "" + +#: ../../docs/about/faq.rst:171 +msgid "" +"No, the aim of Godot is to create a complete open source engine licensed " +"under MIT, so you have complete control over every single piece of it. Open " +"versions of functionality or features from such SDKs may be eventually added " +"though." +msgstr "" + +#: ../../docs/about/faq.rst:176 +msgid "" +"That said, because it is open source, and modular, nothing prevents you or " +"anyone else interested into adding those libraries as a module and ship your " +"game using them, as either open or closed source. Everything is allowed." +msgstr "" + +#: ../../docs/about/faq.rst:181 +msgid "" +"To see how support for your SDK of choice could still be provided, look at " +"the Plugins question above." +msgstr "" + +#: ../../docs/about/faq.rst:184 +msgid "" +"How should assets be created to handle multiple resolutions and aspect " +"ratios?" +msgstr "" + +#: ../../docs/about/faq.rst:186 +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:195 +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 aspects. This " +"is mostly needed for 2D, as in 3D it's just a matter of Camera XFov or YFov." +msgstr "" + +#: ../../docs/about/faq.rst:200 +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:208 +msgid "" +"Use the stretch options in Godot, 2D stretching with keeping aspect works " +"best. Check the :ref:`doc_multiple_resolutions` tutorial on how to achieve " +"this." +msgstr "" + +#: ../../docs/about/faq.rst:212 +msgid "" +"Determine a minimum resolution and then decide if you want your game to " +"stretch vertically or horizontally for different aspect ratios, or whether " +"there is a minimum one and you want black bars to appear instead. This is " +"also explained in the previous step." +msgstr "" + +#: ../../docs/about/faq.rst:217 +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:221 +msgid "And that's it! Your game should work in multiple resolutions." +msgstr "" + +#: ../../docs/about/faq.rst:223 +msgid "" +"If there really is a desire to make your game also work on ancient devices " +"with tiny screens (less 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:229 +msgid "I have a great idea that will make Godot better. What do you think?" +msgstr "" + +#: ../../docs/about/faq.rst:231 +msgid "" +"Your idea will most certainly be ignored. Examples of stuff that is ignored " +"by the developers:" +msgstr "" + +#: ../../docs/about/faq.rst:234 +msgid "Let's do this because it will make Godot better" +msgstr "" + +#: ../../docs/about/faq.rst:235 +msgid "Let's do this in Godot because another game engine does it" +msgstr "" + +#: ../../docs/about/faq.rst:236 +msgid "Let's remove this because I think it's not needed" +msgstr "" + +#: ../../docs/about/faq.rst:237 +msgid "Let's remove clutter and bloat and make Godot look nicer" +msgstr "" + +#: ../../docs/about/faq.rst:238 +msgid "Let's add an alternative workflow for people who prefer it" +msgstr "" + +#: ../../docs/about/faq.rst:240 +msgid "" +"Godot developers are always willing to talk to you and listen to your " +"feedback very openly, to an extent rarely seen in open source projects, but " +"they will care mostly about real issues you have while using Godot, not " +"ideas solely based on personal belief. Developers are interested in (for " +"example):" +msgstr "" + +#: ../../docs/about/faq.rst:246 +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:248 +msgid "" +"The features you would like to see implemented because you need them for " +"your project." +msgstr "" + +#: ../../docs/about/faq.rst:250 +msgid "" +"The concepts that were difficult to understand in order to learn the " +"software." +msgstr "" + +#: ../../docs/about/faq.rst:252 +msgid "The parts of your workflow you would like to see optimized." +msgstr "" + +#: ../../docs/about/faq.rst:253 +msgid "" +"Parts where you missed clear tutorials or where the documentation wasn't up " +"to par." +msgstr "" + +#: ../../docs/about/faq.rst:255 +msgid "" +"Once one of the above points is stated, we can work together on a solution " +"and this is where your ideas and suggestions are most valuable and welcome, " +"they need to be in context of a real issue." +msgstr "" + +#: ../../docs/about/faq.rst:259 +msgid "" +"As such, please don't feel that your ideas for Godot are unwelcome. Instead, " +"try to reformulate them as a problem first, so developers and the community " +"have a base ground to discuss first." +msgstr "" + +#: ../../docs/about/faq.rst:263 +msgid "Examples of how NOT to state problems generally and vaguely are:" +msgstr "" + +#: ../../docs/about/faq.rst:265 +msgid "Certain feature is ugly" +msgstr "" + +#: ../../docs/about/faq.rst:266 +msgid "Certain workflow is slow" +msgstr "" + +#: ../../docs/about/faq.rst:267 +msgid "Certain feature needs optimization" +msgstr "" + +#: ../../docs/about/faq.rst:268 +msgid "Certain aspect of the UI looks cluttered" +msgstr "" + +#: ../../docs/about/faq.rst:270 +msgid "" +"Associating something with an adjective will not get you much attention and " +"developers will most likely not understand you. Instead, try to reformulate " +"your problem as a story such as:" +msgstr "" + +#: ../../docs/about/faq.rst:274 +msgid "I try to move objects around but always end up picking the wrong one" +msgstr "" + +#: ../../docs/about/faq.rst:275 +msgid "" +"I tried to make a game like Battlefield but I'm not managing to understand " +"how to get lighting to look the same." +msgstr "" + +#: ../../docs/about/faq.rst:277 +msgid "" +"I always forget which script I was editing, and it takes me too many steps " +"to go back to it." +msgstr "" + +#: ../../docs/about/faq.rst:280 +msgid "" +"This will allow you to convey what you are thinking much better and set a " +"common ground for discussion. Please try your best to state your problems as " +"stories to the developers and the community, before discussing any idea. Be " +"specific and concrete." +msgstr "" + +#: ../../docs/about/faq.rst:285 +msgid "" +"Bonus points for bringing screenshots, concrete numbers, test cases or " +"example projects (if applicable)." +msgstr "" + +#: ../../docs/about/faq.rst:288 +msgid "How can I support Godot development or contribute?" +msgstr "" + +#: ../../docs/about/faq.rst:290 +msgid "See :ref:`doc_ways_to_contribute`." +msgstr "" + +#: ../../docs/about/faq.rst:293 +msgid "Who is working on Godot? How can I contact you?" +msgstr "" + +#: ../../docs/about/faq.rst:295 +msgid "" +"See the corresponding page on the `Godot website `_." +msgstr "" + +#: ../../docs/about/index.rst:2 +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:7 +#: ../../docs/development/cpp/variant_class.rst:7 +#: ../../docs/tutorials/inputs/mouse_and_input_coordinates.rst:7 +msgid "About" +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:33 +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:37 +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:44 +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:48 +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:51 +msgid "A quick example in GDScript::" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:62 +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:67 +msgid "Multiple placeholders" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:69 +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:79 +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:84 +msgid "Format specifiers" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:86 +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:93 +msgid "Placeholder types" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:95 +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:99 +msgid "``s``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:99 +msgid "" +"**Simple** conversion to String by the same method as implicit String " +"conversion." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:102 +msgid "``c``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:102 +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:105 +msgid "``d``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:105 +msgid "" +"A **decimal integral** number. Expects an integral or real number (will be " +"floored)." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:108 +msgid "``o``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:108 +msgid "" +"An **octal integral** number. Expects an integral or real number (will be " +"floored)." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:111 +msgid "``x``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:111 +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:114 +msgid "``X``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:114 +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:117 +msgid "``f``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:117 +msgid "A **decimal real** number. Expects an integral or real number." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:122 +msgid "Placeholder modifiers" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:124 +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:128 +msgid "``+``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:128 +msgid "In number specifiers, **show + sign** if positive." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:130 +#: ../../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:130 +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:134 +msgid "``.``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:134 +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:137 +msgid "``-``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:137 +msgid "**Pad to the right** rather than the left." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:139 +msgid "``*``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:139 +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:145 +msgid "Padding" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:147 +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:152 +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:158 +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:164 +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:176 +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:185 +msgid "Dynamic padding" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:187 +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:198 +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:206 +msgid "Escape sequence" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:208 +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:217 +msgid "Format method examples" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:219 +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:224 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:244 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:260 +msgid "**Type**" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:224 +msgid "**Style**" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:224 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:244 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:257 +msgid "**Example**" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:224 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:244 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:257 +msgid "**Result**" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:226 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:228 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:230 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:193 +msgid "Dictionary" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:226 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:232 +msgid "key" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:226 +msgid "" +"\"Hi, {name} v{version}!\".format({\"name\":\"Godette\", \"version\":" +"\"3.0\"})" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:226 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:228 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:230 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:232 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:234 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:236 +msgid "Hi, Godette v3.0!" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:228 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:234 +msgid "index" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:228 +msgid "\"Hi, {0} v{1}!\".format({\"0\":\"Godette\", \"1\":\"3.0\"})" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:230 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:236 +msgid "mix" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:230 +msgid "" +"\"Hi, {0} v{version}!\".format({\"0\":\"Godette\", \"version\":\"3.0\"})" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:232 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:234 +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:236 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:172 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:180 +msgid "Array" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:232 +msgid "" +"\"Hi, {name} v{version}!\".format([[\"version\":\"3.0\"], [\"name\":\"Godette" +"\"])" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:234 +msgid "\"Hi, {0} v{1}!\".format([\"Godette\",\"3.0\"])" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:236 +msgid "\"Hi, {name} v{0}!\".format([3.0, [\"name\":\"Godette\"]])" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:239 +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:246 +msgid "Infix (default)" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:246 +msgid "\"Hi, {0} v{1}\".format([\"Godette\", \"3.0\"], \"{_}\")" +msgstr "" + +#: ../../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 +msgid "Hi, Godette v3.0" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:248 +msgid "Postfix" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:248 +msgid "\"Hi, 0% v1%\".format([\"Godette\", \"3.0\"], \"_%\")" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:250 +msgid "Prefix" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:250 +msgid "\"Hi, %0 v%1\".format([\"Godette\", \"3.0\"], \"%_\")" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:253 +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:259 +msgid "" +"\"Hi, {0} v{version}\".format({0:\"Godette\", \"version\":\"%0.2f\" % 3.114})" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_format_string.rst:259 +msgid "Hi, Godette v3.11" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:4 +msgid "GDScript Style Guide" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:7 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:144 +#: ../../docs/getting_started/workflow/assets/importing_images.rst:50 +#: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 +#: ../../docs/tutorials/inputs/inputevent.rst:117 +#: ../../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 +#: ../../docs/tutorials/shading/shading_language.rst:50 +#: ../../docs/tutorials/shading/shading_language.rst:383 +#: ../../docs/tutorials/shading/shading_language.rst:420 +#: ../../docs/tutorials/shading/shading_language.rst:460 +#: ../../docs/tutorials/shading/shading_language.rst:653 +#: ../../docs/tutorials/shading/shading_language.rst:712 +#: ../../docs/tutorials/shading/shading_language.rst:792 +#: ../../docs/tutorials/shading/shading_language.rst:875 +#: ../../docs/tutorials/shading/shading_language.rst:925 +#: ../../docs/tutorials/shading/shading_language.rst:948 +#: ../../docs/tutorials/shading/shading_language.rst:1003 +#: ../../docs/tutorials/shading/shading_language.rst:1040 +#: ../../docs/tutorials/shading/shading_language.rst:1085 +#: ../../docs/tutorials/shading/shading_language.rst:1098 +#: ../../docs/tutorials/gui/bbcode_in_richtextlabel.rst:27 +msgid "Description" +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:83 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:107 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:127 +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:93 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:114 +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:137 +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 by a blank line." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:74 +msgid "Use one blank line inside functions to separate logical sections." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:77 +msgid "One Statement per Line" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:79 +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:102 +msgid "Avoid Unnecessary Parentheses" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:104 +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:122 +msgid "Whitespace" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:124 +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:147 +msgid "**Never!**" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:156 +msgid "Naming Conventions" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:158 +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:163 +msgid "Classes and Nodes" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:165 +msgid "Use PascalCase: ``extends KinematicBody``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:167 +msgid "Also when loading a class into a constant or variable:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:174 +msgid "Functions and Variables" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:176 +msgid "Use snake\\_case: ``get_node()``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:178 +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:183 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1189 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:61 +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 +#: ../../docs/development/cpp/object_class.rst:211 +msgid "Signals" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:185 +msgid "Use past tense:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:193 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:508 +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:211 +#: ../../docs/development/cpp/object_class.rst:94 +msgid "Constants" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:195 +msgid "" +"Use CONSTANT\\_CASE, all caps, with an underscore (\\_) to separate words: " +"``const MAX_SPEED = 200``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:4 +#: ../../docs/getting_started/scripting/gdscript/index.rst:2 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:112 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:127 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:140 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:178 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:221 +#: ../../docs/getting_started/step_by_step/scripting.rst:22 +msgid "GDScript" +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 just 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:118 +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:123 +msgid "Language" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:125 +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:130 +msgid "Identifiers" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:132 +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:138 +msgid "Keywords" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:140 +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." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:144 +msgid "Keyword" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:146 +msgid "if" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:146 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:148 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:150 +msgid "See `if/else/elif`_." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:148 +msgid "elif" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:150 +msgid "else" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:152 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:663 +msgid "for" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:152 +msgid "See for_." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:154 +msgid "do" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:154 +msgid "Reserved for future implementation of do...while loops." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:156 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:652 +msgid "while" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:156 +msgid "See while_." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:158 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:692 +msgid "match" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:158 +msgid "See match_." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:160 +msgid "switch" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:160 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:162 +msgid "Reserved for future implementation." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:162 +msgid "case" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:164 +msgid "break" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:164 +msgid "Exits the execution of the current ``for`` or ``while`` loop." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:166 +msgid "continue" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:166 +msgid "" +"Immediately skips to the next iteration of the ``for`` or ``while`` loop." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:168 +msgid "pass" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:168 +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:170 +msgid "return" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:170 +msgid "Returns a value from a function." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:172 +msgid "class" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:172 +msgid "Defines a class." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:174 +msgid "extends" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:174 +msgid "Defines what class to extend with the current class." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:176 +#: ../../docs/tutorials/misc/locales.rst:360 +msgid "is" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:176 +msgid "Tests whether a variable extends a given class." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:178 +msgid "tool" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:178 +msgid "Executes the script in the editor." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:180 +msgid "signal" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:180 +msgid "Defines a signal." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:182 +msgid "func" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:182 +msgid "Defines a function." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:184 +msgid "static" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:184 +msgid "Defines a static function. Static member variables are not allowed." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:186 +msgid "const" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:186 +msgid "Defines a constant." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:188 +msgid "enum" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:188 +msgid "Defines an enum." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:190 +msgid "var" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:190 +msgid "Defines a variable." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:192 +msgid "onready" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:192 +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:194 +msgid "export" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:194 +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:196 +msgid "setget" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:196 +msgid "Defines setter and getter functions for a variable." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:198 +msgid "breakpoint" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:198 +msgid "Editor helper for debugger breakpoints." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:202 +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:472 +msgid "Operators" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:204 +msgid "" +"The following is the list of supported operators and their precedence (TODO, " +"change since this was made to reflect python operators)" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:208 +msgid "**Operator**" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:208 +#: ../../docs/getting_started/workflow/export/feature_tags.rst:32 +msgid "**Description**" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:210 +msgid "``x[index]``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:210 +msgid "Subscription, Highest Priority" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:212 +msgid "``x.attribute``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:212 +msgid "Attribute Reference" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:214 +msgid "``is``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:214 +msgid "Instance Type Checker" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:216 +msgid "``~``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:216 +msgid "Bitwise NOT" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:218 +msgid "``-x``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:218 +msgid "Negative" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:220 +msgid "``*`` ``/`` ``%``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:220 +msgid "Multiplication / Division / Remainder" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:222 +msgid "" +"NOTE: The result of these operations depends on the operands types. If both " +"are Integers, then the result will be an Integer. That means 1/10 returns 0 " +"instead of 0.1. If at least one of the operands is a float, then the result " +"is a float: float(1)/10 or 1.0/10 return both 0.1." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:231 +msgid "``+`` ``-``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:231 +msgid "Addition / Subtraction" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:233 +msgid "``<<`` ``>>``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:233 +msgid "Bit Shifting" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:235 +msgid "``&``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:235 +msgid "Bitwise AND" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:237 +msgid "``^``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:237 +msgid "Bitwise XOR" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:239 +msgid "``|``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:239 +msgid "Bitwise OR" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:241 +msgid "``<`` ``>`` ``==`` ``!=`` ``>=`` ``<=``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:241 +msgid "Comparisons" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:243 +msgid "``in``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:243 +msgid "Content Test" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:245 +msgid "``!`` ``not``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:245 +msgid "Boolean NOT" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:247 +msgid "``and`` ``&&``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:247 +msgid "Boolean AND" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:249 +msgid "``or`` ``||``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:249 +msgid "Boolean OR" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:251 +msgid "``if x else``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:251 +msgid "Ternary if/else" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:253 +msgid "``=`` ``+=`` ``-=`` ``*=`` ``/=`` ``%=`` ``&=`` ``|=``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:253 +msgid "Assignment, Lowest Priority" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:257 +msgid "Literals" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:260 +msgid "**Literal**" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:262 +msgid "``45``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:262 +msgid "Base 10 integer" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:264 +msgid "``0x8F51``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:264 +msgid "Base 16 (hex) integer" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:266 +msgid "``3.14``, ``58.1e-10``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:266 +msgid "Floating point number (real)" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:268 +msgid "``\"Hello\"``, ``\"Hi\"``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:268 +msgid "Strings" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:270 +msgid "``\"\"\"Hello, Dude\"\"\"``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:270 +msgid "Multiline string" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:272 +msgid "``@\"Node/Label\"``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:272 +msgid "NodePath or StringName" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:276 +msgid "Comments" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:278 +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:297 +msgid "Built-in types" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:300 +msgid "Basic built-in types" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:302 +msgid "A variable in GDScript can be assigned to several built-in types." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:305 +#: ../../docs/tutorials/misc/binary_serialization_api.rst:25 +msgid "null" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:307 +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:311 +#: ../../docs/tutorials/misc/binary_serialization_api.rst:27 +msgid "bool" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:313 +msgid "The Boolean data type can only contain ``true`` or ``false``." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:316 +msgid "int" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:318 +msgid "" +"The integer data type can only contain integer numbers, (both negative and " +"positive)." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:322 +#: ../../docs/tutorials/misc/binary_serialization_api.rst:31 +msgid "float" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:324 +msgid "Used to contain a floating point value (real numbers)." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:327 +msgid ":ref:`String `" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:329 +msgid "" +"A sequence of characters in `Unicode format `_. Strings can contain the `standard C escape sequences `_. GDScript supports :ref:`format " +"strings aka printf functionality `." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:335 +msgid "Vector built-in types" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:338 +msgid ":ref:`Vector2 `" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:340 +msgid "" +"2D vector type containing ``x`` and ``y`` fields. Can also be accessed as " +"array." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:344 +msgid ":ref:`Rect2 `" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:346 +msgid "" +"2D Rectangle type containing two vectors fields: ``position`` and ``size``. " +"Alternatively contains an ``end`` field which is ``position+size``." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:350 +msgid ":ref:`Vector3 `" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:352 +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:356 +msgid ":ref:`Transform2D `" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:358 +msgid "3x2 matrix used for 2D transforms." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:361 +msgid ":ref:`Plane `" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:363 +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:367 +msgid ":ref:`Quat `" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:369 +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:373 +msgid ":ref:`AABB `" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:375 +msgid "" +"Axis-aligned bounding box (or 3D box) contains 2 vectors fields: " +"``position`` and ``size``. Alternatively contains an ``end`` field which is " +"``position+size``." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:380 +msgid ":ref:`Basis `" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:382 +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:387 +msgid ":ref:`Transform `" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:389 +msgid "" +"3D Transform contains a Basis field ``basis`` and a Vector3 field ``origin``." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:393 +msgid "Engine built-in types" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:396 +msgid ":ref:`Color `" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:398 +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:402 +msgid ":ref:`NodePath `" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:404 +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:408 +msgid ":ref:`RID `" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:410 +msgid "Resource ID (RID). Servers use generic RIDs to reference opaque data." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:413 +msgid ":ref:`Object `" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:415 +msgid "Base class for anything that is not a built-in type." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:418 +msgid "Container built-in types" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:421 +msgid ":ref:`Array `" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:423 +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``. Starting with Godot 2.1, indices may be " +"negative like in Python, to count from the end." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:437 +msgid "" +"GDScript arrays are allocated linearly in memory for speed. Very 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 " +"also use less memory but are atomic and tend to run slower than generic " +"arrays. They are therefore only recommended to use for very large data sets:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:444 +msgid "" +":ref:`PoolByteArray `: An array of bytes (integers from " +"0 to 255)." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:445 +msgid ":ref:`PoolIntArray `: An array of integers." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:446 +msgid ":ref:`PoolRealArray `: An array of floats." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:447 +msgid ":ref:`PoolStringArray `: An array of strings." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:448 +msgid "" +":ref:`PoolVector2Array `: An array of :ref:`Vector2 " +"` objects." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:449 +msgid "" +":ref:`PoolVector3Array `: An array of :ref:`Vector3 " +"` objects." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:450 +msgid "" +":ref:`PoolColorArray `: An array of :ref:`Color " +"` objects." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:453 +msgid ":ref:`Dictionary `" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:455 +msgid "Associative container which contains values referenced by unique keys." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:468 +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:482 +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:491 +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:228 +msgid "Data" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:494 +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 +msgid "Variables" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:496 +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:510 +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:524 +msgid "Enums" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:526 +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:529 +msgid "" +"If you pass a name to the enum, it would also put all the values inside a " +"constant dictionary of that name." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:550 +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:391 +#: ../../docs/tutorials/shading/shading_language.rst:255 +msgid "Functions" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:552 +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:565 +msgid "" +"A function can ``return`` at any point. The default return value is ``null``." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:568 +msgid "Referencing Functions" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:570 +msgid "" +"To call a function in a *base class* (i.e. one ``extend``-ed in your current " +"class), prepend ``.`` to the function name:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:577 +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:581 +msgid "" +"To reference a function by name at runtime, (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:594 +msgid "" +"Remember that default functions like ``_init``, and most notifications such " +"as ``_enter_tree``, ``_exit_tree``, ``_process``, ``_physics_process``, etc. " +"are called in all base classes automatically. So there is only a need to " +"call the function explicitly when overloading them in some way." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:602 +msgid "Static functions" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:604 +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:615 +msgid "Statements and control flow" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:617 +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:622 +msgid "if/else/elif" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:624 +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:638 +msgid "Short statements can be written on the same line as the condition::" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:645 +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:654 +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:665 +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:694 +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:697 +msgid "Basic syntax:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:710 +msgid "**Crash-course for people who are familiar to switch statements**:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:712 +msgid "Replace ``switch`` with ``match``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:713 +msgid "Remove ``case``" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:714 +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:715 +msgid "Change ``default`` to a single underscore." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:718 +msgid "**Control flow**:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:720 +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:724 +msgid "There are 6 pattern types:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:736 +msgid "constant pattern" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:727 +msgid "constant primitives, like numbers and strings ::" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:748 +msgid "variable pattern" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:739 +msgid "matches the contents of a variable/enum ::" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:762 +msgid "wildcard pattern" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:751 +msgid "This pattern matches everything. It's written as a single underscore." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:753 +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:775 +msgid "binding pattern" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:765 +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:794 +msgid "array pattern" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:778 +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:780 +msgid "" +"The length of the array is tested first, it has to be the same size as the " +"pattern, otherwise the pattern don't match." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:782 +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:784 +msgid "Every subpattern has to be comma separated. ::" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:819 +msgid "dictionary pattern" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:797 +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:799 +msgid "" +"The size of the dictionary is tested first, it has to be the same size as " +"the pattern, otherwise the pattern don't match." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:801 +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:803 +msgid "Every subpattern has to be comma separated." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:805 +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:807 +msgid "A value pattern is separated from the key pattern with a ``:`` ::" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:830 +msgid "Multipatterns:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:822 +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:833 +msgid "Classes" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:835 +msgid "" +"By default, the body of a script file is an unnamed class and it can only be " +"referenced externally as a resource or file. Class syntax is meant to be " +"very compact and can only contain member variables or functions. Static " +"functions are allowed, but not static members (this is in the spirit of " +"thread safety, since scripts can be initialized in separate threads without " +"the user knowing). In the same way, member variables (including arrays and " +"dictionaries) are initialized every time an instance is created." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:844 +msgid "Below is an example of a class file." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:856 +msgid "Inheritance" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:858 +msgid "A class (stored as a file) can inherit from" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:860 +msgid "A global class" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:861 +msgid "Another class file" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:862 +msgid "An inner class inside another class file." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:864 +msgid "Multiple inheritance is not allowed." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:866 +msgid "Inheritance uses the ``extends`` keyword:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:880 +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:895 +msgid "Class Constructor" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:897 +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:901 +msgid "If a parent constructor takes arguments, they are passed like this:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:909 +msgid "Inner classes" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:911 +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:931 +msgid "Classes as resources" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:933 +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:949 +msgid "Exports" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:951 +msgid "" +"Class members can be exported. This means their value gets saved along with " +"the resource (e.g. 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_basics.rst:960 +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 below)." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:963 +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_basics.rst:1043 +msgid "" +"It must be noted that even if the script is not being run while at the " +"editor, the exported properties are still editable (see below for \"tool\")." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1048 +msgid "Exporting bit flags" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1050 +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_basics.rst:1059 +msgid "" +"Restricting the flags to a certain number of named flags is also possible. " +"The syntax is very similar to the enumeration syntax:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1067 +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_basics.rst:1072 +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_basics.rst:1076 +msgid "Exporting arrays" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1078 +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_basics.rst:1104 +msgid "Setters/getters" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1106 +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:1109 +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:1116 +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:1133 +msgid "Either of the *setter* or *getter* functions can be omitted:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1142 +msgid "" +"Get/Setters are especially useful when exporting variables to editor in tool " +"scripts or plugins, for validating input." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1145 +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:1160 +msgid "Tool mode" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1162 +msgid "" +"Scripts, by default, don't run inside the editor and only the exported " +"properties can be changed. In some cases it is desired that they do run " +"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:1177 +msgid "Memory management" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1179 +msgid "" +"If a class inherits from :ref:`class_Reference`, then instances will be " +"freed when no longer in use. No garbage collector exists, just simple " +"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:1191 +msgid "" +"It is often desired to send a notification that something happened in an " +"instance. GDScript supports creation of built-in Godot signals. Declaring a " +"signal in GDScript is easy using the `signal` keyword." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1202 +msgid "" +"These signals, just like regular signals, can be connected in the editor or " +"from code. Just take the instance of a class where the signal was declared " +"and connect it to the method of another instance:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1218 +msgid "" +"It is also possible to bind arguments to a signal that lacks them with your " +"custom values:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1226 +msgid "" +"This is very useful when a signal from many objects is connected to a single " +"callback and the sender must be identified:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1238 +msgid "" +"Finally, emitting a custom signal is done by using the Object.emit_signal " +"method:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1249 +msgid "Coroutines" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1251 +msgid "" +"GDScript offers support for `coroutines `_ via the ``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:1273 +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1297 +msgid "Will print:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1281 +msgid "" +"It is also possible to pass values between yield() and resume(), for example:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1306 +msgid "Coroutines & signals" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1308 +msgid "" +"The real strength of using ``yield`` is when combined with signals. " +"``yield`` can accept two parameters, an object and a signal. When the signal " +"is received, execution will recommence. Here are some examples:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1324 +msgid "Onready keyword" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1326 +msgid "" +"When using nodes, it's very 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:1338 +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_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 very simple 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 very 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 to still create the " +"entire 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:106 +msgid "Pointers & referencing:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:108 +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:113 +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:119 +msgid "C++:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:135 +msgid "Java:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:153 +msgid "GDScript:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:165 +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:173 +msgid "Arrays" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:175 +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:202 +msgid "And in GDScript:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:211 +msgid "" +"In dynamically typed languages, arrays can also double as other datatypes, " +"such as lists:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:221 +msgid "Or unordered sets:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:230 +msgid "Dictionaries" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:232 +msgid "" +"Dictionaries are a very 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 on limited " +"form)." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:238 +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 very 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:244 +msgid "Example of Dictionary:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:251 +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:260 +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 dictionaries resemble python dictionaries, it also supports Lua " +"style syntax and indexing, which makes it very useful for writing initial " +"states and quick structs:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:317 +msgid "For & while" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:319 +msgid "Iterating in some statically typed languages can be quite complex:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:340 +msgid "This is usually greatly simplified in dynamically typed languages:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:347 +msgid "" +"Container datatypes (arrays and dictionaries) are iterable. Dictionaries " +"allow iterating the keys:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:355 +msgid "Iterating with indices is also possible:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:362 +msgid "The range() function can take 3 arguments:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:370 +msgid "Some examples:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:380 +msgid "Translate to:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:390 +msgid "And backwards looping is done through a negative counter:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:396 +msgid "becomes" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:403 +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:384 +msgid "While" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:405 +msgid "while() loops are the same everywhere:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:416 +msgid "Custom iterators" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:417 +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:449 +msgid "And it can be used like any other iterator:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:457 +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:461 +msgid "Duck typing" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:463 +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:468 +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:479 +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:487 +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:496 +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:502 +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:505 +msgid "In this case, it translates to:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:507 +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:509 +msgid "Yes, we should call it Hulk typing instead." +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:511 +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 more strict, so checking if the " +"function exists is desirable:" +msgstr "" + +#: ../../docs/getting_started/scripting/gdscript/gdscript_advanced.rst:522 +msgid "" +"Then, simply define that method and anything the rock touches can be smashed." +msgstr "" + +#: ../../docs/getting_started/scripting/index.rst:2 +#: ../../docs/getting_started/step_by_step/resources.rst:138 +#: ../../docs/getting_started/step_by_step/scripting.rst:4 +#: ../../docs/tutorials/networking/http_request_class.rst:22 +msgid "Scripting" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:6 +msgid "" +"C# support is a new feature in 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:11 +msgid "" +"This page provides a brief intro 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:16 +msgid "" +"C# is a high-level programming language developed by Microsoft. In Godot it " +"is implemented with the Mono 5.2 .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:20 +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:25 +msgid "Setup C# for Godot" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:27 +msgid "" +"To use C# in Godot you must have `Mono `_ installed (at least version 5.2), as well as MSBuild (at least version " +"15.0) which should come with the Mono installation." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:30 +msgid "" +"Additionally, your Godot version must have Mono support enabled, so take " +"care to download the **Mono version** of Godot. If you are building Godot " +"from source, make sure to follow the steps to include Mono support in your " +"build outlined on the :ref:`doc_compiling_with_mono` page." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:34 +msgid "Configuring an external editor" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:36 +msgid "" +"While Godot does have its own scripting editor, its support for C# is kept " +"minimal, and it's recommended that you use an external IDE or editor, such " +"as Microsoft Visual Studio Code, or MonoDevelop, which provide auto-" +"completion, debugging and other features useful when working with C#. To set " +"it up, in Godot click on ``Editor``, then ``Editor Settings``. Scroll down " +"to the bottom, to the ``Mono`` settings. Under Mono click on ``Editor``, and " +"on that page choose your external editor of choice." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:45 +msgid "Creating a C# script" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:47 +msgid "" +"After you successfully setup 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:51 +msgid "" +"Note that while some specifics change, most of the things work the same when " +"using C# for scripting. If you're new to Godot, you may want to peruse the " +"tutorials on :ref:`doc_scripting` at this point. While some places in the " +"documentation still lack C# examples, most things can be transferred easily " +"from GDScript." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:56 +msgid "Project setup and workflow" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:58 +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 project (``.csproj``) as well as some utility files and folders (``." +"mono``, sometimes ``Properties``). All of these but ``.mono`` are important " +"and should be kept in your version control system. ``.mono`` can be safely " +"added to the ignore list of your VCS. When troubleshooting, it sometimes can " +"help to delete the ``.mono`` folder and let it regenerate." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:63 +msgid "" +"Note that currently there are some issues where the Godot and the C# project " +"don't stay in sync; if you delete, rename or move things like scripts or " +"nodes, they may no longer match up. In this case, it can help to edit the " +"solution files manually." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:66 +msgid "" +"Example: If you created a script (e.g. ``Test.cs``) and delete it in Godot, " +"compilation will fail because the now missing file is still expected to be " +"there by the CS project. You can for now simply open up the ``.csproj`` 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:77 +msgid "" +"Simply remove that line and your project should now again build fine. 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:80 +#: ../../docs/tutorials/misc/background_loading.rst:87 +#: ../../docs/tutorials/misc/pausing_games.rst:72 +msgid "Example" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:82 +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:109 +msgid "" +"As you can see, the things normally in global scope in GDScript like Godot's " +"``print`` function are available in the ``GD`` namespace. For a list of " +"those, see the class reference pages for :ref:`@GDScript ` " +"and :ref:`@GlobalScope `." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:113 +msgid "" +"Keep in mind that the class you wish to attach to your node should be named " +"as the ``.cs`` file. If not, 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:117 +msgid "General differences between C# and GDScript" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:119 +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:123 +msgid "For more, see the :ref:`doc_c_sharp_differences` page." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:126 +msgid "Current gotchas and known issues" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:128 +msgid "" +"As C# support is quite new to Godot, there are some growing pains and things " +"that still 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:131 +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:132 +msgid "Writing editor plugins and tool scripts in C# is not yet supported" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:133 +msgid "" +"Exporting a project may not yet work (`#15615 `_)" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:136 +msgid "Performance of C# in Godot" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_basics.rst:138 +msgid "" +"According to some preliminary `benchmarks `_, performance of C# in Godot - while generally in the same order " +"of magnitude - is roughly **~4x** that of GDScript in some naive cases. For " +"full performance, 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_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`` in GDScript and C++." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:15 +msgid "Global Scope" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:17 +msgid "" +"Available under ``Godot.GD``. Some things were moved to their own classes, " +"like Math and Random. See below." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:20 +msgid "" +"Global functions like ``print``, ``var2str`` and ``weakref`` are located " +"under ``GD`` in C#." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:23 +msgid "``ERR_*`` constants were moved to ``Godot.Error``." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:26 +#: ../../docs/tutorials/math/index.rst:2 +msgid "Math" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:28 +msgid "" +"Math functions like ``abs``, ``acos``, ``asin``, ``atan`` and ``atan2`` are " +"located under ``Mathf`` instead of in global scope. ``PI`` is ``Mathf.PI``" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:33 +msgid "Random" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:35 +msgid "" +"Random functions like ``rand_range`` and ``rand_seed`` are located under " +"``Random``, so use ``Random.RandRange`` instead of ``rand_range``." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:39 +msgid "Export keyword" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:41 +msgid "" +"Use the ``[Export]`` attribute instead of the GDScript ``export`` keyword." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:44 +msgid "Signal keyword" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:46 +msgid "" +"Use the ``[Signal]`` attribute 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:55 +msgid "Singletons" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:57 +msgid "" +"Singletons provide static methods rather than using the singleton pattern in " +"C#. This is to make code less verbose and similar to GDScript. Example:" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:65 +#: ../../docs/development/cpp/core_types.rst:175 +#: ../../docs/tutorials/plugins/editor/import_plugins.rst:244 +#: ../../docs/tutorials/plugins/editor/import_plugins.rst:250 +msgid "String" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:67 +msgid "" +"Use ``System.String`` (``string``). All the Godot String methods are " +"provided by the ``StringExtensions`` class as extension methods. Example:" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:75 +msgid "There are a few differences though:" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:77 +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:81 +msgid "" +"``IsSubsequenceOf``/``IsSubsequenceOfi``: An additional method is provided " +"which is an overload of ``IsSubsequenceOf`` allowing to explicitly specify " +"case sensitivity:" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:92 +msgid "" +"``Match``/``Matchn``/``ExprMatch``: An additional method is provided besides " +"``Match`` and ``Matchn``, which allows to explicitly specify case " +"sensitivity:" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:103 +#: ../../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:105 +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 to ``Basis()`` in GDScript and C++." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:109 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:124 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:137 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:156 +msgid "" +"The following methods were converted to properties with their respective " +"names changed:" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:112 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:127 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:140 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:151 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:159 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:178 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:221 +#: ../../docs/getting_started/scripting/c_sharp/index.rst:2 +msgid "C#" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:114 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:131 +msgid "get_scale()" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:114 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:131 +#: ../../docs/tutorials/math/matrices_and_transforms.rst:309 +#: ../../docs/tutorials/3d/using_multi_mesh_instance.rst:64 +#: ../../docs/tutorials/2d/particle_systems_2d.rst:261 +msgid "Scale" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:118 +#: ../../docs/tutorials/math/matrices_and_transforms.rst:157 +msgid "Transform2D" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:120 +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 to ``Transform2D()`` " +"in GDScript and C++." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:129 +msgid "get_origin()" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:129 +msgid "Origin" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:130 +msgid "get_rotation()" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:130 +#: ../../docs/tutorials/math/matrices_and_transforms.rst:223 +#: ../../docs/tutorials/animation/cutout_animation.rst:324 +msgid "Rotation" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:135 +msgid "Plane" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:142 +msgid "center()" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:142 +msgid "Center" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:146 +msgid "Rect2" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:148 +msgid "" +"The following fields were converted to properties with their respective " +"names changed:" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:153 +msgid "end" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:153 +msgid "End" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:161 +msgid "get_area()" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:161 +msgid "Area" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:165 +msgid "Quat" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:167 +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 to ``Quat()`` in GDScript and C++." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:174 +msgid "" +"*This is temporary. Array is ref-counted, so it will need its own type that " +"wraps the native side. PoolArrays will also need their own type to be used " +"the way they are meant to.*" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:180 +msgid "object[]" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:181 +msgid "PoolIntArray" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:181 +msgid "int[]" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:182 +msgid "PoolByteArray" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:182 +msgid "byte[]" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:183 +msgid "PoolFloatArray" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:183 +msgid "float[]" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:184 +msgid "PoolStringArray" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:184 +msgid "String[]" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:185 +msgid "PoolColorArray" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:185 +msgid "Color[]" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:186 +msgid "PoolVector2Array" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:186 +msgid "Vector2[]" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:187 +msgid "PoolVector3Array" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:187 +msgid "Vector3[]" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:190 +msgid "" +"In some exceptional cases a raw array (``type[]``) may be required instead " +"of a ``List``." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:195 +msgid "" +"*This is temporary. Array is ref-counted, so it will need its own type that " +"wraps the native side.*" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:197 +msgid "Use ``Dictionary``." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:200 +msgid "Variant" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:202 +msgid "``System.Object`` (``object``) is used in place of ``Variant``." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:205 +msgid "Communicating with other scripting languages" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:207 +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:213 +msgid "Other differences" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:215 +msgid "" +"``preload``, ``assert`` and ``yield`` as they work in GDScript are currently " +"not available in C#." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:218 +msgid "Other differences:" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:223 +msgid "Color8" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:223 +msgid "Color.Color8" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:224 +msgid "is_inf" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:224 +msgid "float.IsInfinity" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:225 +msgid "is_nan" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:225 +msgid "float.IsNaN" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:226 +msgid "dict2inst" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:226 +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:227 +msgid "? TODO" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:227 +msgid "inst2dict" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:228 +msgid "load" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_differences.rst:228 +msgid "GD.load which is the same as ResourceLoader.load" +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 provied an overview over 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 casted 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 casted to Sprite, and " +"for this reason it cannot be used with value types." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:45 +msgid "**Type checking using the IS operator**" +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:47 +msgid "" +"To check if the node can be casted to Sprite, you can use the ``is`` " +"operator. The ``is`` operator returns false if the node cannot be casted to " +"Sprite, otherwise it returns true." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:58 +msgid "" +"For more advanced type checking, you can look into `Pattern Matching " +"`_." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:63 +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:65 +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:75 +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:95 +msgid "Emitting signals is done with the ``EmitSignal`` method." +msgstr "" + +#: ../../docs/getting_started/scripting/c_sharp/c_sharp_features.rst:105 +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:107 +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/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, just 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 " +"*Connnections*: 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, it's easy to understand the logic within a function by just " +"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:28 +msgid "Connections" +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:60 +msgid "" +"Connecting is a relatively simple process. Just 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 the beginning, 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, just 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 (@TODO, document this). Ticking the " +"\"Export\" options 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 right-click menu to customize its arguments:" +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:176 +msgid "" +"The signal you have just 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. Just 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 just 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 just " +"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:288 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:4 +#: ../../docs/getting_started/step_by_step/scene_tree.rst:42 +msgid "SceneTree" +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 as 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 just 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 +#: ../../docs/tutorials/shading/shading_language.rst:222 +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 very 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 +#: ../../docs/tutorials/shading/shading_language.rst:712 +#: ../../docs/tutorials/shading/shading_language.rst:792 +#: ../../docs/tutorials/shading/shading_language.rst:948 +#: ../../docs/tutorials/shading/shading_language.rst:1003 +#: ../../docs/tutorials/shading/shading_language.rst:1040 +#: ../../docs/tutorials/shading/shading_language.rst:1098 +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 GDScript (@TODO, link to gdscript methods?). Most of them are " +"mathematical functions, but others can be very useful helpers. Just make " +"sure to take a look at the list at some point." +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:406 +msgid "By Type" +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:408 +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:413 +msgid "Call" +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:415 +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:419 +msgid "Constructors" +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:421 +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:427 +msgid "Destructor" +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:429 +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:435 +msgid "Emit Signal" +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:437 +msgid "" +"Emits signals from any object. In general it's not very useful, as dragging " +"a signal to the canvas works better." +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:441 +msgid "Get/Set" +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:443 +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:447 +msgid "Wait" +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:449 +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:454 +msgid "Yield" +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:456 +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:460 +msgid "Yield Signal" +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:462 +msgid "Same as Yield, but will wait until a given signal is emitted." +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:466 +msgid "Index" +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:468 +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:474 +msgid "" +"These are mostly generic operators such as addition, multiplication, " +"comparison, etc. By default, these mostly accept any datatype (and will " +"error in run-time if the types feeded do not match for 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:483 +msgid "Expression Node" +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:485 +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. Just type any expression on it and it will be executed in real-" +"time." +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:488 +msgid "Expression nodes can:" +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:490 +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:495 +msgid "Access local variables or properties:" +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:500 +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:505 +msgid "Call API functions:" +msgstr "" + +#: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:510 +msgid "" +"Use sequenced mode, which makes more sense in case of respecting the " +"processing order:" +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 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/index.rst:2 +#: ../../docs/getting_started/step_by_step/scripting.rst:40 +msgid "VisualScript" +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: Just " +"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 to start the editing of 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 case for this is to " +"separate a function into more, or 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/workflow/export/exporting_projects.rst:4 +msgid "Exporting projects" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:7 +msgid "Why exporting?" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:9 +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:13 +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:18 +msgid "On PC" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:20 +msgid "" +"Distributing a game project on PC with Godot is rather easy. Just drop the " +"godot.exe (or godot) binary together in the same place as the engine.cfg " +"file, zip it and you are done. This can be taken advantage of to make custom " +"installers." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:25 +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 just find it inelegant, etc." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:31 +msgid "" +"Another reason is that, for distribution, the developer might prefer a " +"specially compiled binary, which is smaller in size, more optimized and does " +"not include tools inside (like the editor, debugger, etc.)." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:35 +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:39 +msgid "On mobile" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:41 +msgid "" +"The same scenario in mobile is a little worse. To distribute a project in " +"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 PVRCT (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, just 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." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:72 +msgid "" +"That is because we need to add an export preset. To do that 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:78 +msgid "" +"The default options are often enough to export, so tweaking them is not " +"necessary, but provide extra control. 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:87 +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:91 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:189 +msgid "Export templates" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:93 +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 (a renamed ." +"zip) file from the `download page of the website `_." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:98 +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:104 +msgid "Export mode" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:106 +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:109 +msgid "Export every single file in the project" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:110 +msgid "Export only resources (+custom filter), this is default." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:111 +msgid "Export only selected resources (+custom filter)" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:115 +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 dev directory, " +"which makes it a bad idea." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:120 +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 (like, *.txt,*.csv, etc.)." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:125 +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. As a plus, this mode " +"allows to \"Bundle\" scenes and dependencies into a single file, which is " +"*really* useful for games distributed on optical media." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:139 +msgid "Export from Command Line" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:141 +msgid "" +"In production it is useful to automate builds, and Godot supports this with " +"the ``--export`` and ``--export-debug`` command line parameters. Exporting " +"from command line still requires an export template to define the export " +"parameters. A basic invocation of the export would be ``godot --export " +"\"Windows Desktop\" some_name``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:147 +msgid "" +"Which, assuming there is a preset called \"Windows Desktop\" and the " +"template can be found, will export to ``some_name.exe``. 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 just the .pck or .zip file (allowing a " +"single export to be used with multiple Godot executables). This takes place " +"if:" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:156 +msgid "The export preset is not marked as runnable" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:157 +msgid "The target name ends with `.pck` or with `.zip`" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_projects.rst:159 +msgid "" +"It is often useful to combine the ``--export`` flag with the ``--path`` " +"flag, and to create a dedicated export template for automated export: " +"``godot --path path/to/project --export \"pck\" game_name.pck``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/one-click_deploy.rst:4 +msgid "One-click deploy" +msgstr "" + +#: ../../docs/getting_started/workflow/export/one-click_deploy.rst:7 +msgid "Sounds good, what is it?" +msgstr "" + +#: ../../docs/getting_started/workflow/export/one-click_deploy.rst:9 +msgid "" +"This feature will pop up automatically once a platform is properly " +"configured and a supported device is connected to the computer. Since things " +"can go wrong at many levels (platform may not be configured correctly, SDK " +"may be incorrectly installed, device may be improperly configured, kitty ate " +"the USB cable, etc.), it's good to let the user know that it exists." +msgstr "" + +#: ../../docs/getting_started/workflow/export/one-click_deploy.rst:16 +msgid "" +"Some platforms (at the time of this writing, only Android and Blackberry 10) " +"can detect when a USB device is connected to the computer, and offer the " +"user to automatically export, install and run the project (in debug mode) on " +"the device. This feature is called, in industry buzz-words, \"One Click " +"Deploy\" (though, it's technically two clicks...)." +msgstr "" + +#: ../../docs/getting_started/workflow/export/one-click_deploy.rst:23 +msgid "Steps for one-click deploy" +msgstr "" + +#: ../../docs/getting_started/workflow/export/one-click_deploy.rst:25 +msgid "Configure target platform." +msgstr "" + +#: ../../docs/getting_started/workflow/export/one-click_deploy.rst:26 +msgid "" +"Configure device (make sure it's in developer mode, likes the computer, usb " +"is recognized, usb cable is plugged, etc.)." +msgstr "" + +#: ../../docs/getting_started/workflow/export/one-click_deploy.rst:28 +msgid "Connect the device.." +msgstr "" + +#: ../../docs/getting_started/workflow/export/one-click_deploy.rst:29 +msgid "And voila!" +msgstr "" + +#: ../../docs/getting_started/workflow/export/one-click_deploy.rst:33 +msgid "Click once.. and deploy!" +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, and it 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 bits (64/32)." +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:14 +msgid "Platform type (desktop/mobile)." +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:15 +msgid "Supported texture compression in platform." +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:16 +msgid "Whether a build is debug or release." +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:17 +msgid "Many more things." +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:19 +msgid "Features can be queried in run-time to the singleton API by calling:" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:27 +msgid "Default features" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:29 +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:32 +msgid "**Feature Tag**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:34 +msgid "**Android**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:34 +msgid "Running on Android" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:36 +msgid "**JavaScript**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:36 +msgid "Running on JavaScript (HTML5)" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:38 +msgid "**OSX**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:38 +msgid "Running on macOS" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:40 +msgid "**iOS**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:40 +msgid "Running on iOS" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:42 +msgid "**UWP**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:42 +msgid "Running on UWP" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:44 +msgid "**Windows**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:44 +msgid "Running on Windows" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:46 +msgid "**X11**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:46 +msgid "Running on X11" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:48 +msgid "**debug**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:48 +msgid "Running on a debug build" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:50 +msgid "**release**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:50 +msgid "Running on a release build" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:52 +msgid "**32**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:52 +msgid "Running on a 32-bit build" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:54 +msgid "**64**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:54 +msgid "Running on a 64-bit build" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:56 +msgid "**mobile**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:56 +msgid "Host OS is a mobile platform" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:58 +msgid "**pc**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:58 +msgid "Host OS is a PC platform (desktop/laptop)" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:60 +msgid "**web**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:60 +msgid "Host OS is a Web browser" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:62 +msgid "**etc**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:62 +msgid "Textures using ETC1 compression are supported" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:64 +msgid "**etc2**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:64 +msgid "Textures using ETC2 compression are supported" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:66 +msgid "**s3tc**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:66 +msgid "Textures using S3TC (DXT/BC) compression are supported" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:68 +msgid "**pvrtc**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:68 +msgid "Textures using PVRTC compression are supported" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:72 +msgid "Custom features" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:74 +msgid "" +"It is possible to add custom features to a build, just use the relevant " +"field in the *export preset* used to generate it:" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:80 +msgid "Overriding project settings" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:82 +msgid "" +"Features can be used to override specific configuration values in the " +"*Project Settings*. This allows to better customize any configuration when " +"doing a build." +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:85 +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:90 +msgid "After overriding, a new field is added for this specific configuration:" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:95 +msgid "Default overrides" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:97 +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:103 +msgid "Customizing Build" +msgstr "" + +#: ../../docs/getting_started/workflow/export/feature_tags.rst:105 +msgid "" +"Feature tags can be used to customize a build process too, by writing a " +"custom **ExportPlugin**. They also are used to specify which shared library " +"is loaded and exported in **GDNative**." +msgstr "" + +#: ../../docs/getting_started/workflow/export/index.rst:2 +msgid "Export" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:4 +msgid "Customizing the Web export HTML page" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:6 +msgid "" +"Rather than the default HTML page that comes with the export templates, it " +"is also possible to use a custom HTML page. This allows drastic " +"customization of the final web presentation and behavior. The path to custom " +"HTML page is specified in the export options as ``Html/Custom Html Shell``." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:11 +msgid "" +"The default HTML page is available in the Godot Engine repository at `/mist/" +"dist/html/default.html `_." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:15 +msgid "Placeholder substitution" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:17 +msgid "" +"When exporting the game, several placeholders in the HTML page are " +"substituted by values dependening on the export:" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:21 +msgid "Placeholder" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:21 +msgid "substituted by" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:23 +msgid "``$GODOT_BASENAME``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:23 +msgid "" +"Basename of exported files without suffixes, e.g. ``game`` when exporting " +"``game.html``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:26 +msgid "``$GODOT_DEBUG_ENABLED``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:26 +msgid "``true`` if debugging, ``false`` otherwise" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:28 +msgid "``$GODOT_HEAD_INCLUDE``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:28 +msgid "" +"Custom string to include just before the end of the HTML ```` element" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:32 +msgid "" +"The HTML file must evaluate the JavaScript file ``$GODOT_BASENAME.js``. This " +"file defines a global ``Engine`` object used to start the engine, :ref:`see " +"below ` for details." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:36 +msgid "" +"The boot splash image is exported as ``$GODOT_BASENAME.png`` and can be used " +"e.g. in ```` elements." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:39 +msgid "" +"``$GODOT_DEBUG_ENABLED`` can be useful to optionally display e.g. an output " +"console or other debug tools." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:42 +msgid "" +"``$GODOT_HEAD_INCLUDE`` is substituted with the string specified by the " +"export option ``Html/Head Include``." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:48 +msgid "The ``Engine`` object" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:50 +msgid "" +"The JavaScript global object ``Engine`` is defined by ``$GODOT_BASENAME.js`` " +"and serves as an interface to the engine start-up process." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:53 +msgid "The object itself has only two methods, ``load()`` and ``unload()``." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:56 +msgid "``Engine.load(basePath)``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:58 +msgid "Loads the engine from the passed base path." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:60 +msgid "Returns a promise that resolves once the engine is loaded." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:63 +msgid "``Engine.unload()``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:65 +msgid "" +"Unloads the module to free memory. This is called automatically once the " +"module is instantiated unless explicitly disabled." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:69 +msgid "Starting an ``Engine`` instance" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:71 +msgid "" +"The more interesting interface is accessed by instantiating ``Engine`` using " +"the ``new`` operator:" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:78 +msgid "" +"This ``Engine`` instance, referred to as ``engine`` with a lower-case ``e`` " +"from here, is a startable instance of the engine, usually a game. To start " +"such an instance, the global ``Engine`` object must be loaded, then the " +"``engine`` instance must be initialized and started." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:84 +msgid "``engine.init(basePath)``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:86 +msgid "" +"Initializes the instance. If the engine wasn't loaded yet, a base path must " +"be passed from which the engine will be loaded." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:89 +msgid "" +"Returns a promise that resolves once the engine is loaded and initialized. " +"It can then be started with ``engine.startGame()``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:93 +msgid "``engine.preloadFile(file, fileName)``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:95 +msgid "" +"This loads a file so it is available in the file system once the instance is " +"started. This must be called **before** starting the instance." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:98 +msgid "" +"If ``file`` is a string, the file will be loaded from that URL and the file " +"name will be retained. If ``file`` is an ``ArrayBuffer`` or a view on one, " +"the buffer will available as a file under the name given by ``fileName``." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:102 +msgid "Returns a promise that resolves once the file is preloaded." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:105 +msgid "``engine.start(arg1, arg2, …)``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:107 +msgid "" +"Starts the instance of the engine, handing the passed strings as arguments " +"to the ``main()`` function. This allows great control over how the engine is " +"used, but usually the other methods whose names start with ``engine.start`` " +"are simpler to use." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:112 +msgid "Returns a promise that resolves once the engine started." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:115 +msgid "``engine.startGame(mainPack)``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:117 +msgid "" +"Starts the game with the main pack loaded from the passed URL string and " +"starts the engine with it." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:120 +msgid "" +"If the engine isn't loaded yet, the base path of the passed URL will be used " +"to load the engine." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:123 +msgid "Returns a promise that resolves once the game started." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:126 +msgid "Configuring start-up behaviour" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:128 +msgid "" +"Beside starting the engine, other methods of the engine instance allow " +"configuring the behavior:" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:132 +msgid "``engine.setUnloadAfterInit(enabled)``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:134 +msgid "" +"Sets whether the Engine will be unloaded automatically after the instance is " +"initialized. This frees browser memory by unloading files that are no longer " +"needed once the instance is initialized. However, if more instances of the " +"engine will be started, the Engine will have to be loaded again." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:139 +msgid "Defaults to ``true``." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:142 +msgid "``engine.setCanvas(canvasElem)``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:144 +msgid "" +"By default, the first canvas element on the page is used for rendering. By " +"calling this method, another canvas can be specifed." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:148 +msgid "``engine.setCanvasResizedOnStart(enabled)``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:150 +msgid "" +"Sets whether the canvas will be resized to the width and height specified in " +"the project settings on start. Defaults to ``true``." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:154 +msgid "``engine.setLocale(locale)``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:156 +msgid "" +"By default, the engine will try to guess the locale to use from the " +"JavaScript environment. It is usually preferable to use a server-side user-" +"specified locale, or at least use the locale requested in the HTTP ``Accept-" +"Language`` header. This method allows specifying such a custom locale string." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:163 +msgid "``engine.setExecutableName(execName)``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:165 +msgid "" +"By default, the base name of the loaded engine files is used for the " +"executable name. This method allows specifying another name." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:169 +msgid "Customizing the presentation" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:171 +msgid "The following methods are used to implement the presentation:" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:174 +msgid "``engine.setProgressFunc(func)``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:176 +msgid "" +"This method is used to display download progress. The passed callback " +"function is called with two number arguments, the first argument specifies " +"bytes loaded so far, the second argument specifices the total number of " +"bytes to load." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:188 +msgid "If the total is 0, it couldn't be calculated. Possible reasons include:" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:191 +msgid "Files are delivered with server-side chunked compression" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:192 +msgid "Files are delivered with server-side compression on Chromium" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:193 +msgid "" +"Not all file downloads have started yet (usually on servers without multi-" +"threading)" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:196 +msgid "``engine.setStdoutFunc(func)``, ``engine.setStderrFunc(func)``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:198 +msgid "" +"These methods allow implementing custom behavior for the ``stdout`` and " +"``stderr`` streams. The functions passed in will be called with one string " +"argument specifying the string to print." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:209 +msgid "" +"These methods should usually only be used in debug pages. The ``" +"$GODOT_DEBUG_ENABLED`` placeholder can be used to check for this." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:212 +msgid "" +"By default, ``console.log()`` and ``console.warn()`` are used respecively." +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:215 +msgid "Accessing the Emscripten ``Module``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/customizing_html5_shell.rst:217 +msgid "" +"If you know what you're doing, you can access the runtime environment " +"(Emscripten's ``Module``) as ``engine.rtenv``. Check the official Emscripten " +"documentation for information on how to use it: https://kripken.github.io/" +"emscripten-site/docs/api_reference/module.html" +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:4 +msgid "Changing application icon for windows" +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:6 +msgid "" +"By default, the exported game icon will be the Godot icon. Most likely you " +"will want to change that for your game. There are two types of icons that " +"can be changed: the file icon and the taskbar icon." +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:9 +msgid "Changing the taskbar icon" +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:11 +msgid "" +"The taskbar icon is the icon that shows up on the taskbar when your game is " +"running." +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:15 +msgid "" +"To change the taskbar icon, go to Project>Project " +"Settings>Application>Config>Icon. Click on the folder icon and select your " +"desired icon." +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:17 +msgid "This is also the icon that gets displayed in the Godot project list." +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:22 +msgid "Changing the file icon" +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:24 +msgid "" +"The file icon is the icon of the executable that you click on to start the " +"game." +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:28 +msgid "" +"Before selecting it in the export options, you will need to install an extra " +"tool called **rcedit**. You can download it here: https://github.com/" +"electron/rcedit/releases" +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:32 +msgid "" +"After downloading, you need to tell Godot the path to the **rcedit** " +"executable on your computer. Go to Editor>Editor Settings>Export>Windows. " +"Click on the folder icon for the **rcedit** entry. Navigate to and select " +"the **rcedit** exectuable." +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:34 +msgid "" +"For Linux users, you will also need to install wine in order to use rcedit. " +"For more information, check https://www.winehq.org/" +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:38 +msgid "" +"Now you have everything ready for changing the file icon. To do that, you " +"will need to specify the icon when exporting. Go to Project>Export. Assuming " +"you have a windows deskop preset ready, in the options, under Application, " +"you will find Icon, select your desired image in ICO format as your file " +"icon." +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:40 +msgid "" +"To export an ICO image, you can use GIMP. For more details, please refer to " +"this tutorial: http://skyboygames.com/easily-create-a-windows-app-icon-with-" +"gimp/" +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:42 +msgid "Check the documentation for more info about exporting." +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:48 +msgid "Testing the result" +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:50 +msgid "" +"You can now export the game and see whether you have change the icons " +"successfully or not. If everything works fine, you will see this." +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:56 +msgid "Icon (ICO) file requirements" +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:58 +msgid "" +"Regardless of which program you use to create your ICO file, there are some " +"requirements to ensure the icon (and your executable) works on Windows." +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:60 +msgid "" +"This is a bit tricky, as can be seen in the following StackOverflow threads: " +"`one `__, `two `__." +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:62 +msgid "" +"Your ICO file should at least contain icons in the following resolutions: " +"16x16, 48x48 and 256x256. They should also be uncompressed. The 256x256 icon " +"*can* be compressed, but this breaks backwards compatibility with Windows XP." +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:65 +msgid "" +"If you want to fully support high-DPI screens, this is the full list of " +"supported icon sizes on Windows 10: 16, 20, 24, 28, 30, 31, 32, 40, 42, 47, " +"48, 56, 60, 63, 84 and one larger than 255px. (I.e. 256 or 512 or 1024)" +msgstr "" + +#: ../../docs/getting_started/workflow/export/changing_application_icon_for_windows.rst:68 +msgid "" +"Note that for high-DPI compression may be used, also they should be using " +"24bpp mode in contrast to the lower resolutions." +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/development/compiling/compiling_with_mono.rst:9 +#: ../../docs/development/compiling/cross-compiling_for_ios_on_linux.rst:27 +#: ../../docs/development/compiling/compiling_for_x11.rst:9 +#: ../../docs/development/compiling/compiling_for_web.rst:9 +#: ../../docs/development/compiling/compiling_for_uwp.rst:9 +#: ../../docs/development/compiling/compiling_for_ios.rst:9 +#: ../../docs/development/compiling/compiling_for_android.rst:20 +#: ../../docs/development/compiling/compiling_for_osx.rst:9 +#: ../../docs/development/compiling/compiling_for_windows.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:18 +msgid "Export a Godot project to Xcode" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:20 +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:23 +msgid "" +"The following export options are required. Leaving any blank with cause the " +"exporter to throw an error:" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:26 +msgid "In the **Application** category * **App Store Team ID**" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:28 +msgid "Everything in the **Required Icons** category" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:29 +msgid "Everything in the **Landscape Launch Screens** category" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:30 +msgid "Everything in the **Portrait Launch Screens** category" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:32 +msgid "" +"After you click **Export Project**, there are still two important options " +"left:" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:34 +msgid "" +"**Path** is an empty folder that will contain the exported Xcode project " +"files." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:35 +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:39 +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:43 +msgid "When the export completes, the output folder should look like this:" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:47 +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:52 +msgid "Active development considerations" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:54 +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:57 +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:60 +msgid "In the following example:" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:62 +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:63 +msgid "**godot_project_to_export** is the name of the Godot project." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:66 +msgid "Steps to link an Godot project folder to Xcode" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:68 +msgid "Start from an exported iOS project (follow the steps above)." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:69 +msgid "In Finder, drag the Godot project folder into the Xcode file browser." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:73 +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:78 +msgid "See the **godot_project_to_export** folder in the Xcode file browser." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:79 +msgid "Delete **exported_xcode_project_name.pck** from the Xcode project." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:83 +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:89 +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:93 +#: ../../docs/tutorials/platform/services_for_ios.rst:4 +msgid "Services for iOS" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_ios.rst:95 +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_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 http://developer.android.com/sdk/" +"index.html" +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](https://github.com/ojdkbuild/ojdkbuild) or " +"[Oracle JDK](http://www.oracle.com/technetwork/java/javase/downloads/index." +"html). 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 screens 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_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 submited 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 `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_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 the recent technologies `WebAssembly `__ and `WebGL 2.0 `__ in " +"the user's browser. **Firefox** and **Chromium** (Chrome, Opera) are the " +"most popular supported browsers, **Safari** and **Edge** do not work yet." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:13 +msgid "Limitations" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:15 +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:20 +msgid "Exported ``.html`` file must not be reused" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:22 +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:27 +msgid "Using cookies for data persistence" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:29 +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:34 +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:39 +msgid "Full screen and mouse capture" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:41 +msgid "" +"Browsers do not allow arbitrarily **entering full screen** at any time. The " +"same goes for **capturing the cursor**. Instead, these actions have to occur " +"as a response to a JavaScript input event. In Godot, this is most easily " +"done by entering full screen from within an input callback such as " +"``_input`` or ``_unhandled_input``." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:47 +msgid "For the same reason, the full screen project setting is ignored." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:50 +msgid "HTTPClient" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:52 +msgid "" +"The ``HTTPClient`` implementation for the HTML5 platform has several " +"restrictions:" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:55 +msgid "Accessing or changing the ``StreamPeer`` is not possible" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:56 +msgid "Blocking mode is not available" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:57 +msgid "No chunked responses" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:58 +msgid "Host verification cannot be disabled" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:59 +msgid "" +"Subject to `same-origin policy `_" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:62 +msgid "Unimplemented functionality" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:64 +msgid "" +"The following functionality is currently unavailable on the HTML5 platform:" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:66 +msgid "Threads" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:67 +#: ../../docs/tutorials/plugins/gdnative/index.rst:2 +msgid "GDNative" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:68 +msgid "Clipboard synchronisation between engine and operating system" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:69 +msgid "Networking other than ``HTTPClient``" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:71 +msgid "" +"Check the `list of open HTML5 issues on Github `_ to see " +"if 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:76 +msgid "Starting exported games from the local file system" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:78 +msgid "" +"Many 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:81 +msgid "" +"Python offers an easy method for this, using ``python -m SimpleHTTPServer`` " +"with Python 2 or ``python -m http.server`` with Python 3 will serve the " +"current working directory on ``http://localhost:8000``." +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:86 +msgid "Serving the files" +msgstr "" + +#: ../../docs/getting_started/workflow/export/exporting_for_web.rst:88 +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:92 +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:96 +msgid "" +"The HTML page is designed to fit the game perfectly without cutting off " +"parts of the canvas when the browser window is scaled to the game's " +"dimensions. This way it can be inserted into an ``