diff --git a/weblate/ar.po b/weblate/ar.po index fe322fbb8e..5650004eb9 100644 --- a/weblate/ar.po +++ b/weblate/ar.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-29 19:20+0000\n" "Last-Translator: Omar Salam \n" "Language-Team: Arabic `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "المستند الرئيسي لهذا الموقع منظم في الأقسام التالية:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "بشكل عام" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "من أين أبدء" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "الدروس التعليمية" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "التطوير" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "المجتمع" @@ -1083,7 +1083,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1093,7 +1093,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1145,345 +1145,345 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr "جسيمات" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "إضافات" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "أندرويد" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "أندرويد" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "جسيمات" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "إنشاء المحتوى" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr "جسيمات" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "صورة متحركة" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr "صورة متحركة" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "صورة متحركة" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr "جسيمات" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "إنشاء المحتوى" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1493,20 +1493,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1844,7 +1844,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2789,7 +2789,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3146,7 +3146,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "إشارات" @@ -4136,7 +4136,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4431,11 +4431,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4533,7 +4533,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15535,7 +15535,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16894,7 +16894,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16904,24 +16904,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16929,17 +16933,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16948,27 +16952,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16976,135 +17021,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17112,117 +17165,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17231,11 +17284,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17243,35 +17296,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "صورة متحركة" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17279,15 +17358,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "إطار خلال ثانية" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17295,154 +17374,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17450,80 +17529,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21165,8 +21244,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -23005,7 +23084,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23937,7 +24016,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "ادوات" @@ -59591,153 +59670,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59745,13 +59844,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59761,30 +59860,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59792,57 +59891,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59851,28 +59952,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59883,197 +59984,251 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "إنشاء المحتوى" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60094,7 +60249,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60104,45 +60259,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60153,13 +60308,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60167,18 +60322,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60187,107 +60342,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60295,31 +60450,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60330,11 +60485,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60343,7 +60498,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60354,7 +60509,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60363,13 +60518,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60378,7 +60533,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60386,11 +60541,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60399,49 +60554,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60451,7 +60606,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60460,7 +60615,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60468,20 +60623,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60491,28 +60646,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60520,32 +60675,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60553,41 +60708,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60595,13 +60750,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60609,14 +60764,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60624,17 +60779,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60642,26 +60797,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60669,18 +60824,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60688,22 +60843,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60711,7 +60866,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60719,18 +60874,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65356,12 +65511,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65369,14 +65523,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65385,20 +65539,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65406,18 +65560,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65425,164 +65579,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65590,23 +65743,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/bg.po b/weblate/bg.po index 7314560754..b4691e9c40 100644 --- a/weblate/bg.po +++ b/weblate/bg.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: Bulgarian `_!" msgstr "" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "" @@ -951,7 +951,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -961,7 +961,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1008,335 +1008,335 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 msgid ":ref:`doc_android_plugin`" msgstr "" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 msgid ":ref:`doc_inspector_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 msgid ":ref:`doc_using_multiple_threads`" msgstr "" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1346,20 +1346,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1696,7 +1696,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2641,7 +2641,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -2998,7 +2998,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "" @@ -3987,7 +3987,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4282,11 +4282,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4384,7 +4384,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15375,7 +15375,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16731,7 +16731,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16741,24 +16741,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16766,17 +16770,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16785,27 +16789,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16813,135 +16858,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -16949,117 +17002,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17068,11 +17121,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17080,34 +17133,60 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17115,15 +17194,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17131,154 +17210,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17286,80 +17365,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -20993,8 +21072,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -22829,7 +22908,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23761,7 +23840,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "" @@ -59384,153 +59463,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59538,13 +59637,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59554,30 +59653,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59585,57 +59684,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59644,28 +59745,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59676,197 +59777,250 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +msgid "Saving the resource" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -59887,7 +60041,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -59897,45 +60051,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -59946,13 +60100,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -59960,18 +60114,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -59980,107 +60134,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60088,31 +60242,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60123,11 +60277,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60136,7 +60290,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60147,7 +60301,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60156,13 +60310,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60171,7 +60325,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60179,11 +60333,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60192,49 +60346,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60244,7 +60398,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60253,7 +60407,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60261,20 +60415,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60284,28 +60438,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60313,32 +60467,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60346,41 +60500,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60388,13 +60542,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60402,14 +60556,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60417,17 +60571,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60435,26 +60589,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60462,18 +60616,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60481,22 +60635,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60504,7 +60658,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60512,18 +60666,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65142,12 +65296,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65155,14 +65308,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65171,20 +65324,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65192,18 +65345,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65211,164 +65364,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65376,23 +65528,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/ca.po b/weblate/ca.po index cacfc1d15b..ea70f8b374 100644 --- a/weblate/ca.po +++ b/weblate/ca.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-17 07:18+0000\n" "Last-Translator: Xavier Gomez \n" "Language-Team: Catalan `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "La documentació principal està organitzada en les seccions següents:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "General" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Primers passos" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Tutorials" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Desenvolupament" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Comunitat" @@ -1318,7 +1318,7 @@ msgid "New tutorials since version 3.1" msgstr "Nous tutorials des de la versió 3.0" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 #, fuzzy msgid "Project workflow" @@ -1329,7 +1329,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" @@ -1381,343 +1381,343 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Connectors" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "Primers passos" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Primers passos" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "Optimització" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 #, fuzzy msgid "New tutorials since version 3.0" msgstr "Nous tutorials des de la versió 3.0" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "Pas a Pas" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 #, fuzzy msgid "Best Practices:" msgstr "Bones Pràctiques:" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 #, fuzzy msgid "Physics" msgstr "Físiques" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Animació" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Primers passos" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1727,20 +1727,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -2080,7 +2080,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -3025,7 +3025,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3382,7 +3382,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Senyals" @@ -4371,7 +4371,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4666,11 +4666,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4772,7 +4772,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "Plantilles d'exportació" @@ -15780,7 +15780,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -17137,7 +17137,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -17147,24 +17147,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -17172,17 +17176,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -17191,27 +17195,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -17219,135 +17264,144 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "Idioma" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17355,117 +17409,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17474,11 +17528,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17486,34 +17540,60 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17521,15 +17601,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "FPS" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17537,154 +17617,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17692,80 +17772,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21402,8 +21482,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -23239,7 +23319,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -24171,7 +24251,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Eines" @@ -59807,153 +59887,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59961,13 +60061,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59977,30 +60077,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -60008,57 +60108,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -60067,28 +60169,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -60099,197 +60201,251 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Preparació del projecte" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60310,7 +60466,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60320,48 +60476,48 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 #, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "A més, també pots fer fer una ullada als diferents `projectes de demostració " "`_." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60372,13 +60528,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60386,18 +60542,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60406,107 +60562,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60514,31 +60670,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60549,11 +60705,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60562,7 +60718,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60573,7 +60729,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60582,13 +60738,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60597,7 +60753,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60605,11 +60761,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60618,49 +60774,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60670,7 +60826,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60679,7 +60835,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60687,20 +60843,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60710,28 +60866,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60739,32 +60895,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60772,41 +60928,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60814,13 +60970,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60828,14 +60984,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60843,17 +60999,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60861,26 +61017,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60888,18 +61044,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60907,22 +61063,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60930,7 +61086,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60938,18 +61094,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65574,12 +65730,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65587,14 +65742,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65603,20 +65758,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65624,18 +65779,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65643,164 +65798,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "Objectiu" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65808,23 +65962,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/cs.po b/weblate/cs.po index 7abec57095..5a90fec792 100644 --- a/weblate/cs.po +++ b/weblate/cs.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-05 11:01+0000\n" "Last-Translator: Martin Novák \n" "Language-Team: Czech `_ " "kanálu!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Hlavní dokumentace webu je uspořádána do následujících částí:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Všeobecné" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Začínáme" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Tutoriály" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Vývoj" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Komunita" @@ -1015,7 +1015,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1025,7 +1025,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1078,346 +1078,346 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "Lokalizace" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr "Částice" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Pluginy" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Pluginy" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Pluginy" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "Částice" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Vytváření obsahu" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr "Částice" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animace" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr "Animace" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr "Podmínka" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Animace" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr "Částice" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Animace" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1427,20 +1427,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1777,7 +1777,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2722,7 +2722,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3079,7 +3079,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Signály" @@ -4074,7 +4074,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4369,11 +4369,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4471,7 +4471,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15478,7 +15478,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16842,7 +16842,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16852,24 +16852,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16877,17 +16881,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16896,27 +16900,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16924,136 +16969,144 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 #, fuzzy msgid "Import options" msgstr "Podmínka" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17061,117 +17114,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17180,11 +17233,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17192,35 +17245,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Animace" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17228,15 +17307,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "FPS" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17244,154 +17323,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17399,80 +17478,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21116,8 +21195,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -22955,7 +23034,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23888,7 +23967,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Nástroje" @@ -59558,153 +59637,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59712,13 +59811,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59728,30 +59827,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59759,57 +59858,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59818,28 +59919,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59850,197 +59951,251 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Vytváření obsahu" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60061,7 +60216,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60071,45 +60226,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60120,13 +60275,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60134,18 +60289,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60154,107 +60309,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60262,31 +60417,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60297,11 +60452,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60310,7 +60465,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60321,7 +60476,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60330,13 +60485,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60345,7 +60500,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60353,11 +60508,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60366,49 +60521,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60418,7 +60573,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60427,7 +60582,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60435,20 +60590,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60458,28 +60613,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60487,32 +60642,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60520,41 +60675,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60562,13 +60717,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60576,14 +60731,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60591,17 +60746,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60609,26 +60764,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60636,18 +60791,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60655,22 +60810,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60678,7 +60833,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60686,18 +60841,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65328,12 +65483,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65341,14 +65495,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65357,20 +65511,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65378,18 +65532,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65397,164 +65551,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65562,23 +65715,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/da.po b/weblate/da.po index 87e8d01d56..76fb9c06bd 100644 --- a/weblate/da.po +++ b/weblate/da.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-03-07 07:43+0000\n" "Last-Translator: necrophcodr \n" "Language-Team: Danish `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Den primære dokumentation på siden er sorteret i følgende sektioner:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Generelt" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Kom i gang" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Tutorials" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Udvikling" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Fællesskab" @@ -1109,7 +1109,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1119,7 +1119,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1171,340 +1171,340 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "Kom i gang" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Skabe indhold" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Kom i gang" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1514,20 +1514,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1864,7 +1864,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2809,7 +2809,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3166,7 +3166,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Signaler" @@ -4155,7 +4155,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4450,11 +4450,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4552,7 +4552,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15548,7 +15548,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16906,7 +16906,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16916,24 +16916,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16941,17 +16945,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16960,27 +16964,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16988,135 +17033,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17124,117 +17177,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17243,11 +17296,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17255,34 +17308,60 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17290,15 +17369,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17306,154 +17385,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17461,80 +17540,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21171,8 +21250,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -23010,7 +23089,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23942,7 +24021,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Værktøjer" @@ -59580,153 +59659,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59734,13 +59833,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59750,30 +59849,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59781,57 +59880,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59840,28 +59941,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59872,197 +59973,250 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +msgid "Saving the resource" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60083,7 +60237,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60093,48 +60247,48 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 #, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "Foruden denne dokumentation kan du evt. tage et kig på de forskellige `Godot " "demo projects `_." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60145,13 +60299,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60159,18 +60313,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60179,107 +60333,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60287,31 +60441,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60322,11 +60476,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60335,7 +60489,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60346,7 +60500,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60355,13 +60509,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60370,7 +60524,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60378,11 +60532,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60391,49 +60545,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60443,7 +60597,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60452,7 +60606,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60460,20 +60614,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60483,28 +60637,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60512,32 +60666,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60545,41 +60699,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60587,13 +60741,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60601,14 +60755,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60616,17 +60770,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60634,26 +60788,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60661,18 +60815,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60680,22 +60834,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60703,7 +60857,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60711,18 +60865,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65349,12 +65503,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65362,14 +65515,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65378,20 +65531,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65399,18 +65552,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65418,164 +65571,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65583,23 +65735,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/de.po b/weblate/de.po index bd5854398c..813b0c1b0b 100644 --- a/weblate/de.po +++ b/weblate/de.po @@ -82,7 +82,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-02 12:04+0000\n" "Last-Translator: Alexander Hausmann \n" "Language-Team: German `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "Die Hauptdokumentation von Godot ist in folgende Abschnitte gegliedert:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Allgemein" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Erste Schritte" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Anleitungen" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Entwicklung" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Gemeinschaft" @@ -1382,7 +1382,7 @@ msgid "New tutorials since version 3.1" msgstr "Neue Tutorials seit Version 3.0" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Projekt-Workflow" @@ -1393,7 +1393,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr ":ref:`Benutzerdefinierte Builds für Android`" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" @@ -1446,403 +1446,403 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "Lokalisierung" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "Schattieren" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "Dein erster Shader (Serie)" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 #, fuzzy msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`Was sind Shader? `" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 #, fuzzy msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr ":ref:`Dein erster CanvasItem-Shader `" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 #, fuzzy msgid ":ref:`doc_your_first_spatial_shader`" msgstr ":ref:`Dein erster Spatial-Shader `" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 #, fuzzy msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" ":ref:`Dein erster Spatial Shader: Teil 2 `" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr ":ref:`Exportieren `" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Erweiterungen" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr ":ref:`Android-Plugins erstellen `" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr ":ref:`Spatial gizmo Plug-Ins `" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "Multi-threading" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr ":ref:`Verwendung von MultiMesh's `" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "Inhalte erstellen" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr ":ref:`Partikelshader `" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "Optimierung" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 #, fuzzy msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Verwendung von MultiMesh's `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 #, fuzzy msgid ":ref:`doc_using_servers`" msgstr ":ref:`Server verwenden `" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "Rechtliches" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 #, fuzzy msgid ":ref:`doc_complying_with_licenses`" msgstr ":ref:`Einhalten von Lizenzen `" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "Neue Tutorials seit Version 3.0" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "Schritt für Schritt" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 #, fuzzy msgid ":ref:`doc_signals`" msgstr ":ref:`Signale `" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 #, fuzzy msgid ":ref:`doc_exporting`" msgstr ":ref:`Exportieren `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "Scripting" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 #, fuzzy msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`Typisiertes GDscript `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "Bewährte Techniken:" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 #, fuzzy msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref:`Einführung `" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 #, fuzzy msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref:`Was sind Godot Klassen `" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr ":ref:`Szenenorganisation `" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 #, fuzzy msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref:`Szenen Versus Skripte `" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 #, fuzzy msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" ":ref:`Autoloads vs. interne Nodes `" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 #, fuzzy msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`Node Alternativen `" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 #, fuzzy msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:`Godot Interfaces `" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Godot Benachrichtigungen `" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 #, fuzzy msgid ":ref:`doc_data_preferences`" msgstr ":ref:`Datenvoreinstellungen `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 #, fuzzy msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`Logikvoreinstellungen `" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 #, fuzzy msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`2D Lichter und Schatten `" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 #, fuzzy msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`2D Meshes `" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 #, fuzzy msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 #, fuzzy msgid ":ref:`doc_animating_thousands_of_fish`" msgstr ":ref:`doc_matrices_and_transforms`" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 #, fuzzy msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:` Tausende Fische mit Partikeln steuern " "`" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Physik" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 #, fuzzy msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`Ragdoll System `" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 #, fuzzy msgid ":ref:`doc_soft_body`" msgstr ":ref:`Softbody `" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Animation" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 #, fuzzy msgid ":ref:`doc_2d_skeletons`" msgstr "2D Skelette" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr ":ref:`Animationsbaum `" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "GUI" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr ":ref:`Container`" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "Ansichten" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 #, fuzzy msgid ":ref:`doc_viewport_as_texture`" msgstr ":ref:`Viewports als Textur verwenden `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 #, fuzzy msgid ":ref:`doc_custom_postprocessing`" msgstr "" ":ref:` Benutzerdefiniertes post-processing `" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 #, fuzzy msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`Einführung in Shader: 2D und 3D Wasser (7 Videotutorials) " "`" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 #, fuzzy msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Übergang zu Godots Shadersprache " "`" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 #, fuzzy msgid ":ref:`doc_advanced_postprocessing`" msgstr "Fortgeschrittenes Post-Processing" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "Shaderreferenz:" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 #, fuzzy msgid ":ref:`doc_shaders`" msgstr ":ref:`Shader `" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 #, fuzzy msgid ":ref:`doc_shading_language`" msgstr ":ref:`Shadersprache `" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 #, fuzzy msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`Spatial-Shader `" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 #, fuzzy msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`CanvasItem-Shader `" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr ":ref:`Partikelshader `" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "VR" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 #, fuzzy msgid ":ref:`doc_vr_starter_tutorial`" msgstr ":ref:`VR Anfängeranleitung `" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" ":ref:`Plug-Ins für den Hauptbildschirm erstellen " "`" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 #, fuzzy msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr ":ref:`Spatial gizmo Plug-Ins `" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "Plattformspezifisches" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 #, fuzzy msgid ":ref:`doc_customizing_html5_shell`" msgstr "" ":ref:`Die HTML Seite des Web export anpassen `" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 #, fuzzy msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`Thread-sichere APIs `" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 #, fuzzy msgid ":ref:`doc_making_trees`" msgstr ":ref:`Bäume erstellen `" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "Sonstiges" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 #, fuzzy msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`Zittern und ruckeln beheben `" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 #, fuzzy msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`Code im Editor ausführen `" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 #, fuzzy msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`Scenen manuell wechseln `" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 #, fuzzy msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" ":ref:`Unterschiede zwischen GLES2 und GLES3 `" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1852,24 +1852,24 @@ msgstr "" msgid "Compiling" msgstr "Kompilieren" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 #, fuzzy msgid ":ref:`doc_optimizing_for_size`" msgstr ":ref:`Build auf Größe optimieren `" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 #, fuzzy msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" ":ref:`Mit Scriptverschlüsselung kompilieren " "`" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "Engine Entwicklung" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 #, fuzzy msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -2290,7 +2290,7 @@ msgstr "" "wieder andere stellen 3D-Modelle dar usw. Es gibt Dutzende von ihnen." #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -3585,9 +3585,10 @@ msgstr "" "Node aktualisiert." #: ../../docs/getting_started/step_by_step/scripting.rst:213 +#, fuzzy msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -4094,7 +4095,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Signale" @@ -5499,8 +5500,9 @@ msgid ":ref:`Timer ` named ``MessageTimer``." msgstr ":ref:`Timer ` genannt ``MessageTimer``." #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 +#, fuzzy msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -5890,12 +5892,13 @@ msgstr "" "Eigenschaft des ``Button``-Nodes." #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 +#, fuzzy msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" "Wähle in der ``HUD``-Szene den ``StartButton`` aus, und suche im Inspektor " @@ -6032,7 +6035,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "Exportvorlagen" @@ -18619,7 +18622,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -19976,7 +19979,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -19986,24 +19989,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -20011,17 +20018,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -20030,27 +20037,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -20058,135 +20106,145 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "Import-Optionen" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "Lokalisierung" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +#, fuzzy +msgid "The scale of the root node." +msgstr "Die Rolle des Skriptes" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "Erstelle ein Skript wie folgt:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -20194,117 +20252,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -20313,11 +20371,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -20325,34 +20383,63 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#, fuzzy +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" +"Für weitere Informationen zu Singletons bzw. Autoload-Skripten, siehe :ref:" +"`doc_singletons_autoload`." + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "Animationsoptionen" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -20360,15 +20447,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "FPS" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -20376,154 +20463,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "Szenenvererbung" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -20531,80 +20618,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -24324,8 +24411,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -26208,7 +26295,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -27140,7 +27227,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Werkzeuge" @@ -62925,153 +63012,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -63079,13 +63186,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -63095,30 +63202,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -63126,57 +63233,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -63185,28 +63294,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -63217,197 +63326,252 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" -msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +#, fuzzy +msgid "General properties" +msgstr "Node-Eigenschaften" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Ressourcen freigeben" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -63428,7 +63592,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -63438,47 +63602,48 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "Projekt einrichten" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "eine Kopie des `godot-cpp-Repository `_." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -63489,13 +63654,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -63503,18 +63668,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -63523,107 +63688,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "Eine einfache Erweiterung erstellen" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -63631,31 +63796,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -63666,11 +63831,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -63679,7 +63844,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -63690,7 +63855,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -63699,13 +63864,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -63714,7 +63879,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -63722,11 +63887,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -63735,49 +63900,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -63787,7 +63952,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -63796,7 +63961,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -63804,20 +63969,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -63827,28 +63992,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "Eigenschaften hinzufügen" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -63856,32 +64021,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -63889,41 +64054,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -63931,13 +64096,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -63945,14 +64110,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -63960,17 +64125,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -63978,26 +64143,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -64005,18 +64170,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -64024,22 +64189,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -64047,7 +64212,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -64055,18 +64220,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -68780,12 +68945,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -68793,14 +68957,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -68809,20 +68973,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -68830,18 +68994,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -68849,164 +69013,166 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" -msgstr "" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +#, fuzzy +msgid "For the previous build attempt, the result would look like this::" +msgstr "Der Szenenbaum sollte so aussehen:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +#, fuzzy +msgid "A Windows binary with the same configuration will look like this::" msgstr "" +"Und zum Schluss sollte die Animation beim Ausführen der Szene so aussehen:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "Ziel" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -69014,23 +69180,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/el.po b/weblate/el.po index 4933e1c747..8bce693e06 100644 --- a/weblate/el.po +++ b/weblate/el.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-02 12:04+0000\n" "Last-Translator: George Tsiamasiotis \n" "Language-Team: Greek `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "Το κύριο εγχειρίδιο χρήσης του ιστότοπου είναι διατετμημένο στις παρακάτω " "ενότητες:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Γενικά" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Ξεκινώντας" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Διδακτικό υλικό" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Ανάπτυξη" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Κοινότητα" @@ -1330,7 +1330,7 @@ msgid "New tutorials since version 3.1" msgstr "Καινούργιο διδακτικό υλικό από την έκδοση 3,0" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Ροή εργασιών του πρότζεκτ" @@ -1340,7 +1340,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1393,348 +1393,348 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "Τοπική προσαρμογή" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr "Σωματίδια" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Πρόσθετα" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "Δείτε :ref:`doc_ways_to_contribute`." -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Δημιουργία περιεχομένου" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr "Σωματίδια" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Κίνηση" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "Καινούργιο διδακτικό υλικό από την έκδοση 3,0" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "Βήμα βήμα" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "Καλύτερες τεχνικές:" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr "Κίνηση" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr "Συνθήκη" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Κίνηση" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr "Δείτε :ref:`doc_ways_to_contribute`." -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr "Δείτε :ref:`doc_ways_to_contribute`." -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr "Σωματίδια" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Κινήσεις" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1744,20 +1744,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -2132,7 +2132,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -3077,7 +3077,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3434,7 +3434,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Σήματα" @@ -4428,7 +4428,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4723,11 +4723,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4826,7 +4826,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15839,7 +15839,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -17205,7 +17205,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -17215,24 +17215,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -17240,17 +17244,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -17259,27 +17263,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -17287,136 +17332,145 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 #, fuzzy msgid "Import options" msgstr "Συνθήκη" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "Περιοχή" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17424,117 +17478,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17543,11 +17597,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17555,35 +17609,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Κινήσεις" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17591,15 +17671,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "FPS" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17607,154 +17687,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17762,80 +17842,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21483,8 +21563,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -23324,7 +23404,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -24256,7 +24336,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Εργαλεία" @@ -59930,153 +60010,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -60084,13 +60184,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -60100,30 +60200,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -60131,57 +60231,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -60190,28 +60292,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -60222,197 +60324,251 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Δημιουργία περιεχομένου" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60433,7 +60589,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60443,49 +60599,49 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 #, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "Πέραν από την τεκμηρίωση μπορεί να θέλετε να ρίξετε μια ματιά στα διάφορα " "`Έργα επίδειξης της Godot `_." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60496,13 +60652,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60510,18 +60666,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60530,107 +60686,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60638,31 +60794,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60673,11 +60829,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60686,7 +60842,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60697,7 +60853,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60706,13 +60862,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60721,7 +60877,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60729,11 +60885,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60742,49 +60898,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60794,7 +60950,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60803,7 +60959,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60811,20 +60967,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60834,28 +60990,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60863,32 +61019,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60896,41 +61052,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60938,13 +61094,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60952,14 +61108,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60967,17 +61123,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60985,26 +61141,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -61012,18 +61168,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -61031,22 +61187,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -61054,7 +61210,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -61062,18 +61218,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65706,12 +65862,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65719,14 +65874,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65735,20 +65890,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65756,18 +65911,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65775,164 +65930,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "Στόχος" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65940,23 +66094,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/es.po b/weblate/es.po index cdc87db980..257a98f860 100644 --- a/weblate/es.po +++ b/weblate/es.po @@ -80,7 +80,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-25 07:20+0000\n" "Last-Translator: jose guevara \n" "Language-Team: Spanish `_, o en el canal ``#godotengine-doc`` en `irc.freenode.net `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "La documentación principal para este sitio está organizada en las siguientes " "secciones:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "General" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Comenzando" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Tutoriales" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Desarrollo" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Comunidad" @@ -1368,7 +1368,7 @@ msgid "New tutorials since version 3.1" msgstr "Nuevos tutoriales desde la versión 3.0" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Flujo de trabajo del proyecto" @@ -1379,7 +1379,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr ":ref:`Custom builds para Android `" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" @@ -1432,401 +1432,401 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "Traducciones" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "Shading" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "Tu primera serie de Shaders:" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 #, fuzzy msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`¿Qué son los shaders? `" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 #, fuzzy msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr ":ref:`Tu primer shader CanvasItem `" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 #, fuzzy msgid ":ref:`doc_your_first_spatial_shader`" msgstr ":ref:`Tu primer shader Spatial `" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 #, fuzzy msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" ":ref:`Tu primer shader Spatial: Parte 2 `" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "Redes" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr ":ref:`Exportar `" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Plugins" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr ":ref:`Creación de plugins para Android `" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr ":ref:`Spatial gizmo plugins `" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "Multi-threading" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr ":ref:`Uso de MultiMesh `" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "Creación de contenido" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr ":ref:`Shaders de partículas `" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "Optimización" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 #, fuzzy msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Uso de MultiMesh `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 #, fuzzy msgid ":ref:`doc_using_servers`" msgstr ":ref:`Uso de servidores `" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "Legal" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 #, fuzzy msgid ":ref:`doc_complying_with_licenses`" msgstr ":ref:`Cumplimiento de las licencias `" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "Nuevos tutoriales desde la versión 3.0" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "Paso a paso" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 #, fuzzy msgid ":ref:`doc_signals`" msgstr ":ref:`Señales `" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 #, fuzzy msgid ":ref:`doc_exporting`" msgstr ":ref:`Exportar `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "Scripting" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 #, fuzzy msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`Typed GDscript `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "Mejores prácticas:" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 #, fuzzy msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref:`Introducción " -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 #, fuzzy msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref: 'Que son las Clases de Godot " -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr ":ref:`Organización de la escena `" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 #, fuzzy msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref: 'Escenas versus Scripts '" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 #, fuzzy msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "Autoloads y nodos internos" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 #, fuzzy msgid ":ref:`doc_node_alternatives`" msgstr ":ref: 'Alternativas de nodos " -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 #, fuzzy msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:`Interfaces en Godot `" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Notificaciones de Godot `" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 #, fuzzy msgid ":ref:`doc_data_preferences`" msgstr ":ref:`Preferencia de datos `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 #, fuzzy msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`Preferencias de lógica`" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 #, fuzzy msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`Iluminación y sombras 2D `" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 #, fuzzy msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`Mallas 2D `" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 #, fuzzy msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 #, fuzzy msgid ":ref:`doc_animating_thousands_of_fish`" msgstr ":ref:`doc_matrices_and_transforms`" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 #, fuzzy msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:`Controlando cientos de peces con partículas " "`" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Física" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 #, fuzzy msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`Sistema de fisica ragdoll " -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 #, fuzzy msgid ":ref:`doc_soft_body`" msgstr ":ref:`Softbody `" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Animación" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 #, fuzzy msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`Esqueletos 2D `" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr ":ref:`AnimationTree `" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "GUI" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr ":ref:`Containers `" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "Viewports" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 #, fuzzy msgid ":ref:`doc_viewport_as_texture`" msgstr ":ref:`Usando un Viewport como textura `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 #, fuzzy msgid ":ref:`doc_custom_postprocessing`" msgstr ":ref:`Post procesado personalizado `" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 #, fuzzy msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`Introducción a shaders: Agua 2D y 3D (7 video tutoriales) " "`" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 #, fuzzy msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Migrando al lenguaje de shaders de Godot " "`" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 #, fuzzy msgid ":ref:`doc_advanced_postprocessing`" msgstr "Post procesamiento avanzado" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "Referencia de Shading:" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 #, fuzzy msgid ":ref:`doc_shaders`" msgstr ":ref:`Shaders `" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 #, fuzzy msgid ":ref:`doc_shading_language`" msgstr ":ref:`Lenguaje de Shading `" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 #, fuzzy msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`Spatial shaders `" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 #, fuzzy msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`CanvasItem shaders `" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr ":ref:`Shaders de partículas `" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "VR" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 #, fuzzy msgid ":ref:`doc_vr_starter_tutorial`" msgstr ":ref:`Tutorial básico de VR `" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" ":ref:`Haciendo plugins para la pantalla principal " "`" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 #, fuzzy msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr ":ref:`Spatial gizmo plugins `" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "Específico de plataformas" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 #, fuzzy msgid ":ref:`doc_customizing_html5_shell`" msgstr "" ":ref:`Personalizar la página HTML de exportación Web " "`" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 #, fuzzy msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`Thread safe APIs `" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 #, fuzzy msgid ":ref:`doc_making_trees`" msgstr ":ref:`Creando árboles `" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "Misceláneo" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 #, fuzzy msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`Corrigiendo jitter y stutter `" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 #, fuzzy msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`Ejecutando código en el editor `" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 #, fuzzy msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`Cambio manual de escenas `" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 #, fuzzy msgid ":ref:`doc_gles2_gles3_differences`" msgstr ":ref:`Diferencias entre GLES2 y GLES3 `" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1836,26 +1836,26 @@ msgstr ":ref:`Diferencias entre GLES2 y GLES3 `" msgid "Compiling" msgstr "Compilando" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 #, fuzzy msgid ":ref:`doc_optimizing_for_size`" msgstr "" ":ref:`Optimizando una compilación para menor tamaño " "`" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 #, fuzzy msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" ":ref:`Compilando un script con clave de cifrado " "`" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "Desarrollo del motor" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 #, fuzzy msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -2274,7 +2274,7 @@ msgstr "" "sonido, otros nodos muestran modelos en 3D, etc. Hay docenas de ellos." #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -3562,9 +3562,10 @@ msgstr "" "emisor al nodo seleccionado." #: ../../docs/getting_started/step_by_step/scripting.rst:213 +#, fuzzy msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -4060,7 +4061,7 @@ msgstr "Únicamente GDScript crea variables globales para cada script nombrado." #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Señales" @@ -5432,8 +5433,9 @@ msgid ":ref:`Timer ` named ``MessageTimer``." msgstr ":ref:`Timer ` llamado ``MessageTimer``." #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 +#, fuzzy msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -5814,12 +5816,13 @@ msgstr "" "Una forma de hacerlo es usando la propiedad \"Shortcut\" del nodo ``Button``." #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 +#, fuzzy msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" "En la escena ``HUD``, seleccione ``StartButton`` y encuentre su propiedad " @@ -5959,7 +5962,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "Plantillas de exportación" @@ -20567,7 +20570,7 @@ msgstr "" "directorio, está presente en el repositorio de Godot-Blender-exporter." #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "Materiales" @@ -22288,8 +22291,9 @@ msgid "DAE (COLLADA), which is currently the most mature workflow." msgstr "DAE (COLLADA), que es actualmente el workflow más maduro." #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 +#, fuzzy msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" "GLTF 2.0. Se admiten tanto formatos de texto como binarios. Godot tiene todo " @@ -22303,7 +22307,11 @@ msgstr "" "Formatos OBJ (Wavefront). También está totalmente soportado, pero bastante " "limitado (sin soporte para pivotes, esqueletos, etc)." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." @@ -22311,7 +22319,7 @@ msgstr "" "Simplemente copia el archivo de escena junto con la textura al repositorio " "del proyecto, y Godot hará una importación completa." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " @@ -22321,11 +22329,11 @@ msgstr "" "Asegúrate que el esqueleto se restablezca a su posición T o posición de " "reposo predeterminada antes de exportarlo con tu editor 3D favorito." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "¿Por qué no FBX?" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -22338,7 +22346,7 @@ msgstr "" "de Autodesk que se distribuye con términos de licencia más restrictivos que " "Godot." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." @@ -22346,11 +22354,11 @@ msgstr "" "El plan es, en algún momento en el futuro, ofrecer un plug-in binario usando " "GDNative." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "Exportación de archivos DAE desde Maya y 3DS Max" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -22364,11 +22372,11 @@ msgstr "" "OpenCOLLADA/wiki/OpenCOLLADA-Tools>`__. Funcionan bien, aunque no siempre " "están actualizados con las últimas versiones del software." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "Exportación de archivos DAE desde Blender" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." @@ -22376,7 +22384,7 @@ msgstr "" "Blender también tiene integrado soporte para COLLADA, pero igualmente está " "roto y no debe ser usado." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." @@ -22384,11 +22392,53 @@ msgstr "" "Godot proporciona un `Plugin Python `__ que hará un trabajo mucho mejor al exportar las escenas." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +#, fuzzy +msgid "Exporting glTF 2.0 files from Blender" +msgstr "Exportación de archivos DAE desde Blender" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "Exportar archivos ESCN desde Blender" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -22400,7 +22450,7 @@ msgstr "" "tipo de archivo .tscn (archivo de escena Godot) con otro nombre, este guarda " "la mayor cantidad de información posible de una escena de Blender." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." @@ -22408,11 +22458,11 @@ msgstr "" "El exportador ESCN tiene un documento detallado ` `__ que describe su funcionalidad y uso." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "Flujos de trabajo de importación" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" @@ -22421,7 +22471,7 @@ msgstr "" "respecto a cómo se importan los datos. Dependiendo de muchas opciones, es " "posible importar una escena con:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." @@ -22429,7 +22479,7 @@ msgstr "" "Materiales externos (por defecto): Donde cada material se guarda en un " "archivo de recursos. Se mantienen las modificaciones." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." @@ -22437,7 +22487,7 @@ msgstr "" "Mallas externas: Donde cada malla se guarda en un archivo diferente. Muchos " "usuarios prefieren trabajar con mallas directamente." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." @@ -22445,7 +22495,7 @@ msgstr "" "Animaciones externas: Permitir que las animaciones guardadas se modifiquen y " "combinen cuando cambien las fuentes." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." @@ -22453,11 +22503,11 @@ msgstr "" "Escenas externas: Guarda los nodos raíz de las escenas importadas, cada uno " "como una escena separada." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "Una sola escena: Un único archivo de escena con todo integrado." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." @@ -22465,19 +22515,19 @@ msgstr "" "Como los distintos desarrolladores tienen necesidades diferentes, este " "proceso de importación es altamente personalizable." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "Opciones de Importación" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "El importador tiene varias opciones, que se analizarán más adelante:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "Tipos de Raíz" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." @@ -22485,19 +22535,29 @@ msgstr "" "Por defecto, el tipo de nodo raíz en las escenas importadas es \"Spatial\", " "pero puede modificarse." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "Nombre de la Raíz" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "Permite establecer un nombre específico para el nodo raíz generado." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "Nombre de la Raíz" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +#, fuzzy +msgid "The scale of the root node." +msgstr "El papel del script" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "Script Personalizado" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " @@ -22507,11 +22567,11 @@ msgstr "" "después de la importación. Esto es ideal para post-procesamiento, cambio de " "materiales, hacer cosas divertidas con la geometría, etc." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "Crea un script como este:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " @@ -22521,14 +22581,14 @@ msgstr "" "parámetro es en realidad el nodo raíz de la escena). La escena que será " "utilizada debe ser devuelta. Puede ser una diferente." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "Almacenamiento" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " @@ -22538,7 +22598,7 @@ msgstr "" "que los nodos debajo de la raíz serán cada uno una escena separada e " "instanciada en la importada." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." @@ -22546,11 +22606,11 @@ msgstr "" "Por supuesto, instanciar estas escenas importadas en otros lugares " "manualmente también funciona." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "Localización" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." @@ -22558,7 +22618,7 @@ msgstr "" "Godot soporta materiales en mallas o nodos. Por defecto, los materiales se " "colocarán en cada nodo." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -22570,7 +22630,7 @@ msgstr "" "posible editarlos. Esto se debe a que la mayoría de los DCC 3D no tienen las " "mismas opciones de materiales que las presentes en Godot." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." @@ -22578,11 +22638,11 @@ msgstr "" "Cuando los materiales están integrados, se perderán cada vez que se " "modifique y se vuelva a importar la escena de origen." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "Keep On Reimport" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " @@ -22593,15 +22653,15 @@ msgstr "" "escena fuente. Esta opción sólo está presente si los materiales se guardan " "como archivos." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "Modelos" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "Compresión" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." @@ -22609,11 +22669,11 @@ msgstr "" "Hace que las mallas utilicen números menos precisos para múltiples aspectos " "de la malla con el fin de ahorrar espacio." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "Estos son:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." @@ -22621,58 +22681,58 @@ msgstr "" "Matriz de Transformación (Ubicación, rotación y escala): flotante de 32 bits " "a entero con signo de 16 bits." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "Vértices: Flotante de 32 bits a un entero con signo de 16 bits." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "Normal: Flotante de 32 bits a un entero sin signo de 32 bits." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "Tangentes: Flotante de 32 bits a un entero sin signo de 32 bits." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" "Colores de vértices: Flotante de 32 bits a un entero sin signo de 32 bits." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "UV: Flotante de 32 bits a un entero sin signo de 32 bits." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "UV2: Flotante de 32 bits a un entero sin signo de 32 bits." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" "Pesos de los vértices: Flotante de 32 bits a un entero sin signo de 16 bits." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" "Huesos del armazón: Flotante de 32 bits a un entero sin signo de 16 bits." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." @@ -22680,18 +22740,18 @@ msgstr "" "Índice del array: entero sin signo de 32 o 16 bits en función de cuántos " "elementos contiene." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "Información adicional:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" "UV2 = El segundo canal UV para texturas de detalle y texturas lightmap " "preparadas." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." @@ -22699,7 +22759,7 @@ msgstr "" "Índice de array = Un array de números que numeran cada elemento de los " "arrays anteriores; es decir, numeran los vértices y normales." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -22714,11 +22774,11 @@ msgstr "" "espacios en la geometría o los vértices no estén exactamente donde deberían " "estar." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "Asegurar Tangentes" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -22730,7 +22790,7 @@ msgstr "" "si no están presentes en la escena de origen. Godot usa Mikktspace para " "esto, pero siempre es mejor tenerlos generados en el exportador." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " @@ -22740,7 +22800,7 @@ msgstr "" "integrados. Esto no tiene una gran utilidad a menos que uno quiera construir " "objetos con ellas directamente." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." @@ -22748,11 +22808,41 @@ msgstr "" "Esta opción se ofrece para ayudar a aquellos que prefieren trabajar " "directamente con mallas en lugar de escenas." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#, fuzzy +msgid "Light Baking" +msgstr "Light nodes" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#, fuzzy +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" +"Para más información sobre scripts singleton/autoload, ve :ref:" +"`doc_singletons_autoload`." + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "Archivos Externos" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." @@ -22760,11 +22850,11 @@ msgstr "" "Las mallas y los materiales generados se pueden almacenar opcionalmente en " "un subdirectorio con el nombre de la escena." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "Opciones de animación" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -22777,15 +22867,15 @@ msgstr "" "animaciones en la misma línea de tiempo o, en el peor de los casos, poner " "cada animación en un archivo separado." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "La importación de animaciones está activada de forma predeterminada." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "FPS" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -22798,11 +22888,11 @@ msgstr "" "por segundo utilizados para editarlas. Si no se hace esto, el resultado " "puede ser una animación temblorosa." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "Filtro de Script" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " @@ -22812,7 +22902,7 @@ msgstr "" "decidir qué pistas de qué animaciones se deben mantener. (@TODO necesita " "documentación)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " @@ -22822,11 +22912,11 @@ msgstr "" "posible guardarlas en un archivo. Esto permite añadir pistas personalizadas " "a las animaciones y mantenerlas después de una reimportación." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "Optimizador" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " @@ -22837,11 +22927,11 @@ msgstr "" "estar activado, a menos que sospeches que una animación puede estar rota " "debido a este proceso." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "Clips" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " @@ -22851,23 +22941,24 @@ msgstr "" "clips. Especifica de qué fotograma debe tomarse cada clip (y, por supuesto, " "no olvides especificar la opción FPS de arriba)." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "Herencia de escenas" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 +#, fuzzy msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" "En muchos casos, es posible que prefieras hacer modificaciones en la escena " "importada. Por defecto, esto no es posible porque si el recurso de origen " "cambia (archivo.dae, .gltf, .obj re-exportado desde la aplicación de " "modelado 3D), Godot reimportará toda la escena." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " @@ -22877,19 +22968,19 @@ msgstr "" "de Escenas*. Intenta abrir la escena importada y aparecerá el siguiente " "cuadro de diálogo:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" "En las escenas heredadas, las únicas limitaciones para las modificaciones " "son:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" "Los nodos no pueden ser eliminados (pero pueden ser agregados en cualquier " "parte)." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" @@ -22897,15 +22988,15 @@ msgstr "" "Los Sub-Recursos no pueden ser editados (guárdalos externamente como se " "describe arriba para este caso)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "Aparte de eso, ¡todo está permitido!" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "Consejos para la Importación" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" @@ -22913,15 +23004,15 @@ msgstr "" "Muchas veces, al editar una escena, hay tareas comunes que deben realizarse " "después de la exportación:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "Añadiendo detección de colisiones a los objetos" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "Configurar objetos como mallas de navegación" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" @@ -22929,7 +23020,7 @@ msgstr "" "Eliminar nodos que no se usan en el motor del juego (como luces específicas " "usadas para modelar)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " @@ -22939,11 +23030,11 @@ msgstr "" "pueden añadir a los nombres de los objetos en su software de modelado 3D. " "Cuando se importan, Godot los detecta y realiza acciones automáticamente:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "Eliminar nodos (-noimp)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." @@ -22952,11 +23043,11 @@ msgstr "" "la importación, independientemente de su tipo. No aparecerán en la escena " "importada." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "Crear colisiones (-col, -colonly, -convcolonly)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." @@ -22965,7 +23056,7 @@ msgstr "" "añadirá un nodo hijo de colisión estática, utilizando la misma geometría que " "la malla." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." @@ -22973,7 +23064,7 @@ msgstr "" "Sin embargo, a menudo se da el caso de que la geometría visual es demasiado " "compleja o irregular para las colisiones, que terminan por no funcionar bien." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " @@ -22983,7 +23074,7 @@ msgstr "" "malla al importarla y creará una colisión :ref:`class_staticbody` en su " "lugar. Esto ayuda a separar la malla visual de la colisión real." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." @@ -22991,7 +23082,7 @@ msgstr "" "La opción \"-convcolonly\" creará :ref:`class_convexpolygonshape` en lugar " "de :ref:`class_concavepolygonshape`." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -23003,24 +23094,24 @@ msgstr "" "colisión como hijo. El nodo de colisión tendrá una de las formas " "predefinidas, dependiendo del tipo de dibujo vacío del Blender:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "Una flecha simple creará una :ref:`class_rayshape`" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "Un cubo creará un :ref:`class_boxshape`" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "Una imagen creará :ref:`class_planeshape`" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "Esfera (y otras no listadas) creará :ref:`class_sphereshape`" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " @@ -23030,11 +23121,11 @@ msgstr "" "configurar la opción \"X-Ray\" en los vacíos de colisión y establecer un " "color distinto para ellos en User Preferences / Themes / 3D View / Empty." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "Crear navigation (-navmesh)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." @@ -23042,11 +23133,11 @@ msgstr "" "Un nodo de malla con este sufijo se convertirá en una malla de navegación. " "Se eliminará el nodo Mesh original." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "Crea un VehicleBody (-vehicle)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." @@ -23054,11 +23145,11 @@ msgstr "" "Un nodo mesh con este sufijo se importará como un hijo a un nodo :ref:" "`VehicleBody `." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "Crea un VehicleWheel (-wheel)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." @@ -23066,19 +23157,19 @@ msgstr "" "Un nodo mesh con este sufijo se importará como un hijo a un nodo :ref:" "`VehicleWheel `." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "Rigid Body (-rigid)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "Crea un rigid body a partir de esta malla." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "Bucle de animación (-loop, -cycle)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " @@ -23089,7 +23180,7 @@ msgstr "" "con la marca de loop establecida. Esto distingue entre mayúsculas y " "minúsculas y no requiere un guión." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -27861,10 +27952,11 @@ msgstr "" "destinados a ser sobrescritos por scripts." #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 +#, fuzzy msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" "Un ejemplo clásico es el método :ref:`_init ` en " "Object. Este no posee un equivalente NOTIFICATION_*, pero el motor llama " @@ -30032,7 +30124,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "Organización" @@ -31333,7 +31425,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "¡Ejecutémoslo de nuevo! ¡Esta vez, la rotación se muestra bien!" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Herramientas" @@ -70122,153 +70214,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -70276,13 +70388,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -70292,30 +70404,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -70323,57 +70435,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -70382,28 +70496,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -70414,61 +70528,57 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 +#, fuzzy msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" "En la compilación de Windows también se obtiene una biblioteca libsimple." "lib. Esta es una biblioteca que puede compilar en un proyecto para " @@ -70476,146 +70586,209 @@ msgstr "" "necesitamos :) Al exportar el juego para lanzamiento, este archivo será " "ignorado." -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 +msgid "Start by clicking the create resource button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 +msgid "" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +#, fuzzy +msgid "General properties" +msgstr "Propiedades de los nodos" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 +msgid "" +"In the Inspector, you have various properties to control loading the library." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +#, fuzzy +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" "Si singleton es true nuestra librería se carga automáticamente y se llama a " "una función llamada godot_singleton_init. Dejaremos eso para otro tutorial." -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +#, fuzzy +msgid "Platform libraries" +msgstr "Nombre de la plataforma." + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +#, fuzzy +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." msgstr "" "La sección **entry** nos dice para cada combinación de plataforma y " "característica qué librería dinámica debe ser cargada. Esto también informa " "al exportador de los ficheros que deben exportarse al exportar a una " "plataforma específica." -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Consiguiendo el código fuente" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 -msgid "Start by clicking the create resource button in the Inspector:" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"The file is saved in a text-based format and should have contents similar to " +"this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -70636,7 +70809,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -70646,47 +70819,48 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "Configurando el proyecto" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "Hay algunos requisitos previos que necesitarás:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "una copia del `repositorio godot-cpp `_." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -70697,13 +70871,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -70711,18 +70885,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -70731,107 +70905,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "Creación de un simple plugin" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -70839,33 +71013,33 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" "Después de eso declaramos una sola variable de miembro llamada " "``time_passed``." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -70876,11 +71050,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -70889,7 +71063,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -70900,7 +71074,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -70909,13 +71083,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -70924,7 +71098,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -70932,11 +71106,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "Compilando el plugin" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -70945,49 +71119,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -70997,7 +71171,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -71006,7 +71180,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -71014,20 +71188,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -71037,28 +71211,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "Agregando propiedades" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -71066,32 +71240,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -71099,41 +71273,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -71141,13 +71315,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -71155,14 +71329,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -71170,17 +71344,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -71188,26 +71362,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -71215,18 +71389,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -71234,22 +71408,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -71257,7 +71431,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -71265,18 +71439,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -76084,12 +76258,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -76097,14 +76270,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -76113,20 +76286,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -76134,18 +76307,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -76153,164 +76326,165 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" -msgstr "" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +#, fuzzy +msgid "For the previous build attempt, the result would look like this::" +msgstr "Hasta ahora, el método update\\_health se ve así:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." -msgstr "" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +#, fuzzy +msgid "A Windows binary with the same configuration will look like this::" +msgstr "Y finalmente, cuando ejecute la escena, la animación deberá verse así:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "Objetivo" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -76318,23 +76492,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/es_MX.po b/weblate/es_MX.po index 84a6275b70..4f8c1894e4 100644 --- a/weblate/es_MX.po +++ b/weblate/es_MX.po @@ -27,7 +27,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-17 07:19+0000\n" "Last-Translator: Carlos Miranda \n" "Language-Team: Spanish (Mexico) `_, o en el canal ``#godotengine-doc`` en `irc." "freenode.net `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "La documentación principal del sitio está organizada en las siguientes " "secciones:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Aspecto General" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Para empezar" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Tutoriales" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Desarrollo" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Comunidad" @@ -1317,7 +1317,7 @@ msgid "New tutorials since version 3.1" msgstr "Nuevos tutoriales desde la versión 3.0" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Flujo de trabajo del proyecto" @@ -1328,7 +1328,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr ":ref:`Custom builds for Android `" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" @@ -1380,369 +1380,369 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 #, fuzzy msgid "Your First Shader Series:" msgstr "Tu primer juego" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 #, fuzzy msgid ":ref:`doc_what_are_shaders`" msgstr "" "Referencia :ref: `Qué son las clases de Godot `" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 #, fuzzy msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "Tu primer juego" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 #, fuzzy msgid ":ref:`doc_your_first_spatial_shader`" msgstr "Tu primer juego" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr "Referencia :ref:`Exportando `" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "referencia :ref: `Señales `" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Creando contenido" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Notificaciones" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 #, fuzzy msgid ":ref:`doc_using_multimesh`" msgstr "referencia :ref: `Señales `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 #, fuzzy msgid ":ref:`doc_using_servers`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "Nuevos tutoriales desde la versión 3.0" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "Paso a paso" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 #, fuzzy msgid ":ref:`doc_signals`" msgstr "referencia :ref: `Señales `" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 #, fuzzy msgid ":ref:`doc_exporting`" msgstr "Referencia :ref:`Exportando `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "Scripting (Escribiendo código)" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "Mejores prácticas:" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 #, fuzzy msgid ":ref:`doc_introduction_best_practices`" msgstr "Referencia :ref: `Introducción `" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 #, fuzzy msgid ":ref:`doc_what_are_godot_classes`" msgstr "" "Referencia :ref: `Qué son las clases de Godot `" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr "Referencia :ref: `Organización de la escena `" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 #, fuzzy msgid ":ref:`doc_scenes_versus_scripts`" msgstr "Referencia :ref: `Escenas y scripts `" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 #, fuzzy msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" ":ref:`Autoloads versus internal nodes `" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 #, fuzzy msgid ":ref:`doc_godot_interfaces`" msgstr "Modificar la interfaz" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr "Notificaciones" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 #, fuzzy msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 #, fuzzy msgid ":ref:`doc_csg_tools`" msgstr "referencia :ref: `Señales `" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 #, fuzzy msgid ":ref:`doc_shaders`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 #, fuzzy msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Eligiendo animaciones" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 #, fuzzy msgid ":ref:`doc_making_trees`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1752,20 +1752,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -2188,7 +2188,7 @@ msgstr "" "sonido, otros nodos muestran modelos en 3D, etc. Existen docenas de ellos." #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -3493,9 +3493,10 @@ msgstr "" "emisor al nodo seleccionado." #: ../../docs/getting_started/step_by_step/scripting.rst:213 +#, fuzzy msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3995,7 +3996,7 @@ msgstr "Solo GDScript crea variables globales para cada script con nombre." #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Señales" @@ -5311,7 +5312,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -5606,11 +5607,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -5708,7 +5709,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -16723,7 +16724,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -18082,7 +18083,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -18092,24 +18093,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -18117,17 +18122,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -18136,27 +18141,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -18164,136 +18210,145 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +#, fuzzy +msgid "The scale of the root node." +msgstr "El papel o rol del script" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 #, fuzzy msgid "Create a script like this:" msgstr "El script final debe verse como esto:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -18301,117 +18356,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -18420,11 +18475,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -18432,35 +18487,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Creando contenido" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -18468,15 +18549,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -18484,154 +18565,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -18639,80 +18720,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -22367,8 +22448,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -24205,7 +24286,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -25138,7 +25219,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "" @@ -60849,153 +60930,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -61003,13 +61104,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -61019,30 +61120,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -61050,57 +61151,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -61109,28 +61212,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -61141,197 +61244,252 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" -msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +#, fuzzy +msgid "General properties" +msgstr "Tiene propiedades editables." -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Escribiendo sentencias de código (scripting) en una escena" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -61352,7 +61510,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -61362,46 +61520,46 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 #, fuzzy msgid "Setting up the project" msgstr "Creando un nuevo proyecto" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -61412,13 +61570,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -61426,18 +61584,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -61446,107 +61604,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -61554,31 +61712,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -61589,11 +61747,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -61602,7 +61760,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -61613,7 +61771,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -61622,13 +61780,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -61637,7 +61795,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -61645,11 +61803,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -61658,49 +61816,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -61710,7 +61868,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -61719,7 +61877,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -61727,20 +61885,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -61750,29 +61908,29 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 #, fuzzy msgid "Adding properties" msgstr "Tiene propiedades editables." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -61780,32 +61938,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -61813,41 +61971,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -61855,13 +62013,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -61869,14 +62027,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -61884,17 +62042,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -61902,26 +62060,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -61929,18 +62087,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -61948,22 +62106,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -61971,7 +62129,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -61979,18 +62137,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -66659,12 +66817,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -66672,14 +66829,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -66688,20 +66845,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -66709,18 +66866,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -66728,164 +66885,164 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" -msgstr "" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +#, fuzzy +msgid "For the previous build attempt, the result would look like this::" +msgstr "Su árbol de escenas debería verse así:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -66893,23 +67050,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/fa.po b/weblate/fa.po index 337bd66a00..ea8d5559d4 100644 --- a/weblate/fa.po +++ b/weblate/fa.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-05-21 11:16+0000\n" "Last-Translator: hdteav \n" "Language-Team: Persian `_ با برچسب " "``#godotengine-doc`` به بحث و گفتگو بپردازید!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "مستندات اصلی سایت از این بخش ها تشکیل می‌شوند:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "کلی" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "شروع" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "آموزش‌ها" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "توسعه" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "انجمن" @@ -1059,7 +1059,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1069,7 +1069,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1121,341 +1121,341 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "تولید محتوا" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "تولید محتوا" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "تولید محتوا" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "تولید محتوا" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr "شرط" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "تولید محتوا" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1465,20 +1465,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1815,7 +1815,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2760,7 +2760,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3117,7 +3117,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "سیگنال‌ها" @@ -4107,7 +4107,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4402,11 +4402,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4504,7 +4504,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15507,7 +15507,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16865,7 +16865,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16875,24 +16875,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16900,17 +16904,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16919,27 +16923,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16947,136 +16992,144 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 #, fuzzy msgid "Import options" msgstr "شرط" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17084,117 +17137,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17203,11 +17256,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17215,35 +17268,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "شرط" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17251,15 +17330,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17267,154 +17346,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17422,80 +17501,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21144,8 +21223,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -22981,7 +23060,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23913,7 +23992,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "" @@ -59561,153 +59640,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59715,13 +59814,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59731,30 +59830,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59762,57 +59861,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59821,28 +59922,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59853,197 +59954,251 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "تولید محتوا" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60064,7 +60219,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60074,45 +60229,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60123,13 +60278,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60137,18 +60292,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60157,107 +60312,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60265,31 +60420,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60300,11 +60455,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60313,7 +60468,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60324,7 +60479,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60333,13 +60488,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60348,7 +60503,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60356,11 +60511,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60369,49 +60524,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60421,7 +60576,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60430,7 +60585,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60438,20 +60593,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60461,28 +60616,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60490,32 +60645,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60523,41 +60678,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60565,13 +60720,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60579,14 +60734,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60594,17 +60749,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60612,26 +60767,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60639,18 +60794,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60658,22 +60813,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60681,7 +60836,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60689,18 +60844,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65326,12 +65481,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65339,14 +65493,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65355,20 +65509,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65376,18 +65530,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65395,164 +65549,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65560,23 +65713,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/fi.po b/weblate/fi.po index cf025f4045..4cd9e56a6b 100644 --- a/weblate/fi.po +++ b/weblate/fi.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-17 07:19+0000\n" "Last-Translator: Touko Jaakkola \n" "Language-Team: Finnish `_, tai ``#godotengine-doc`` IRC-kanavalla `irc.freenode." "net `_ palvelimella!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Päädokumentaatio tällä sivustolla on järjestelty seuraaviin lukuihin:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Yleistä" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Alkuun pääseminen" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Tutoriaalit" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Kehitys" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Yhteisö" @@ -1293,7 +1293,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Projektin työnkulku" @@ -1303,7 +1303,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" @@ -1356,364 +1356,364 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "Kääntäminen" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 #, fuzzy msgid "Your First Shader Series:" msgstr "Ensimmäinen pelisi" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 #, fuzzy msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 #, fuzzy msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "Ensimmäinen pelisi" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 #, fuzzy msgid ":ref:`doc_your_first_spatial_shader`" msgstr "Ensimmäinen pelisi" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Liitännäiset" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "Monisäikeisyys" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Sisällön luominen" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "Optimointi" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 #, fuzzy msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 #, fuzzy msgid ":ref:`doc_using_servers`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 #, fuzzy msgid ":ref:`doc_complying_with_licenses`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "Uudet oppaat versiosta 3.0 lähtien" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "Kohta kohdalta" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 #, fuzzy msgid ":ref:`doc_signals`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "Skriptaus" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "Parhaat käytännöt:" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 #, fuzzy msgid ":ref:`doc_godot_interfaces`" msgstr "Muokkaa käyttöliittymää" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 #, fuzzy msgid ":ref:`doc_data_preferences`" msgstr "Eroavaisuudet" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 #, fuzzy msgid ":ref:`doc_logic_preferences`" msgstr "Eroavaisuudet" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 #, fuzzy msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 #, fuzzy msgid ":ref:`doc_animating_thousands_of_fish`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Fysiikkamallinnus" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Animaatio" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 #, fuzzy msgid ":ref:`doc_shaders`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 #, fuzzy msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr ":ref:`AnimatedSprite `" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Animaatioiden valinta" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 #, fuzzy msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "Alustakohtaista" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 #, fuzzy msgid ":ref:`doc_making_trees`" msgstr ":ref:`Animaatiolinjasto `" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "Sekalaista" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1723,20 +1723,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 #, fuzzy msgid ":ref:`doc_binding_to_external_libraries`" msgstr ":ref:`Ulkoiset editorit ovat mahdollisia `" @@ -2152,7 +2152,7 @@ msgstr "" "jotkut solmut esittävät 3D-malleja, jne. Niitä on kymmenittäin." #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -3420,9 +3420,10 @@ msgstr "" "osoittamaan suhteellista polkua lähettävästä solmusta valittuun solmuun." #: ../../docs/getting_started/step_by_step/scripting.rst:213 +#, fuzzy msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3913,7 +3914,7 @@ msgstr "Vain GDScript luo globaaleja muuttujia kullekin nimetylle skriptille." #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Signaalit" @@ -5261,7 +5262,7 @@ msgstr ":ref:`Timer ` nimeltä ``MessageTimer``." #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 #, fuzzy msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -5630,11 +5631,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -5760,7 +5761,7 @@ msgstr "Tässä koko skripti pelaajalle, muutokset kommenteihin merkittynä:" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "Vientimallit" @@ -16944,7 +16945,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -18308,7 +18309,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -18318,24 +18319,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -18343,17 +18348,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -18362,27 +18367,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -18390,137 +18436,147 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 #, fuzzy msgid "Import options" msgstr "Tuonti" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "Kielialue" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +#, fuzzy +msgid "The scale of the root node." +msgstr "Skriptin rooli" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 #, fuzzy msgid "Create a script like this:" msgstr "Lopullisen skriptin pitäisi näyttää tältä:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -18528,117 +18584,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -18647,11 +18703,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -18659,35 +18715,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Animaatiot" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -18695,15 +18777,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "FPS" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -18711,155 +18793,155 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 #, fuzzy msgid "Import hints" msgstr "Tuonti" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -18867,80 +18949,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -22602,8 +22684,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -24462,7 +24544,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -25394,7 +25476,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Työkalut" @@ -61111,153 +61193,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -61265,13 +61367,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -61281,30 +61383,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -61312,57 +61414,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -61371,28 +61475,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -61403,197 +61507,252 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" -msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +#, fuzzy +msgid "General properties" +msgstr "Sillä on muokattavia ominaisuuksia." -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Skenen pystytys" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -61614,7 +61773,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -61624,46 +61783,47 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "Projektin perustus" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "kopio `godot-cpp säilöstä `_." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -61674,13 +61834,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -61688,18 +61848,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -61708,107 +61868,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -61816,31 +61976,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -61851,11 +62011,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -61864,7 +62024,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -61875,7 +62035,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -61884,13 +62044,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -61899,7 +62059,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -61907,11 +62067,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -61920,49 +62080,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -61972,7 +62132,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -61981,7 +62141,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -61989,20 +62149,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -62012,29 +62172,29 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 #, fuzzy msgid "Adding properties" msgstr "Sillä on muokattavia ominaisuuksia." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -62042,32 +62202,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -62075,41 +62235,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -62117,13 +62277,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -62131,14 +62291,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -62146,17 +62306,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -62164,26 +62324,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -62191,18 +62351,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -62210,22 +62370,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -62233,7 +62393,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -62241,18 +62401,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -66921,12 +67081,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -66934,14 +67093,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -66950,20 +67109,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -66971,18 +67130,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -66990,164 +67149,164 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" -msgstr "" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +#, fuzzy +msgid "For the previous build attempt, the result would look like this::" +msgstr "Skenepuun pitäisi näyttää tältä:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "Kohde" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -67155,23 +67314,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/fil.po b/weblate/fil.po index 1e442ce793..172fc76bfb 100644 --- a/weblate/fil.po +++ b/weblate/fil.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-04-08 10:35+0000\n" "Last-Translator: Marco Santos \n" "Language-Team: Filipino `_!" msgstr "" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "" @@ -979,7 +979,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -989,7 +989,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1036,335 +1036,335 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 msgid ":ref:`doc_android_plugin`" msgstr "" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 msgid ":ref:`doc_inspector_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 msgid ":ref:`doc_using_multiple_threads`" msgstr "" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1374,20 +1374,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1724,7 +1724,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2669,7 +2669,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3026,7 +3026,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "" @@ -4015,7 +4015,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4310,11 +4310,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4412,7 +4412,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15404,7 +15404,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16760,7 +16760,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16770,24 +16770,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16795,17 +16799,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16814,27 +16818,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16842,135 +16887,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -16978,117 +17031,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17097,11 +17150,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17109,34 +17162,60 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17144,15 +17223,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17160,154 +17239,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17315,80 +17394,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21022,8 +21101,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -22858,7 +22937,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23790,7 +23869,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "" @@ -59414,153 +59493,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59568,13 +59667,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59584,30 +59683,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59615,57 +59714,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59674,28 +59775,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59706,197 +59807,250 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +msgid "Saving the resource" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -59917,7 +60071,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -59927,45 +60081,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -59976,13 +60130,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -59990,18 +60144,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60010,107 +60164,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60118,31 +60272,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60153,11 +60307,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60166,7 +60320,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60177,7 +60331,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60186,13 +60340,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60201,7 +60355,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60209,11 +60363,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60222,49 +60376,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60274,7 +60428,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60283,7 +60437,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60291,20 +60445,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60314,28 +60468,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60343,32 +60497,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60376,41 +60530,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60418,13 +60572,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60432,14 +60586,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60447,17 +60601,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60465,26 +60619,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60492,18 +60646,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60511,22 +60665,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60534,7 +60688,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60542,18 +60696,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65172,12 +65326,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65185,14 +65338,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65201,20 +65354,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65222,18 +65375,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65241,164 +65394,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65406,23 +65558,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/fr.po b/weblate/fr.po index 9df49581d4..5cff5a991e 100644 --- a/weblate/fr.po +++ b/weblate/fr.po @@ -99,7 +99,7 @@ msgid "" msgstr "" "Project-Id-Version: French (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-29 19:20+0000\n" "Last-Translator: Rémi Verschelde \n" "Language-Team: French `_ !" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "weblate_widget" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "La documentation principale du site est organisée en plusieurs sections :" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Général" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Prise en main" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Tutoriels" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Développement" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Communauté" @@ -1401,7 +1401,7 @@ msgid "New tutorials since version 3.1" msgstr "Nouveaux tutoriels depuis la version 3.0" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Gestion de projet" @@ -1414,7 +1414,7 @@ msgstr "" "`" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" @@ -1467,405 +1467,405 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "Localisation" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "Ombres" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "Votre première série de shaders :" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 #, fuzzy msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`Que sont les shaders ? `" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 #, fuzzy msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" ":ref:`Votre premier Shader CanvasItem `" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 #, fuzzy msgid ":ref:`doc_your_first_spatial_shader`" msgstr ":ref:`Votre premier shader Spatial `" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 #, fuzzy msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" ":ref:`Votre premier shader Spatial : Partie 2 " "`" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "Réseau" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr ":ref:`Exporter `" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Extensions" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr ":ref:`Créer des plugins Android `" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "ref:`Spatial gizmo plugins `" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "Le Multi-threading" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr ":ref:`Utiliser des MultiMesh `" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "Création de contenu" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr ":ref:`Shaders de particule `" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "Optimisation" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 #, fuzzy msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Utiliser des MultiMesh `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 #, fuzzy msgid ":ref:`doc_using_servers`" msgstr ":ref: 'Utiliser les serveurs < doc_using_servers > '" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "Légal" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 #, fuzzy msgid ":ref:`doc_complying_with_licenses`" msgstr ":ref:`Se conformer aux licences `" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "Nouveaux tutoriels depuis la version 3.0" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "Pas à pas" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 #, fuzzy msgid ":ref:`doc_signals`" msgstr ":ref:`Signaux `" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 #, fuzzy msgid ":ref:`doc_exporting`" msgstr ":ref:`Exporter `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "Les scripts" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 #, fuzzy msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`GDscript Dactylographié `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "Les Meilleures Pratiques :" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 #, fuzzy msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref:`Introduction `" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 #, fuzzy msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref:`Que sont les Classes Godot `" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr ":ref:`Organisation des Scènes `" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 #, fuzzy msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref:`Scènes VS scripts `" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 #, fuzzy msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "Chargements automatiques par rapport aux nœuds internes" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 #, fuzzy msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`Node alternatives `" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 #, fuzzy msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:`Interfaces de Godot `" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Notifications de Godot `" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 #, fuzzy msgid ":ref:`doc_data_preferences`" msgstr ":ref:`Préférences des données `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 #, fuzzy msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`Préférences des logiques `" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 #, fuzzy msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`Lumières 2D et ombres `" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 #, fuzzy msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`Mailles 2D `" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 #, fuzzy msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 #, fuzzy msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" ":ref: `Animer des milliers de poissons avec MultiMesh " "`" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 #, fuzzy msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:`Contrôler des milliers de poissons avec des Particules " "`" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Physique" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 #, fuzzy msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`Système de ragdoll `" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 #, fuzzy msgid ":ref:`doc_soft_body`" msgstr ":ref:`Softbody `" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Animation" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 #, fuzzy msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`Squelettes 2D `" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr ":ref:`Arbre d'Animations `" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "Interface graphique" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr ":ref:`Conteneurs `" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "Vue d'écran" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 #, fuzzy msgid ":ref:`doc_viewport_as_texture`" msgstr ":ref:`Utiliser une Vue comme une texture `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 #, fuzzy msgid ":ref:`doc_custom_postprocessing`" msgstr "ref:`Post-traitement personnalisé `" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 #, fuzzy msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`Introduction aux shaders: Eau 2D et 3D (7 tutoriels vidéo) " "`" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 #, fuzzy msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Migration vers le langage de Shader de Godot (Godot’s shading " "language) `" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 #, fuzzy msgid ":ref:`doc_advanced_postprocessing`" msgstr "Post-traitement avancé" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "Référence de shading :" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 #, fuzzy msgid ":ref:`doc_shaders`" msgstr ":ref:`Shaders `" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 #, fuzzy msgid ":ref:`doc_shading_language`" msgstr ":ref:`langage de shading `" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 #, fuzzy msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`Shaders spatiaux `" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 #, fuzzy msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`CanvasItem shaders `" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr ":ref:`Shaders de particule `" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "Réalité virtuelle" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 #, fuzzy msgid ":ref:`doc_vr_starter_tutorial`" msgstr "ref:`Tutoriel de démarrage VR `" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" ":ref:`Faire des plugins pour l'écran principal " "`" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 #, fuzzy msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "ref:`Spatial gizmo plugins `" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "Spécifique à la plateforme" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 #, fuzzy msgid ":ref:`doc_customizing_html5_shell`" msgstr "" ":ref:`Personnaliser l'exportation Web de la page HTML " "`" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 #, fuzzy msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`Thread safe APIs `" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 #, fuzzy msgid ":ref:`doc_making_trees`" msgstr "ref:`Faire des arbres `" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "Divers" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 #, fuzzy msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`Réparer jitter et stutter `" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 #, fuzzy msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`Lancer le code dans l'éditeur `" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 #, fuzzy msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`Changer les scènes manuellement `" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 #, fuzzy msgid ":ref:`doc_gles2_gles3_differences`" msgstr ":ref:`Différences entre GLES2 et GLES3 `" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1875,25 +1875,25 @@ msgstr ":ref:`Différences entre GLES2 et GLES3 `" msgid "Compiling" msgstr "Compilation" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 #, fuzzy msgid ":ref:`doc_optimizing_for_size`" msgstr "" ":ref:`Optimisation d'un build pour la taille `" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 #, fuzzy msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" ":ref:`Compiler avec un script de clé de cryptage " "`" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "Développement du moteur" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 #, fuzzy msgid ":ref:`doc_binding_to_external_libraries`" msgstr "Liaison à des bibliothèques externes" @@ -2315,7 +2315,7 @@ msgstr "" "douzaines." #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -3620,9 +3620,10 @@ msgstr "" "sélectionné." #: ../../docs/getting_started/step_by_step/scripting.rst:213 +#, fuzzy msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -4125,7 +4126,7 @@ msgstr "Seul GDScript crée des variables globales pour chaque script nommé." #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Signaux" @@ -5514,8 +5515,9 @@ msgid ":ref:`Timer ` named ``MessageTimer``." msgstr "Un :ref:`Timer ` nommé ``MessageTimer``." #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 +#, fuzzy msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -5902,12 +5904,13 @@ msgstr "" "nœud \"Bouton\"." #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 +#, fuzzy msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" "Dans la scène ``HUD``, sélectionnez le ``StartButton``et trouvez _Shortcut_ " @@ -6047,7 +6050,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "Exporter des modèles" @@ -20967,7 +20970,7 @@ msgstr "" "répertoire est présent dans le dépôt Godot-Blender-exporter." #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "Matériaux" @@ -22710,8 +22713,9 @@ msgid "DAE (COLLADA), which is currently the most mature workflow." msgstr "DAE (Collada), qui est actuellement le flux de travail le plus abouti." #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 +#, fuzzy msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" "GLTF 2.0. Les formats texte et binaire sont pris en charge. Godot le prend " @@ -22725,7 +22729,11 @@ msgstr "" "Formats OBJ (Wavefront). C'est également entièrement pris en charge, mais " "assez limité (pas de prise en charge des pivots, squelettes, etc.)." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." @@ -22733,7 +22741,7 @@ msgstr "" "Copiez simplement le fichier de scène avec la texture dans le dépôt du " "projet, et Godot effectuera une importation complète." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " @@ -22744,11 +22752,11 @@ msgstr "" "T ou à sa position de repos par défaut avant d'exporter avec votre éditeur " "3D préféré." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "Pourquoi pas FBX ?" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -22761,7 +22769,7 @@ msgstr "" "d'Autodesk qui est distribuée avec des termes de licence plus restrictifs " "que ceux de Godot." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." @@ -22769,11 +22777,11 @@ msgstr "" "Il est prévu dans le futur, d’offrir une extension binaire utilisant " "GDNative." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "Exportation de fichiers DAE de Maya et de 3DS Max" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -22788,11 +22796,11 @@ msgstr "" "fonctionnent bien, malgré qu'elles ne soient pas toujours à jour avec la " "dernière version du logiciel." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "Exportation de fichiers DAE de Blender" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." @@ -22800,7 +22808,7 @@ msgstr "" "Blender a également un support COLLADA intégré, mais il est également bancal " "et ne devrait pas être utilisé." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." @@ -22808,11 +22816,53 @@ msgstr "" "Godot fournit une `extension Python `__ qui fera un bien meilleur travail d'exportation des scènes." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +#, fuzzy +msgid "Exporting glTF 2.0 files from Blender" +msgstr "Exportation de fichiers DAE de Blender" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "Exportation de fichiers ESCN depuis Blender" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -22824,7 +22874,7 @@ msgstr "" "sont un peu un autre nom de fichier .tscn (fichier de scène Godot), il " "conserve autant d'informations que possible à partir d'une scène Blender." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." @@ -22832,11 +22882,11 @@ msgstr "" "L'exportateur ESCN a un `document détaillé `__ " "décrivant ses fonctionnalités et son utilisation." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "Processus d’importation" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" @@ -22845,7 +22895,7 @@ msgstr "" "manière dont les données sont importées. Suivant de nombreuses options, il " "est possible d'importer une scène avec :" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." @@ -22853,7 +22903,7 @@ msgstr "" "Matériaux externes (par défaut) : où chaque matériau est enregistré dans un " "fichier ressource. Leurs modifications sont conservées." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." @@ -22862,7 +22912,7 @@ msgstr "" "différent. De nombreux utilisateurs préfèrent traiter directement les " "maillages." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." @@ -22870,7 +22920,7 @@ msgstr "" "Animations externes : Permet de modifier et de fusionner des animations " "enregistrées lorsque les sources changent." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." @@ -22878,11 +22928,11 @@ msgstr "" "Scènes externes : enregistrer les nœuds racine des scènes importées chacun " "en tant que scène distincte." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "Scène unique : un fichier de scène unique avec tout intégré." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." @@ -22890,20 +22940,20 @@ msgstr "" "Comme différents développeurs ont des besoins différents, ce processus " "d'importation est hautement personnalisable." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "Options d'importation" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" "L'importateur a plusieurs options, lesquelles seront discutées ci-dessous :" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "Type racine" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." @@ -22911,19 +22961,29 @@ msgstr "" "Par défaut, le type du nœud racine dans les scènes importées est \"Spatial" "\", mais cela peut être modifié." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "Nom racine" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "Permet de définir un nom spécifique pour le nœud racine généré." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "Nom racine" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +#, fuzzy +msgid "The scale of the root node." +msgstr "Le rôle du script" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "Script personnalisé" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " @@ -22933,11 +22993,11 @@ msgstr "" "fourni. Ceci est idéal pour le post-traitement, le changement de matériaux, " "les choses amusantes avec la géométrie, etc." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "Créez un script comme celui-ci :" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " @@ -22947,14 +23007,14 @@ msgstr "" "paramètre est en fait le nœud racine de la scène). La scène qui sera " "finalement utilisée doit être retournée. Cela peut en être une différente." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "Stockage" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " @@ -22964,7 +23024,7 @@ msgstr "" "que les nœuds situés en dessous de la racine seront chacun une scène " "distincte et seront instanciés dans la scène importée." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." @@ -22972,11 +23032,11 @@ msgstr "" "Bien entendu, instancier manuellement des scènes importées à d'autres " "endroits fonctionne également." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "Emplacement" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." @@ -22984,7 +23044,7 @@ msgstr "" "Godot prend en charge les matériaux dans les mailles ou les nœuds. Par " "défaut, les matériaux seront placés sur chaque nœud." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -22996,7 +23056,7 @@ msgstr "" "édition est donc possible. En effet, la plupart des DCC 3D n’ont pas les " "mêmes options de matériaux que celles présentes dans Godot." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." @@ -23004,11 +23064,11 @@ msgstr "" "Lorsque des matériaux sont intégrés, ils seront perdus chaque fois que la " "scène source sera modifiée et réimportée." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "Continuer à réimporter" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " @@ -23019,15 +23079,15 @@ msgstr "" "provenant de la scène source. Cette option est uniquement disponible si les " "matériaux sont enregistrés en tant que fichiers." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "Maillages" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "Compresser" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." @@ -23035,11 +23095,11 @@ msgstr "" "Fait utiliser des nombres de moindre précision dans plusieurs aspects des " "maillages pour sauver de l’espace." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "Ceux-ci sont :" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." @@ -23047,7 +23107,7 @@ msgstr "" "Matrice de transformation (position, rotation, and échelle) : " "flottant 32-bit vers entier signé 16-bit." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." @@ -23055,7 +23115,7 @@ msgstr "" "Vertex : flottant 32-bit " "vers entier signé 16-bit." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." @@ -23063,7 +23123,7 @@ msgstr "" "Normales : flottant 32-" "bit vers entier non-signé 32-bit." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." @@ -23071,7 +23131,7 @@ msgstr "" "Tangentes : flottant 32-" "bit vers entier non-signé 32-bit." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." @@ -23079,7 +23139,7 @@ msgstr "" "Couleur des vertex : flottant " "32-bit vers entier non-signé 32-bit." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." @@ -23087,7 +23147,7 @@ msgstr "" "UV : flottant 32-" "bit vers entier non-signé 32-bit." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." @@ -23095,7 +23155,7 @@ msgstr "" "UV2 : flottant 32-" "bit vers entier non-signé 32-bit." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." @@ -23103,7 +23163,7 @@ msgstr "" "Poids des vertex : flottant 32-" "bit vers entier non-signé 16-bit." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." @@ -23111,7 +23171,7 @@ msgstr "" "Squelette d’armature : " "flottant 32-bit vers entier non-signé 16-bit." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." @@ -23120,18 +23180,18 @@ msgstr "" "flottant 32-bit vers entier non-signé 16 ou 32-bit selon le nombre " "d’éléments." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "Information supplémentaire :" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" "UV2 = le deuxième canal UV for les textures de détail et les textures de " "lightmap précalculé." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." @@ -23139,7 +23199,7 @@ msgstr "" "Indices de tableau = Un tableau de nombres qui numérote chaque élément des " "tableaux ci-dessus, ç-à-d. qu’il numérote les vertex et les normales." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -23154,11 +23214,11 @@ msgstr "" "des lacunes dans la géométrie ou des sommets qui ne se trouvent pas " "exactement où ils devraient être." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "Vérifier les tangentes" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -23171,7 +23231,7 @@ msgstr "" "source. Godot utilise Mikktspace pour cela, mais il est toujours préférable " "de les générer dans l'exportateur." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " @@ -23181,7 +23241,7 @@ msgstr "" "lieu d'être intégrés. Cela n'a pas beaucoup d'intérêt à moins que l'on " "veuille construire des objets avec directement." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." @@ -23189,11 +23249,39 @@ msgstr "" "Cette option est fournie pour aider ceux qui préfèrent travailler " "directement avec des maillages au lieu de scènes." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#, fuzzy +msgid "Light Baking" +msgstr "Pré-calcul" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#, fuzzy +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "Lumière préparée (read :ref:`doc_baked_lightmaps`)." + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "Fichiers externes" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." @@ -23201,11 +23289,11 @@ msgstr "" "Les maillages générés et les matériels peuvent être optionnellement stocké " "dans un sous-répertoire nommé d’après la scène." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "Options d’animation" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -23219,15 +23307,15 @@ msgstr "" "ligne de temps ou, au pire, placent chaque animation dans un fichier " "distinct." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "L'import d'animation est activé par défaut." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "IPS" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -23240,11 +23328,11 @@ msgstr "" "par seconde utilisées pour les éditer. Ne pas le faire peut entraîner des " "saccades minimes." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "Script de filtrage" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " @@ -23254,7 +23342,7 @@ msgstr "" "pour décider quelles pistes de quelles animations doivent être conservées. " "(@TODO ceci a besoin de documentation)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " @@ -23265,11 +23353,11 @@ msgstr "" "d'ajouter des pistes personnalisées aux animations et de les conserver après " "une réimportation." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "Optimiseur" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " @@ -23280,11 +23368,11 @@ msgstr "" "devrait toujours être activée, à moins que vous ne soupçonniez qu'elle " "pourrait casser une animation donnée." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "Clips" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " @@ -23295,23 +23383,24 @@ msgstr "" "jusqu'à quelle image chaque clip doit être pris (et, bien sûr, n'oubliez pas " "de spécifier l'option IPS ci-dessus)." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "Héritage de scène" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 +#, fuzzy msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" "Dans de nombreux cas, il peut être souhaitable d'apporter des modifications " "à la scène importée. Par défaut, ce n'est pas vraiment possible car si la " "ressource source change (fichier source .dae, .gltf, .obj réexporté à partir " "d'une application de modélisation 3D), Godot réimporte la scène entière." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " @@ -23321,19 +23410,19 @@ msgstr "" "l'*héritage de scène*. Essayez simplement d'ouvrir la scène importée et la " "boîte de dialogue suivante apparaîtra :" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" "Dans les scènes héritées, les seules limitations pour les modifications " "sont :" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" "Les nœuds ne peuvent pas être supprimés (mais peuvent être ajoutés n'importe " "où)." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" @@ -23341,15 +23430,15 @@ msgstr "" "Les sous-ressources ne peuvent pas être éditées (sauvegardez-les en externe " "comme décrit ci-dessus)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "Sinon, tout est permis !" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "Conseils pour l'importation" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" @@ -23357,15 +23446,15 @@ msgstr "" "Souvent, lors de l'édition d'une scène, il y a des tâches communes qui " "doivent être effectuées après l'exportation :" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "Ajout de la détection de collision aux objets :" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "Réglage des objets comme maillages de navigation" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" @@ -23373,7 +23462,7 @@ msgstr "" "Supprimer les nœuds qui ne sont pas utilisés dans le moteur de jeu (comme " "les lumières spécifiques utilisées pour la modélisation)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " @@ -23384,11 +23473,11 @@ msgstr "" "3D. Lors de l'importation, Godot les détectera et effectuera des actions " "automatiquement :" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "Supprimer les nœuds (-noimp)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." @@ -23397,11 +23486,11 @@ msgstr "" "l'importation, quel que soit leur type. Ils n'apparaîtront pas dans la scène " "importée." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "Créer des collisions (-col, -colonly, -colonly, -convcolonly)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." @@ -23410,7 +23499,7 @@ msgstr "" "détectée, un nœud de collision statique enfant sera ajouté, utilisant la " "même géométrie que le maillage." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." @@ -23418,7 +23507,7 @@ msgstr "" "Cependant, il arrive souvent que la géométrie visuelle soit trop complexe ou " "trop peu lisse pour les collisions, ce qui finit par ne pas bien fonctionner." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " @@ -23429,7 +23518,7 @@ msgstr "" "`class_staticbody` à la place. Cela permet de séparer le maillage visuel et " "la collision réelle." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." @@ -23437,7 +23526,7 @@ msgstr "" "L'option \"-convcolonly\" créera une :ref:`class_convexpolygonshape` au lieu " "d'une :ref:`class_concavepolygonshape`." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -23449,24 +23538,24 @@ msgstr "" "nœud collision en tant qu'enfant. Le nœud collision aura une des formes " "prédéfinies, en fonction du type de dessin vide de Blender :" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "Une flèche simple créera une :ref:`class_rayshape`" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "Un cube créera une :ref:`class_boxshape`" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "Une image créera une :ref:`class_planeshape`" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "Sphère (et autres non listés) va créer :ref:`class_sphereshape`" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " @@ -23476,11 +23565,11 @@ msgstr "" "définir l'option \"X-Ray\" sur les vides de collision et définir une couleur " "distincte pour eux dans User Preferences / Themes / 3D View / Empty." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "Créer une navigation (-navmesh)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." @@ -23488,11 +23577,11 @@ msgstr "" "Un nœud de maillage avec ce suffixe sera converti en un maillage de " "navigation. Le nœud de maillage original sera supprimé." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "Créer un VehicleBody (-vehicle)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." @@ -23500,11 +23589,11 @@ msgstr "" "Un nœud de maillage avec ce suffixe sera importé en tant qu'enfant d'un " "nœud :ref:`VehicleBody `." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "Créer une VehicleWheel (-wheel)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." @@ -23512,19 +23601,19 @@ msgstr "" "Un nœud de maillage avec ce suffixe sera importé en tant qu'enfant d'un " "nœud :ref:`VehicleWheel `." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "Corps Rigide (-rigid)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "Crée un corps rigide à partir de ce maillage." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "Boucle d'animation (-loop, -cycle)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " @@ -23535,7 +23624,7 @@ msgstr "" "d'animation Godot avec le drapeau loop activé. Ceci est sensible à la casse " "et ne nécessite pas de trait d'union." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -28384,10 +28473,11 @@ msgstr "" "également destinées à être substituée par des scripts." #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 +#, fuzzy msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" "Un exemple classique est la méthode :ref:`_init ` " "dans Object. Bien qu'il n'ait pas d'équivalent NOTIFICATION_*, le moteur " @@ -30849,7 +30939,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "Configuration" @@ -32217,7 +32307,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "Allons-y encore ! Cette fois, la rotation s'opère correctement !" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Outils" @@ -70951,11 +71041,12 @@ msgstr "" msgid "GDNative C example" msgstr "Exemple de GDNative en C" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 +#, fuzzy msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" "Ce tutoriel est une introduction aux bases nécessaires à la création de " @@ -70963,33 +71054,38 @@ msgstr "" "et la compréhension du contenu de ce tutoriel vous permettra de mieux " "comprendre tout ce qui s'ensuit." -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 +#, fuzzy msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" "Avant de commencer, vous pouvez télécharger le code source de l'objet " "exemple que nous décrivons ci-dessous en suivant ce lien : https://github." "com/GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 +#, fuzzy msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" "Ce projet exemple contient entre autres un fichier SConstruct qui rend " "l'étape de compilation plus accessible, mais pour ce tutoriel nous ferons la " "compilation manuellement." -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 +#, fuzzy msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" ":ref:`GDNative ` peut être utilisé pour créer divers types " "de fonctionnalités supplémentaires pour Godot, allant de PluginScript aux " @@ -70999,125 +71095,144 @@ msgstr "" "feriez avec un fichier GDScript. Nous allons coder l'équivalent en C de ce " "GDScript :" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 +#, fuzzy msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" "Des tutoriels sur les autres types de modules GDNative seront écrit " "prochainement pour expliquer leur intérêt et utilisation graduellement." -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 msgid "Prerequisites" msgstr "Prérequis" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 +#, fuzzy +msgid "Before we start you'll need a few things:" msgstr "Avant de commencer, il vous faut un certain nombre de composants." -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "Un exécutable de Godot 3.0" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "Un compilateur pour C" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" -"Une copie de ce dépôt : https://github.com/GodotNativeTools/godot_headers" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." -msgstr "" - #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -71125,13 +71240,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -71141,30 +71256,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -71172,57 +71287,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -71231,28 +71348,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -71263,197 +71380,253 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" -msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +#, fuzzy +msgid "General properties" +msgstr "Propriétés d’un nœud" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +#, fuzzy +msgid "Platform libraries" +msgstr "Nom de la plate-forme." + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Libérer des ressources" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -71474,7 +71647,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -71484,47 +71657,48 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "Mise en place du projet" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "Il y a quelques prérequis dont vous aurez besoin :" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "une copie du dépôt `godot-cpp `_." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -71535,13 +71709,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -71549,18 +71723,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -71569,107 +71743,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "Créer un plugin simple" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -71677,33 +71851,33 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" "Après cela, nous déclarons une unique variable membre appelée " "``time_passed``." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -71714,11 +71888,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -71727,7 +71901,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -71738,7 +71912,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -71747,13 +71921,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -71762,7 +71936,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -71770,11 +71944,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "Compiler le plugin" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -71783,49 +71957,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -71835,7 +72009,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -71844,7 +72018,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -71852,20 +72026,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -71875,28 +72049,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "Ajouter des propriétés" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -71904,32 +72078,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -71937,41 +72111,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -71979,13 +72153,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -71993,14 +72167,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -72008,17 +72182,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -72026,26 +72200,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -72053,18 +72227,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -72072,22 +72246,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -72095,7 +72269,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -72103,18 +72277,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -76883,12 +77057,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -76896,14 +77069,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -76912,20 +77085,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -76933,18 +77106,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -76952,164 +77125,167 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" -msgstr "" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +#, fuzzy +msgid "For the previous build attempt, the result would look like this::" +msgstr "Le résultat final devrait ressembler à ceci :" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +#, fuzzy +msgid "A Windows binary with the same configuration will look like this::" msgstr "" +"Et enfin, lors de l'exécution de la scène, l'animation devrait ressembler à " +"ceci :" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -77117,23 +77293,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." @@ -85021,6 +85209,18 @@ msgstr "" "`Zeef Godot Engine : Un répertoire de ressources créé par Andre Schmitz " "`_" +#~ msgid "A Godot 3.0 executable" +#~ msgstr "Un exécutable de Godot 3.0" + +#~ msgid "A C compiler" +#~ msgstr "Un compilateur pour C" + +#~ msgid "" +#~ "A copy of this repository: https://github.com/GodotNativeTools/" +#~ "godot_headers" +#~ msgstr "" +#~ "Une copie de ce dépôt : https://github.com/GodotNativeTools/godot_headers" + #~ msgid "" #~ "This tutorial series aims to illustrate intended Godot workflows, i.e. " #~ "the \"best practices\" of defining one's game API. Godot allows for a " diff --git a/weblate/he.po b/weblate/he.po index 0374946cd2..b795a12c32 100644 --- a/weblate/he.po +++ b/weblate/he.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-05 11:01+0000\n" "Last-Translator: shai sinai \n" "Language-Team: Hebrew `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "התיעוד העיקרי בשביל האתר מסודר לפי הסעיפים הבאים:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "כללי" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "מתחילים" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "מדריכים" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "פיתוח" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "קהילה" @@ -1076,7 +1076,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1086,7 +1086,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1138,343 +1138,343 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr "אנימציות" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "אנימציות" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "יצירת תוכן" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "אנימציות" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr "אנימציות" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "אנימציות" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1484,20 +1484,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1834,7 +1834,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2779,7 +2779,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3136,7 +3136,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "אותות" @@ -4130,7 +4130,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4425,11 +4425,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4527,7 +4527,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15533,7 +15533,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16896,7 +16896,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16906,24 +16906,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16931,17 +16935,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16950,27 +16954,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16978,135 +17023,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17114,117 +17167,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17233,11 +17286,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17245,35 +17298,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "אנימציות" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17281,15 +17360,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17297,154 +17376,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17452,80 +17531,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21166,8 +21245,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -23004,7 +23083,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23937,7 +24016,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "כלים" @@ -59596,153 +59675,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59750,13 +59849,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59766,30 +59865,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59797,57 +59896,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59856,28 +59957,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59888,197 +59989,251 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "יצירת תוכן" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60099,7 +60254,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60109,45 +60264,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60158,13 +60313,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60172,18 +60327,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60192,107 +60347,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60300,31 +60455,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60335,11 +60490,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60348,7 +60503,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60359,7 +60514,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60368,13 +60523,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60383,7 +60538,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60391,11 +60546,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60404,49 +60559,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60456,7 +60611,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60465,7 +60620,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60473,20 +60628,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60496,28 +60651,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60525,32 +60680,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60558,41 +60713,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60600,13 +60755,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60614,14 +60769,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60629,17 +60784,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60647,26 +60802,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60674,18 +60829,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60693,22 +60848,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60716,7 +60871,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60724,18 +60879,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65361,12 +65516,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65374,14 +65528,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65390,20 +65544,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65411,18 +65565,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65430,164 +65584,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65595,23 +65748,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/hi.po b/weblate/hi.po index 1045d36999..49abf68810 100644 --- a/weblate/hi.po +++ b/weblate/hi.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2018-10-07 19:28+0000\n" "Last-Translator: Vikram1323 \n" "Language-Team: Hindi ' _!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "साइट के लिए मुख्य दस्तावेज़ को निंन अनुभागों में व्यवस्थित किया गया है:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "सामान्य" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "सीखना शुरु" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "ट्यूटोरियल" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "विकास" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "समुदाय" @@ -983,7 +983,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -993,7 +993,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1045,340 +1045,340 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "सामग्री बनाना" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "सामग्री बनाना" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "सामग्री बनाना" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "सामग्री बनाना" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "सामग्री बनाना" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1388,20 +1388,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1738,7 +1738,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2683,7 +2683,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3040,7 +3040,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "संकेत" @@ -4029,7 +4029,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4324,11 +4324,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4426,7 +4426,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15421,7 +15421,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16777,7 +16777,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16787,24 +16787,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16812,17 +16816,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16831,27 +16835,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16859,135 +16904,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -16995,117 +17048,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17114,11 +17167,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17126,35 +17179,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "सामग्री बनाना" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17162,15 +17241,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17178,154 +17257,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17333,80 +17412,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21042,8 +21121,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -22879,7 +22958,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23811,7 +23890,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "" @@ -59452,153 +59531,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59606,13 +59705,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59622,30 +59721,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59653,57 +59752,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59712,28 +59813,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59744,197 +59845,251 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "सामग्री बनाना" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -59955,7 +60110,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -59965,45 +60120,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60014,13 +60169,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60028,18 +60183,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60048,107 +60203,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60156,31 +60311,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60191,11 +60346,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60204,7 +60359,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60215,7 +60370,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60224,13 +60379,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60239,7 +60394,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60247,11 +60402,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60260,49 +60415,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60312,7 +60467,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60321,7 +60476,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60329,20 +60484,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60352,28 +60507,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60381,32 +60536,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60414,41 +60569,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60456,13 +60611,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60470,14 +60625,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60485,17 +60640,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60503,26 +60658,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60530,18 +60685,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60549,22 +60704,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60572,7 +60727,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60580,18 +60735,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65213,12 +65368,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65226,14 +65380,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65242,20 +65396,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65263,18 +65417,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65282,164 +65436,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65447,23 +65600,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/hu.po b/weblate/hu.po index f05c647854..6185d9c418 100644 --- a/weblate/hu.po +++ b/weblate/hu.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-02 12:04+0000\n" "Last-Translator: gergely87 \n" "Language-Team: Hungarian `_oldalon!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Az oldalon a fő dokumentáció a következő szakaszokra van felosztva:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Általános" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Első lépések" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Oktatóanyagok" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Fejlesztői" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Közösség" @@ -1096,7 +1096,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1106,7 +1106,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1158,345 +1158,345 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr "Részecskék" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Bővítmények" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Bővítmények" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Bővítmények" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "Részecskék" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Első lépések" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr "Részecskék" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animáció" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr "Animáció" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Animáció" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr "Részecskék" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Animáció" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1506,20 +1506,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1856,7 +1856,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2801,7 +2801,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3158,7 +3158,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Jelzések" @@ -4149,7 +4149,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4444,11 +4444,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4546,7 +4546,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15548,7 +15548,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16912,7 +16912,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16922,24 +16922,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16947,17 +16951,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16966,27 +16970,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16994,135 +17039,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17130,117 +17183,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17249,11 +17302,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17261,35 +17314,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Animáció" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17297,15 +17376,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17313,154 +17392,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17468,80 +17547,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21181,8 +21260,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -23021,7 +23100,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23953,7 +24032,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Eszközök" @@ -59611,153 +59690,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59765,13 +59864,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59781,30 +59880,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59812,57 +59911,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59871,28 +59972,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59903,197 +60004,250 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +msgid "Saving the resource" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60114,7 +60268,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60124,48 +60278,48 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 #, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "Ezen dokumentáció mellett megtekinthető még különböző `Godot demo projects " "`_." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60176,13 +60330,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60190,18 +60344,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60210,107 +60364,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60318,31 +60472,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60353,11 +60507,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60366,7 +60520,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60377,7 +60531,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60386,13 +60540,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60401,7 +60555,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60409,11 +60563,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60422,49 +60576,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60474,7 +60628,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60483,7 +60637,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60491,20 +60645,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60514,28 +60668,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60543,32 +60697,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60576,41 +60730,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60618,13 +60772,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60632,14 +60786,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60647,17 +60801,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60665,26 +60819,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60692,18 +60846,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60711,22 +60865,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60734,7 +60888,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60742,18 +60896,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65380,12 +65534,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65393,14 +65546,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65409,20 +65562,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65430,18 +65583,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65449,164 +65602,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65614,23 +65766,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/id.po b/weblate/id.po index 772f59dd05..221a8af1d3 100644 --- a/weblate/id.po +++ b/weblate/id.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-22 21:07+0000\n" "Last-Translator: Sofyan Sugianto \n" "Language-Team: Indonesian `_, atau kanal ``#godotengine-doc`` di `irc." "freenode.net `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "Dokumentasi utama untuk situs ini dibagi menjadi bagian-bagian berikut:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Umum" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Memulai" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Tutorial" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Pengembangan" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Komunitas" @@ -1248,7 +1248,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1258,7 +1258,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1310,341 +1310,341 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Pengaya" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "Membuat Kontent" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Membuat Kontent" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animasi" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Animasi" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Membuat Kontent" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1654,20 +1654,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -2004,7 +2004,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2949,7 +2949,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3306,7 +3306,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Sinyal-sinyal" @@ -4295,7 +4295,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4590,11 +4590,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4692,7 +4692,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15686,7 +15686,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -17042,7 +17042,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -17052,24 +17052,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -17077,17 +17081,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -17096,27 +17100,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -17124,135 +17169,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17260,117 +17313,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17379,11 +17432,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17391,34 +17444,60 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17426,15 +17505,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "FPS" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17442,154 +17521,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17597,80 +17676,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21307,8 +21386,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -23146,7 +23225,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -24078,7 +24157,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Alat-alat" @@ -59716,153 +59795,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59870,13 +59969,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59886,30 +59985,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59917,57 +60016,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59976,28 +60077,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -60008,197 +60109,251 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Membuat Kontent" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60219,7 +60374,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60229,49 +60384,49 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 #, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "Sebagai tambahan untuk dokumentasi ini, Anda mungkin juga ingin melihat " "berbagai `proyek demo Godot `_." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60282,13 +60437,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60296,18 +60451,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60316,107 +60471,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60424,31 +60579,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60459,11 +60614,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60472,7 +60627,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60483,7 +60638,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60492,13 +60647,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60507,7 +60662,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60515,11 +60670,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60528,49 +60683,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60580,7 +60735,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60589,7 +60744,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60597,20 +60752,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60620,28 +60775,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60649,32 +60804,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60682,41 +60837,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60724,13 +60879,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60738,14 +60893,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60753,17 +60908,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60771,26 +60926,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60798,18 +60953,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60817,22 +60972,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60840,7 +60995,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60848,18 +61003,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65484,12 +65639,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65497,14 +65651,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65513,20 +65667,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65534,18 +65688,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65553,164 +65707,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "Target" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65718,23 +65871,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/it.po b/weblate/it.po index dcefeb099b..867c7df45b 100644 --- a/weblate/it.po +++ b/weblate/it.po @@ -43,7 +43,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-29 19:20+0000\n" "Last-Translator: Marco Galli \n" "Language-Team: Italian `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "La documentazione principale per il sito è organizzato nelle seguenti " "sezioni:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Informazioni Generali" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Per iniziare" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Tutorial" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Sviluppo" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Comunità" @@ -1332,7 +1332,7 @@ msgid "New tutorials since version 3.1" msgstr "Nuovi tutorial dalla versione 3.0" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Flusso di lavoro del progetto" @@ -1342,7 +1342,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" @@ -1394,391 +1394,391 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "Shading" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "La tua prima serie di Shader:" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 #, fuzzy msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`Cosa sono le classi Godot `" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 #, fuzzy msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr ":ref:`Shader CanvasItem `" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 #, fuzzy msgid ":ref:`doc_your_first_spatial_shader`" msgstr "Il tuo primo gioco" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr ":ref:`Exporting `" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Plugins" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "Il Multi-threading" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr ":ref:`Signals `" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "Creazione di contenuti" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr ":ref:`Shaders `" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "Ottimizzazione" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 #, fuzzy msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Signals `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 #, fuzzy msgid ":ref:`doc_using_servers`" msgstr ":ref:`Shaders `" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "Legale" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "Nuovi tutorial dalla versione 3.0" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "Passo passo" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 #, fuzzy msgid ":ref:`doc_signals`" msgstr ":ref:`Signals `" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 #, fuzzy msgid ":ref:`doc_exporting`" msgstr ":ref:`Exporting `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "Scripting" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 #, fuzzy msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`Tipizzazione forte di GDscript `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "Migliori prassi:" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 #, fuzzy msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref:`Introduzione `" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 #, fuzzy msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref:`Cosa sono le classi Godot `" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr ":ref:`Organizzazione della scena `" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 #, fuzzy msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref:`Scene contro script `" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 #, fuzzy msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" ":ref:`Autoloads versus nodi interni `" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 #, fuzzy msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`Alternative ai nodi `" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 #, fuzzy msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:` Interfacce di Godot `" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Notifiche di Godot `" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 #, fuzzy msgid ":ref:`doc_data_preferences`" msgstr ":ref:`Preferenze sui dati `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 #, fuzzy msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`Preferenze logiche `" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 #, fuzzy msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`Luci e ombre 2D `" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 #, fuzzy msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`Meshes 2D `" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 #, fuzzy msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 #, fuzzy msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" ":ref:`Animazione di migliaia di pesci con MultiMesh " "`" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 #, fuzzy msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:`Controllare migliaia di pesci con Particles " "`" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Fisica" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 #, fuzzy msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`Sistema di ragdoll `" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 #, fuzzy msgid ":ref:`doc_soft_body`" msgstr ":ref:`Softbody `" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Animazione" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 #, fuzzy msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`Scheletri 2D `" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr ":ref:`AnimationTree `" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "GUI" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr ":ref:` Interfacce di Godot `" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "Viewports" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 #, fuzzy msgid ":ref:`doc_viewport_as_texture`" msgstr "" ":ref:`Utilizzare una Viewport come una texture `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 #, fuzzy msgid ":ref:`doc_custom_postprocessing`" msgstr ":ref:`Post-process personalizzato `" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 #, fuzzy msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`Introduzione agli shaders: acqua 2D e 3D (7 video tutorial in inglese) " "`" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 #, fuzzy msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Migrare al linguaggio di shading di Godot " "`" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 #, fuzzy msgid ":ref:`doc_advanced_postprocessing`" msgstr ":ref:`Post-process avanzato `" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "Riferimenti allo Shading:" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 #, fuzzy msgid ":ref:`doc_shaders`" msgstr ":ref:`Shaders `" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 #, fuzzy msgid ":ref:`doc_shading_language`" msgstr ":ref:`Linguaggio di shading `" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 #, fuzzy msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`Shaders `" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 #, fuzzy msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`Shader CanvasItem `" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr ":ref:`Shaders `" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "VR" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Creare un nuovo progetto" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "Piattaforma specifica" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 #, fuzzy msgid ":ref:`doc_customizing_html5_shell`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 #, fuzzy msgid ":ref:`doc_making_trees`" msgstr ":ref:`AnimationTree `" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "Varie" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1788,20 +1788,20 @@ msgstr "" msgid "Compiling" msgstr "Compilazione" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "Sviluppo del motore" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -2219,7 +2219,7 @@ msgstr "" "suoni, altri nodi visualizzano modelli 3D, ecc. Ne esistono decine." #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -3496,9 +3496,10 @@ msgstr "" "dal nodo emittente al nodo selezionato." #: ../../docs/getting_started/step_by_step/scripting.rst:213 +#, fuzzy msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3985,7 +3986,7 @@ msgstr "Solo GDScript crea variabili globali per ogni script nominato." #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Segnali" @@ -5171,7 +5172,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -5466,11 +5467,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -5568,7 +5569,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -16580,7 +16581,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -17940,7 +17941,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -17950,24 +17951,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -17975,17 +17980,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -17994,27 +17999,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -18022,135 +18068,145 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "Locale" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +#, fuzzy +msgid "The scale of the root node." +msgstr "Il ruolo dello script" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -18158,117 +18214,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -18277,11 +18333,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -18289,35 +18345,62 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#, fuzzy +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr ":ref:`Linguaggio di shading `" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Creare contenuti" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -18325,15 +18408,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "FPS" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -18341,154 +18424,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -18496,80 +18579,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -22217,8 +22300,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -24056,7 +24139,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -24989,7 +25072,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Strumenti" @@ -60657,153 +60740,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -60811,13 +60914,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -60827,30 +60930,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -60858,57 +60961,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -60917,28 +61022,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -60949,197 +61054,252 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" -msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +#, fuzzy +msgid "General properties" +msgstr "Ha delle proprietá modificabili." -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Creare contenuti" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -61160,7 +61320,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -61170,49 +61330,49 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 #, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "In aggiunta a questa documentazione è possibile dare un'occhiata anche ai " "vari `Progetti dimostativi (Godot demo projects `_." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -61223,13 +61383,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -61237,18 +61397,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -61257,107 +61417,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -61365,31 +61525,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -61400,11 +61560,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -61413,7 +61573,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -61424,7 +61584,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -61433,13 +61593,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -61448,7 +61608,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -61456,11 +61616,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -61469,49 +61629,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -61521,7 +61681,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -61530,7 +61690,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -61538,20 +61698,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -61561,29 +61721,29 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 #, fuzzy msgid "Adding properties" msgstr "Ha delle proprietá modificabili." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -61591,32 +61751,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -61624,41 +61784,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -61666,13 +61826,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -61680,14 +61840,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -61695,17 +61855,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -61713,26 +61873,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -61740,18 +61900,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -61759,22 +61919,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -61782,7 +61942,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -61790,18 +61950,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -66433,12 +66593,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -66446,14 +66605,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -66462,20 +66621,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -66483,18 +66642,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -66502,164 +66661,164 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" -msgstr "" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +#, fuzzy +msgid "For the previous build attempt, the result would look like this::" +msgstr "Il tuo albero di scena dovrebbe essere simile a questo:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "Target" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -66667,23 +66826,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/ja.po b/weblate/ja.po index 032c7ec9c9..d0c6d65b2f 100644 --- a/weblate/ja.po +++ b/weblate/ja.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-29 19:20+0000\n" "Last-Translator: John Smith \n" "Language-Team: Japanese `_ の``#godotengine-doc``チャンネルで私たちと" "議論してください!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "このサイトの主なドキュメントは次のセクションから構成されています。" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "一般" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "入門" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "チュートリアル" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "開発" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "コミュニティ" @@ -1168,7 +1168,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "プロジェクトワークフロー" @@ -1178,7 +1178,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1231,349 +1231,349 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "ローカライズ" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr "パーティクル" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "プラグイン" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr ":ref:`doc_ways_to_contribute` をご覧下さい。" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "コンテンツの作成" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr "パーティクル" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "アニメーション" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "ステップ・バイ・ステップ" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 #, fuzzy msgid ":ref:`doc_signals`" msgstr ":ref:`c_sharp_signals` も参照して下さい" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "スクリプト" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 #, fuzzy msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`ビルトイン `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr "アニメーション" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "アニメーション" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr ":ref:`doc_ways_to_contribute` をご覧下さい。" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr ":ref:`doc_ways_to_contribute` をご覧下さい。" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr "パーティクル" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "アニメーション" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1583,20 +1583,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -2005,7 +2005,7 @@ msgstr "" "り、3Dモデルを表示するためのもの等、数十種類があります。" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -3059,7 +3059,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3450,7 +3450,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "シグナル" @@ -4442,7 +4442,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4737,11 +4737,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4840,7 +4840,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "テンプレートのエクスポート" @@ -17000,7 +17000,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "マテリアル" @@ -18458,8 +18458,9 @@ msgid "DAE (COLLADA), which is currently the most mature workflow." msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 +#, fuzzy msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" "GLTF 2.0。 テキスト形式とバイナリ形式の両方がサポートされています。 Godotはそ" @@ -18474,7 +18475,11 @@ msgstr "" "OBJ(Wavefront)フォーマット。これも完全にサポートされていますが、かなり制限さ" "れています(ピボット、スケルトンなどのサポートはありません)。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." @@ -18482,18 +18487,18 @@ msgstr "" "シーンファイルとテクスチャをプロジェクト・リポジトリにコピーするだけで、Godot" "は完全なインポートを行います。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "なぜFBXではないのですか?" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -18501,18 +18506,18 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" "計画は、将来的には、GDNativeを使用してバイナリプラグインを提供することです。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "Mayaおよび3DS MaxからのDAEファイルのエクスポート" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -18521,17 +18526,17 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "BlenderからDAEファイルをエクスポートする" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." @@ -18539,11 +18544,53 @@ msgstr "" "Godot は `Python Plugin ` を" "提供しています。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +#, fuzzy +msgid "Exporting glTF 2.0 files from Blender" +msgstr "BlenderからDAEファイルをエクスポートする" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -18551,17 +18598,17 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "ワークフローのインポート" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" @@ -18570,7 +18617,7 @@ msgstr "" "フローを使用できます。多くのオプションに応じて、次の方法でシーンを読み込む場" "合があります:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." @@ -18578,7 +18625,7 @@ msgstr "" "外部マテリアル (デフォルト): 各マテリアルがファイル リソースに保存される場" "所。それらに対する変更は保持されます。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." @@ -18586,7 +18633,7 @@ msgstr "" "外部メッシュ: 各メッシュが別のファイルに保存される場所。多くのユーザーは、直" "接メッシュを扱うことを好みます。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." @@ -18594,17 +18641,17 @@ msgstr "" "外部アニメーション: ソースが変更されたときに、保存したアニメーションを変更お" "よびマージできるようにします。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." @@ -18612,19 +18659,19 @@ msgstr "" "開発者によってニーズが異なるように、このインポートプロセスは高度にカスタマイ" "ズ可能です。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "インポーターには、以下で説明するいくつかのオプションがあります:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "ルートタイプ" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." @@ -18632,19 +18679,29 @@ msgstr "" "デフォルトでは、読み込まれたシーンのルート ノードのタイプは \"Spatial\" です" "が、これは変更できます。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "ルート名" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "生成されたルート ノードに特定の名前を設定できます。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "ルート名" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +#, fuzzy +msgid "The scale of the root node." +msgstr "常にルートノードをひとつ持つ。" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "カスタム・スクリプト" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " @@ -18653,25 +18710,25 @@ msgstr "" "インポート後にシーン全体を処理する特別なスクリプトを用意できます。これは、後" "処理、材料の変更、ジオメトリなどで面白いものを行うための素晴らしいです。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "ストレージ" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " @@ -18681,17 +18738,17 @@ msgstr "" "ると、ルートの下にあるノードがそれぞれ別々のシーンになり、インポートされた" "シーンにインスタンス化されることを指定できます。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "場所" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." @@ -18699,7 +18756,7 @@ msgstr "" "Godot は、メッシュまたはノード内のマテリアルをサポートします。デフォルトで" "は、マテリアルは各ノードに配置されます。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -18710,7 +18767,7 @@ msgstr "" "ファイルに保存されるため、編集が可能です。これは、ほとんどの3D DDC にはGodot" "のマテリアル・オプションと同じであるためです。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." @@ -18718,11 +18775,11 @@ msgstr "" "マテリアルが組み込まれていると、ソース シーンが変更され、再インポートされるた" "びにマテリアルが失われます。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " @@ -18732,15 +18789,15 @@ msgstr "" "たフィーチャーを保持し、ソース シーンから送信されたものを無視します。このオプ" "ションは、マテリアルがファイルとして保存されている場合にのみ存在します。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "メッシュ" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "圧縮" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." @@ -18748,11 +18805,11 @@ msgstr "" "メッシュは、スペースを節約するためにメッシュの複数の側面に対してあまり正確で" "ない数値を使用するようにします。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "これらは:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." @@ -18760,25 +18817,25 @@ msgstr "" "変換マトリックス(位置、回転、およびスケール):32ビット浮動小数点数を16ビット符" "号付き整数にします。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "頂点:32ビット浮動小数点数から16ビット符号付き整数にします。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "法線:32ビット浮動小数点数から32ビット符号なし整数にします。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "接線:32ビット浮動小数点数から32ビット符号なし整数にします。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." @@ -18786,49 +18843,49 @@ msgstr "" "頂点の色:32 ビット浮動小数点数から符号なしの整数に32 ビット浮動小数点数にしま" "す。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "UV:32ビット浮動小数点数から32ビット符号なし整数にします。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "UV2:32ビット浮動小数点数から32ビット符号なし整数にします。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "頂点ウェイト:32ビット浮動小数点数を16ビット符号なし整数にします。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" "アマチュア・ボーン: 32ビット浮動小数点数を16ビット符号なし整数にします。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "配列インデックス:要素数に応じた32ビットまたは16ビットの符号なし整数。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "追加情報:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" "UV2 = 詳細テクスチャとベイク処理されたライトマップテクスチャの2番目のUVチャネ" "ル。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." @@ -18836,7 +18893,7 @@ msgstr "" "配列インデックス = 上記の配列の各要素に番号を付す数値の配列。つまり、頂点と法" "線に番号を付けます。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -18845,11 +18902,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "接線を確認する" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -18857,7 +18914,7 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " @@ -18866,7 +18923,7 @@ msgstr "" "メッシュは、組み込みではなく別々のファイル (リソース) に格納できます。オブ" "ジェクトを直接ビルドする場合を除き、これはあまり実用的ではありません。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." @@ -18874,11 +18931,37 @@ msgstr "" "このオプションは、シーンの代わりに直接メッシュを操作することを好む人を支援す" "るために提供されています。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "外部ファイル" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." @@ -18886,12 +18969,12 @@ msgstr "" "生成されたメッシュとマテリアルは、必要に応じてシーンの名前を持つサブディレク" "トリに格納できます。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "アニメーション" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -18899,15 +18982,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "アニメーションのインポートはデフォルトで有効になっています。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "フレームレート" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -18915,11 +18998,11 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "フィルタ・スクリプト" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " @@ -18928,7 +19011,7 @@ msgstr "" "特殊な構文でフィルタスクリプトを指定して、どのトラックからアニメーションを保" "持するかを決定できます。(@TODOドキュメントが必要です)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " @@ -18938,70 +19021,70 @@ msgstr "" "に保存できます。これにより、アニメーションにカスタムトラックを追加し、再読み" "込み後も保持できます。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "オプティマイザー" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "クリップ" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "継承されたシーンでは、変更の唯一の制限は次のとおりです:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "ノードは削除できません(ただし、どこにでも追加できます)。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "サブリソースは編集できません(このために上記のように外部に保存します)。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "それ以外は、すべてが許可されています!" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" @@ -19009,15 +19092,15 @@ msgstr "" "多くの場合、シーンを編集する場合、エクスポート後に実行する必要がある一般的な" "タスクがあります:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "オブジェクトをナビゲーションメッシュとして設定する" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" @@ -19025,7 +19108,7 @@ msgstr "" "ゲーム エンジンで使用されていないノードの削除 (モデリングに使用される特定のラ" "イトなど)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " @@ -19035,21 +19118,21 @@ msgstr "" "ジェクトの名前に追加できるサフィックスがいくつかあります。インポートすると、" "Godotはそれらを検出し、自動的にアクションを実行します:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "ノードの削除 (-noimp)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "衝突の作成 (-col、-colonly、-convcolonly)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." @@ -19057,7 +19140,7 @@ msgstr "" "オプション \"-col\" はメッシュノードに対してのみ機能します。検出されると、" "メッシュと同じジオメトリを使用して、子静的衝突ノードが追加されます。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." @@ -19065,7 +19148,7 @@ msgstr "" "ただし、視覚的ジオメトリが複雑すぎたり、衝突に対してスムーズでなかったりし" "て、うまく機能しないことがよくあります。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " @@ -19075,13 +19158,13 @@ msgstr "" "`class_staticbody` の衝突を作成する \"-colonly\" 修飾子が存在します。これによ" "り、ビジュアルメッシュと実際の衝突を分離できます。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -19089,35 +19172,35 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." @@ -19125,46 +19208,46 @@ msgstr "" "このサフィックスを持つメッシュノードは、ナビゲーションメッシュに変換されま" "す。元のメッシュノードが削除されます。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "リジッドボディ(-rigid)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "このメッシュからリジッドボディを作成します。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -22938,8 +23021,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -24869,7 +24952,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -25987,7 +26070,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "もう一度実行しましょう!今度は、回転が正常に表示されます!" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "ツール" @@ -61683,153 +61766,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -61837,13 +61940,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -61853,30 +61956,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -61884,57 +61987,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -61943,28 +62048,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -61975,197 +62080,253 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" -msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +#, fuzzy +msgid "General properties" +msgstr "編集できるプロパティを持つ。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +#, fuzzy +msgid "Platform libraries" +msgstr "プラットフォーム名。" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "ファイルの提供" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -62186,7 +62347,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -62196,45 +62357,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -62245,13 +62406,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -62259,18 +62420,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -62279,107 +62440,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -62387,31 +62548,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -62422,11 +62583,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -62435,7 +62596,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -62446,7 +62607,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -62455,13 +62616,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -62470,7 +62631,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -62478,11 +62639,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -62491,49 +62652,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -62543,7 +62704,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -62552,7 +62713,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -62560,20 +62721,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -62583,28 +62744,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -62612,32 +62773,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -62645,41 +62806,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -62687,13 +62848,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -62701,14 +62862,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -62716,17 +62877,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -62734,26 +62895,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -62761,18 +62922,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -62780,22 +62941,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -62803,7 +62964,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -62811,18 +62972,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -67483,12 +67644,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -67496,14 +67656,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -67512,20 +67672,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -67533,18 +67693,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -67552,164 +67712,165 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" -msgstr "" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +#, fuzzy +msgid "For the previous build attempt, the result would look like this::" +msgstr "エクスポートが完了すると、出力フォルダは次のようになります:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." -msgstr "" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +#, fuzzy +msgid "A Windows binary with the same configuration will look like this::" +msgstr "最後に、シーンを実行すると、アニメーションは次のようになります:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -67717,23 +67878,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/jbo.po b/weblate/jbo.po index 9854f05958..e83bb9d850 100644 --- a/weblate/jbo.po +++ b/weblate/jbo.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2018-11-20 10:45+0000\n" "Last-Translator: Kyle Serdutz \n" "Language-Team: Lojban `_!" msgstr "" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "" @@ -964,7 +964,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -974,7 +974,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1021,335 +1021,335 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 msgid ":ref:`doc_android_plugin`" msgstr "" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 msgid ":ref:`doc_inspector_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 msgid ":ref:`doc_using_multiple_threads`" msgstr "" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1359,20 +1359,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1709,7 +1709,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2654,7 +2654,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3011,7 +3011,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "" @@ -4000,7 +4000,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4295,11 +4295,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4397,7 +4397,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15388,7 +15388,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16744,7 +16744,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16754,24 +16754,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16779,17 +16783,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16798,27 +16802,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16826,135 +16871,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -16962,117 +17015,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17081,11 +17134,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17093,34 +17146,60 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17128,15 +17207,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17144,154 +17223,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17299,80 +17378,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21006,8 +21085,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -22842,7 +22921,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23774,7 +23853,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "" @@ -59397,153 +59476,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59551,13 +59650,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59567,30 +59666,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59598,57 +59697,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59657,28 +59758,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59689,197 +59790,250 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +msgid "Saving the resource" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -59900,7 +60054,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -59910,45 +60064,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -59959,13 +60113,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -59973,18 +60127,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -59993,107 +60147,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60101,31 +60255,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60136,11 +60290,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60149,7 +60303,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60160,7 +60314,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60169,13 +60323,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60184,7 +60338,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60192,11 +60346,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60205,49 +60359,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60257,7 +60411,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60266,7 +60420,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60274,20 +60428,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60297,28 +60451,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60326,32 +60480,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60359,41 +60513,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60401,13 +60555,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60415,14 +60569,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60430,17 +60584,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60448,26 +60602,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60475,18 +60629,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60494,22 +60648,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60517,7 +60671,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60525,18 +60679,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65155,12 +65309,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65168,14 +65321,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65184,20 +65337,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65205,18 +65358,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65224,164 +65377,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65389,23 +65541,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/ko.po b/weblate/ko.po index 057565ece0..f48cc825bf 100644 --- a/weblate/ko.po +++ b/weblate/ko.po @@ -32,7 +32,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-22 21:07+0000\n" "Last-Translator: 송태섭 \n" "Language-Team: Korean `_\\ 의 ``#godotengine-doc``\\ 에서 " "저희와 함께 논의를 할 수 있습니다!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "이 사이트의 주요 문서는 다음과 같이 구성되어 있습니다:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "일반" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "시작하기" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "튜토리얼" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "개발" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "커뮤니티" @@ -1236,7 +1236,7 @@ msgid "New tutorials since version 3.1" msgstr "3.0 버전 이후의 새로운 튜토리얼" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "프로젝트 워크플로" @@ -1247,7 +1247,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr ":ref:`안드로이드로 커스텀 빌드 `" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" @@ -1300,398 +1300,398 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "현지화" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "셰이딩(Shading)" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "당신의 첫 셰이더 시리즈:" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 #, fuzzy msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`셰이더란 무엇일까? `" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 #, fuzzy msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr ":ref:`안드로이드로 커스텀 빌드 `" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 #, fuzzy msgid ":ref:`doc_your_first_spatial_shader`" msgstr ":ref:`당신의 첫 Spatial 셰이더 `" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 #, fuzzy msgid ":ref:`doc_your_second_spatial_shader`" msgstr ":ref:`당신의 첫 Spatial 셰이더: 파트 2 `" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr ":ref:`내보내기 `" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "플러그인" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr ":ref:`안드로이드 플러그인 만들기 `" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr ":ref:`Spatial 기즈모 플러그인 `" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "멀티 스레딩(Multi-threading)" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr ":ref:`MultiMesh 사용하기 `" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "콘텐츠 만들기" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr ":ref:`Particle 셰이더 `" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "최적화" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 #, fuzzy msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`MultiMesh 사용하기 `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 #, fuzzy msgid ":ref:`doc_using_servers`" msgstr ":ref:`서버 사용하기 `" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "법적" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 #, fuzzy msgid ":ref:`doc_complying_with_licenses`" msgstr ":ref:`라이선스 준수하기 `" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "3.0 버전 이후의 새로운 튜토리얼" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "단계별" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 #, fuzzy msgid ":ref:`doc_signals`" msgstr ":ref:`시그널 `" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 #, fuzzy msgid ":ref:`doc_exporting`" msgstr ":ref:`내보내기 `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "스크립팅(Scripting)" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 #, fuzzy msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`타입 GDscript `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "모범 사례:" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 #, fuzzy msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref:`소개 `" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 #, fuzzy msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref:`Godot 클래스란 무엇입니까 `" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr ":ref:`씬 조직 `" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 #, fuzzy msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref:`씬 vs 스크립트 `" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 #, fuzzy msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr ":ref:`오토로드 vs 내장 노드 `" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 #, fuzzy msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`노드 대안 `" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 #, fuzzy msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:`Godot 인터페이스 `" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Godot 알림 `" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 #, fuzzy msgid ":ref:`doc_data_preferences`" msgstr ":ref:`데이터 환경 설정 `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 #, fuzzy msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`논리 환경 설정 `" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 #, fuzzy msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`2D 빛과 그림자 `" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 #, fuzzy msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`2D meshes `" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 #, fuzzy msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 #, fuzzy msgid ":ref:`doc_animating_thousands_of_fish`" msgstr ":ref:`doc_matrices_and_transforms`" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 #, fuzzy msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:`Particle로 수천개의 물고기를 움직이게 하기 " "`" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "물리" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 #, fuzzy msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`래그돌 시스템 `" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 #, fuzzy msgid ":ref:`doc_soft_body`" msgstr ":ref:`소프트바디 `" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "애니메이션" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 #, fuzzy msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`2D 스켈레톤 `" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr ":ref:`애니메이션 트리(AnimationTree) `" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "GUI" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr ":ref:`컨테이너 `" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "뷰포트" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 #, fuzzy msgid ":ref:`doc_viewport_as_texture`" msgstr ":ref:`뷰포트를 텍스쳐로 사용하기 `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 #, fuzzy msgid ":ref:`doc_custom_postprocessing`" msgstr ":ref:`커스텀 포스트 프로세싱 `" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 #, fuzzy msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`셰이더 소개: 2D와 3D 물 (7개 비디오 튜토리얼) " "`" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 #, fuzzy msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Godot의 셰이딩 언어로 이동하기 " "`" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 #, fuzzy msgid ":ref:`doc_advanced_postprocessing`" msgstr ":ref:`고급 포스트 프로세싱 `" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "셰이딩 참조:" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 #, fuzzy msgid ":ref:`doc_shaders`" msgstr ":ref:`셰이더 `" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 #, fuzzy msgid ":ref:`doc_shading_language`" msgstr ":ref:`셰이딩 언어 `" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 #, fuzzy msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`Spatial 셰이더 `" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 #, fuzzy msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`CanvasItem 셰이더 `" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr ":ref:`Particle 셰이더 `" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "VR" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 #, fuzzy msgid ":ref:`doc_vr_starter_tutorial`" msgstr ":ref:`VR 초심자 튜토리얼 `" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr ":ref:`메인 화면 플러그인 만들기`" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 #, fuzzy msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr ":ref:`Spatial 기즈모 플러그인 `" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "플랫폼 특화" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 #, fuzzy msgid ":ref:`doc_customizing_html5_shell`" msgstr "" ":ref:`웹 내보내기 HTML 페이지를 커스터마이징하기 " "`" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 #, fuzzy msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`스레드 안전 API `" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 #, fuzzy msgid ":ref:`doc_making_trees`" msgstr ":ref:`나무 만들기 `" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "기타" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 #, fuzzy msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`불안정함과 끊김 현상 고치기 `" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 #, fuzzy msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`에디터에서 코드 실행하기 `" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 #, fuzzy msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`수동으로 씬 바꾸기 `" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 #, fuzzy msgid ":ref:`doc_gles2_gles3_differences`" msgstr ":ref:`GLES2와 GLES3 간의 차이 `" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1701,24 +1701,24 @@ msgstr ":ref:`GLES2와 GLES3 간의 차이 `" msgid "Compiling" msgstr "컴파일링(Compiling)" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 #, fuzzy msgid ":ref:`doc_optimizing_for_size`" msgstr ":ref:`크기에 맞게 빌드 최적화하기 `" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 #, fuzzy msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" ":ref:`스크립트 암호화 키로 컴파일하기 " "`" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "엔진 개발" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 #, fuzzy msgid ":ref:`doc_binding_to_external_libraries`" msgstr ":ref:`외부 라이브러리에 봉제하기 `" @@ -2121,7 +2121,7 @@ msgstr "" "하거나 혹은 3D 모델을 보여주는 것이 있습니다. 그것도 수십 개나 있습니다." #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -3327,9 +3327,10 @@ msgstr "" "자동으로 업데이트됩니다." #: ../../docs/getting_started/step_by_step/scripting.rst:213 +#, fuzzy msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3799,7 +3800,7 @@ msgstr "오직 GDScript만 각 이름이 있는 스크립트에 전역 변수를 #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "시그널" @@ -5106,8 +5107,9 @@ msgid ":ref:`Timer ` named ``MessageTimer``." msgstr "``MessageTimer`` 로 이름지은 :ref:`Timer `." #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 +#, fuzzy msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -5481,12 +5483,13 @@ msgstr "" "\"Shortcut\" 속성을 사용하는 것이 있습니다." #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 +#, fuzzy msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" "``HUD`` 씬에서, ``StartButton``\\ 을 선택하고 인스펙터에서 _Shortcut_ 속성을 " @@ -5617,7 +5620,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "템플릿 내보내기" @@ -19493,7 +19496,7 @@ msgstr "" "트 예제는 Godot-Blender-exporter 저장소에 있습니다." #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "머티리얼(Materials)" @@ -21136,8 +21139,9 @@ msgid "DAE (COLLADA), which is currently the most mature workflow." msgstr "DAE (COLLADA), 현재 가장 성숙한 워크플로입니다." #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 +#, fuzzy msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" "GLTF 2.0. 텍스트와 이진 형식 모두 지원됩니다. Godot는 이를 완벽하게 지원하지" @@ -21151,7 +21155,11 @@ msgstr "" "OBJ (Wavefront) 형식. 또한 완벽하게 지원하지만, 꽤 제한적입니다 (피봇, 스켈레" "톤 등을 지원하지 않음)." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." @@ -21159,7 +21167,7 @@ msgstr "" "그냥 텍스처와 함께 씬 파일을 프로젝트 저장소에 복사하면 됩니다, 그리고 Godot" "는 완전히 가져올 것입니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " @@ -21169,11 +21177,11 @@ msgstr "" "는 3D 편집기에서 메시를 내보낼 때, 스켈레톤이 기존의 T 포즈나 기본 휴식 포즈" "로 되어있는지 확인하세요." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "FBX는 왜 안 되죠?" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -21184,7 +21192,7 @@ msgstr "" "계에서 가장 표준화된 형식이죠. 하지만 이 형식은 Autodesk에서 닫힌 라이브러리" "를 사용해야 하는데, Godot보다 더 제한적인 라이선스 제약에서 배포됩니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." @@ -21192,11 +21200,11 @@ msgstr "" "언젠가 미래에 세운 계획은, GDNative를 사용해 이진 플러그인을 제공하는 것입니" "다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "Maya와 3DS Max에서 DAE 파일을 가져오기" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -21210,18 +21218,18 @@ msgstr "" "Tools>`__ 플러그인을 사용하는 것입니다. 항상 소프트웨어의 최신 버전으로 업데" "이트 되진 않지만 잘 작동합니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "블렌더에서 DAE 파일 가져오기" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" "블렌더도 내장 COLLADA 지원을 갖고 있지만, 역시 고장나고 사용해서는 안됩니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." @@ -21229,11 +21237,53 @@ msgstr "" "Godot는 `파이썬 플러그인 `__" "\\ 을 지원하며 씬을 가져오는 작업이 훨씬 더 좋을 것입니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +#, fuzzy +msgid "Exporting glTF 2.0 files from Blender" +msgstr "블렌더에서 DAE 파일 가져오기" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "블렌더에서 ESCN 파일 가져오기" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -21245,7 +21295,7 @@ msgstr "" "일 (Godot 씬 파일)의 다른 이름의 일종입니다; 가능한 한 많은 정보를 블렌더 씬" "에서 유지해줍니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." @@ -21253,11 +21303,11 @@ msgstr "" "ESCN 내보내기는 기능과 사용법을 설명하는 세부적인 `문서 `__\\ 를 갖고 있습니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "가져오기 워크플로" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" @@ -21265,7 +21315,7 @@ msgstr "" "Godot 씬 가져오기 어떻게 데이터를 가져오는 지에 따라 다른 워크플로가 있습니" "다. 많은 설정에 따라, 다음으로 씬을 가져올 수 있습니다:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." @@ -21273,7 +21323,7 @@ msgstr "" "외부 머티리얼 (기본 값): 각 머티리얼은 파일 리소스에 저장됩니다. 모디파이어" "는 유지됩니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." @@ -21281,7 +21331,7 @@ msgstr "" "외부 메시: 각 메시는 다른 파일로 저장됩니다. 많은 사용자는 메시를 직접 처리하" "는 것을 선호합니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." @@ -21289,17 +21339,17 @@ msgstr "" "외부 애니메이션: 원본이 변경될 때 저장된 애니메이션을 수정하고 병합할 수 있도" "록 합니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "외부 씬: 가져온 씬의 각 루트 노드를 별도의 씬으로 저장합니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "단일 씬: 모든 것이 내장된 하나의 씬 파일입니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." @@ -21307,19 +21357,19 @@ msgstr "" "다른 개발자가 다른 요구가 있듯이, 이 가져오기 처리는 많이 커스터마이징 할 수 " "있습니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "설정 가져오기" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "가져오기는 여러 설정이 있고, 밑에서 설명합니다:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "Root Type(루트 타입)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." @@ -21327,19 +21377,29 @@ msgstr "" "기본적으로, 가져온 씬의 루트 노드 타입은 \"Spatial\"이지만, 수정될 수 있습니" "다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "Root Name(루트 이름)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "생성된 루트 노드에 특정 이름을 설정할 수 있습니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "Root Name(루트 이름)" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +#, fuzzy +msgid "The scale of the root node." +msgstr "스크립트의 역할" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "Custom Script(커스텀 스크립트)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " @@ -21348,11 +21408,11 @@ msgstr "" "특수 스크립트로 가져오기 후 전체 씬을 처리하기 위해 제공할 수 있습니다. 후처" "리, 머티리얼 변경, 아니면 기하학으로 하는 재미있는 짓 등에 좋습니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "다음과 같은 스크립트를 만드세요:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " @@ -21362,14 +21422,14 @@ msgstr "" "트 노드입니다). 마지막으로 사용되는 씬은 반환되어야 합니다. 다른 것이 될 수 " "있습니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "Storage(저장소)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " @@ -21378,17 +21438,17 @@ msgstr "" "기본적으로, Godot은 하나의 씬을 가져옵니다. 이 설정으로 루트 아래의 노드들을 " "각자의 씬으로 만들고 가져온 것을 인스턴스 하도록 지정할 수 있습니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "물론 다른 곳에서 가져온 씬을 인스턴스 하는 것도 수동으로는 작동합니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "Location(위치)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." @@ -21396,7 +21456,7 @@ msgstr "" "Godot는 메시나 노드에서 머티리얼을 지원합니다. 기본적으로, 머티리얼은 각 노드" "에 들어갑니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -21407,7 +21467,7 @@ msgstr "" "저장되므로 편집하는 것이 가능합니다. 대부분의 3D DCC가 Godot와 같은 머티리얼 " "설정을 갖고 있지 않기 때문입니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." @@ -21415,11 +21475,11 @@ msgstr "" "머티리얼이 내장된 상태일 때, 원본 씬을 수정하고 다시 가져올 때마다 사라질 것" "입니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "Keep On Reimport(다시 가져오기 유지)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " @@ -21429,26 +21489,26 @@ msgstr "" "유지하고 원본 씬에서 오는 것은 무시합니다. 이 설정은 머티리얼이 파일로 저장" "된 경우에만 존재합니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "Meshes(메시)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "Compress(압축)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" "공간을 절약하기 위해 메시의 여러 측면에 덜 정확한 수치를 사용하도록 합니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "이렇게 됩니다:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." @@ -21456,7 +21516,7 @@ msgstr "" "Transform Matrix (Location, rotation, and scale) : 32비트 실수에" "서 16비트 부호 있는 정수로." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." @@ -21464,7 +21524,7 @@ msgstr "" "Vertices : 32비트 실수에" "서 16비트 부호 있는 정수로." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." @@ -21472,7 +21532,7 @@ msgstr "" "Normals : 32비트 실수에" "서 32비트 부호 있는 정수로." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." @@ -21480,7 +21540,7 @@ msgstr "" "Tangents : 32비트 실수에" "서 32비트 부호 있는 정수로." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." @@ -21488,7 +21548,7 @@ msgstr "" "Vertex Colors : 32비트 실수에" "서 32비트 부호 있는 정수로." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." @@ -21496,7 +21556,7 @@ msgstr "" "UV : 32비트 실수에" "서 32비트 부호 있는 정수로." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." @@ -21504,7 +21564,7 @@ msgstr "" "UV2 : 32비트 실수에" "서 32비트 부호 있는 정수로." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." @@ -21512,7 +21572,7 @@ msgstr "" "Vertex weights : 32비트 실수에" "서 16비트 부호 있는 정수로." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." @@ -21520,7 +21580,7 @@ msgstr "" "Armature bones : 32비트 실수에" "서 16비트 부호 있는 정수로." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." @@ -21528,16 +21588,16 @@ msgstr "" "Array index : 얼마나 많은 원" "소가 있는 지에 따라 32비트나 16비트 부호 있는 정수로." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "추가 정보:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "UV2 = 세부적인 텍스처와 베이크된 텍스처를 위한 두 번째 UV 채널." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." @@ -21545,7 +21605,7 @@ msgstr "" "Array index = 위 배열의 각 요소에 순서를 매기는 배열; 즉, 꼭짓점과 노말에 순" "서를 매깁니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -21558,11 +21618,11 @@ msgstr "" "의 가져오기를 압축하는 것으로 기하학이나 꼭짓점이 있어야 할 자리에 없을 수도 " "있습니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "Ensure Tangents(탄젠트 보장)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -21573,7 +21633,7 @@ msgstr "" "으로 원본 씬에서 탄젠트 배열이 없다면 생성하게 해줍니다. Godot는 Mikktspace" "를 사용하지만, 가져오기에서 생성하는 것이 항상 더 좋습니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " @@ -21582,7 +21642,7 @@ msgstr "" "메시는 내장 대신 별개의 파일 (리소스)로 저장될 수 있습니다. 직접 객체를 짓는 " "것이 아니라면 이것은 꽤 실용적인 사용을 갖지는 않습니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." @@ -21590,11 +21650,38 @@ msgstr "" "이 설정은 씬 대신 메시로 직접 작업하기를 선호하는 사람들을 돕기 위해 제공됩니" "다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#, fuzzy +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "더 자세한 내용은, :ref:`doc_c_sharp_differences` 페이지를 참고하세요." + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "External Files(외부 파일)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." @@ -21602,11 +21689,11 @@ msgstr "" "생성된 메시와 머티리얼은 하위 디렉토리에 씬의 이름을 가지면서 선택적으로 저장" "될 수 있습니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "애니메이션 설정" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -21618,15 +21705,15 @@ msgstr "" "다. 3DS Max나 Maya와 같은 것은 같은 타임라인에 많은 애니메이션을 넣어야 하거" "나, 최악의 경우, 애니메이션을 별도의 파일에 넣어야 합니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "애니메이션 가져오기는 기본적으로 활성화되어 있습니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "초당 프레임" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -21637,11 +21724,11 @@ msgstr "" "합니다. 애니메이션을 가능한 한 충실하게 가져오기 위해선, 편집에 사용된 초 당 " "프레임을 지정하세요. 이를 잘못하면 부들거리는 애니메이션을 만들게 됩니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "Filter Script(필터 스크립트)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " @@ -21650,7 +21737,7 @@ msgstr "" "어떤 애니메이션에서 트랙을 유지할 지 결정하기 위한 특수 문법에 filter script" "를 지정할 수 있습니다. (@TODO 이것은 문서가 필요합니다)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " @@ -21660,11 +21747,11 @@ msgstr "" "할 수 있습니다. 이렇게 하면 커스텀 트랙을 애니메이션에 추가하고 다시 가져온 " "후에도 이를 유지할 수 있습니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "Optimizer(최적화 도구)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " @@ -21674,11 +21761,11 @@ msgstr "" "당히 줄어듭니다. 일반적으로, 애니메이션이 활성화되어 있기 때문에 애니메이션" "이 손상되었다고 의심되는 상황이 아니라면 항상 켜져 있어야 합니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "Clips(클립)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " @@ -21688,22 +21775,23 @@ msgstr "" "떤 프레임에서 각 클립을 가져와야 하는 프레임으로 지정하세요 (그리고 물론, 위" "의 FPS 설정을 지정하는 것도 잊지 마세요)." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "씬 상속" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 +#, fuzzy msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" "많은 상황에서, 가져온 씬을 수정하고 싶을 것입니다. 기본적으로 원본 애셋이 바" "뀌기 때문에 그렇게 할 수는 없고 (3D 모델링 앱에서 다시 가져온 원본 .dae, ." "gltf, .obj 파일), Godot는 전체 씬을 다시 가져올 것입니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " @@ -21712,15 +21800,15 @@ msgstr "" "하지만, *씬 상속*\\ 을 사용하면 지역 수정을 만드는 것이 가능합니다. 가져온 씬" "을 열면 다음 대화 상자가 나타납니다:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "상속된 씬에서, 수정에 대한 유일한 제한은 다음과 같습니다:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "노드는 삭제될 수 없습니다 (하지만 어디에나 추가될 수 있습니다)." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" @@ -21728,36 +21816,36 @@ msgstr "" "하위 리소스를 편집할 수 없습니다 (이를 위해선 위에서 설명했듯 외부로 저장해" "야 합니다)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "그 외에는 모든 것이 허용됩니다!" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "가져오기 힌트" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "여러번 씬을 편집할 때, 내보낸 후 해야 하는 일반적인 작업이 있습니다:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "객체에 충돌 감지를 추가하기" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "객체를 내비게이션 메시로 설정하기" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" "(모델링에 사용되는 특정 빛과 같이) 게임 엔진에 사용되는 않는 노드 지우기" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " @@ -21767,11 +21855,11 @@ msgstr "" "에 붙일 수 있는 일부 접미사를 제공합니다. 가져올 때, Godot는 이를 감지하고 자" "동으로 동작을 수행합니다:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "노드 삭제 (-noimp)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." @@ -21779,11 +21867,11 @@ msgstr "" "이 접미사를 갖고 있는 이름의 노드는 가져오는 순간 삭제될 것이며, 이는 타입과 " "관계없습니다. 가져온 씬에서는 나타나지 않습니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "충돌 생성 (-col, -colonly, -convcolonly)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." @@ -21791,7 +21879,7 @@ msgstr "" "\"-col\" 설정은 오직 Mesh 노드에만 작동할 것입니다. 이것이 감지되면, 메시와 " "같은 기하학을 사용하여 자식 정적 충돌 노드가 추가될 것입니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." @@ -21799,7 +21887,7 @@ msgstr "" "하지만, 시각적인 기하학이 너무 복잡하거나 충돌에 너무 부드럽지 않은 경우, 잘 " "작업되지 않을 수 있습니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " @@ -21809,7 +21897,7 @@ msgstr "" "거되고 :ref:`class_staticbody` 충돌이 대신 생성됩니다. 이렇게 하면 시각적 메" "시와 실제 충돌을 분리할 수 있습니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." @@ -21817,7 +21905,7 @@ msgstr "" "\"-convcolonly\" 설정은 :ref:`class_concavepolygonshape` 대신 :ref:" "`class_convexpolygonshape`\\ 를 만들 것입니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -21829,26 +21917,26 @@ msgstr "" "노드는 미리 정의된 모양 중 하나를 가지며, 블렌더의 Empty 형태 타입에 따라 다" "릅니다:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "Single arrow는 :ref:`class_rayshape`\\ 를 만들 것입니다" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "Cube는 :ref:`class_boxshape`\\ 를 만들 것입니다" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "Image는 :ref:`class_planeshape`\\ 를 만들 것입니다" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" "Sphere (그리고 나열되지 않은 나머지)는 :ref:`class_sphereshape`\\ 를 만들 것" "입니다" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " @@ -21858,11 +21946,11 @@ msgstr "" "User Preferences / Themes / 3D View / Empty에서 뚜렷한 색상을 설정할 수 있습" "니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "내비게이션 생성 (-navmesh)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." @@ -21870,11 +21958,11 @@ msgstr "" "이 접미사를 가진 메시 노드는 내비게이션 메시로 변환될 것입니다. 기존 메시 노" "드는 삭제될 것입니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "VehicleBody 만들기 (-vehicle)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." @@ -21882,11 +21970,11 @@ msgstr "" "이 접미사를 가진 메시 노드는 :ref:`VehicleBody ` 노드의 자" "식으로 가져오게 됩니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "VehicleWheel 만들기 (-wheel)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." @@ -21894,19 +21982,19 @@ msgstr "" "이 접미사를 가진 메시 노드는 :ref:`VehicleWheel ` 노드의 " "자식으로 가져오게 됩니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "리지드 바디 (-rigid)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "이 메시에서 리지드 바디를 만듭니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "애니메이션 루프 (-loop, -cycle)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " @@ -21916,7 +22004,7 @@ msgstr "" "은 루프 플래그가 설정된 Godot 애니메이션을 가져올 것입니다. 대소문자를 구분하" "고 하이픈(-)이 필요하지 않습니다." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -26285,8 +26373,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -28303,7 +28391,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -29509,7 +29597,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "도구" @@ -66335,153 +66423,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -66489,13 +66597,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -66505,30 +66613,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -66536,57 +66644,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -66595,28 +66705,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -66627,197 +66737,253 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" -msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +#, fuzzy +msgid "General properties" +msgstr "노드 속성" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +#, fuzzy +msgid "Platform libraries" +msgstr "플랫폼 이름." + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "리소스 해제(Free)하기" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -66838,7 +67004,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -66848,46 +67014,47 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "프로젝트 설정하기" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "`godot-cpp 저장소 `_ 의 사본." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -66898,13 +67065,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -66912,18 +67079,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -66932,107 +67099,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "간단한 플러그인 만들기" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -67040,31 +67207,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -67075,11 +67242,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -67088,7 +67255,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -67099,7 +67266,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -67108,13 +67275,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -67123,7 +67290,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -67131,11 +67298,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -67144,49 +67311,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -67196,7 +67363,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -67205,7 +67372,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -67213,20 +67380,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -67236,29 +67403,29 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 #, fuzzy msgid "Adding properties" msgstr "노드 속성" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -67266,32 +67433,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -67299,41 +67466,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -67341,13 +67508,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -67355,14 +67522,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -67370,17 +67537,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -67388,26 +67555,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -67415,18 +67582,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -67434,22 +67601,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -67457,7 +67624,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -67465,18 +67632,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -72159,12 +72326,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -72172,14 +72338,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -72188,20 +72354,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -72209,18 +72375,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -72228,164 +72394,166 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" -msgstr "" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +#, fuzzy +msgid "For the previous build attempt, the result would look like this::" +msgstr "지금까지, update\\_health 메서드는 이렇게 보입니다:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +#, fuzzy +msgid "A Windows binary with the same configuration will look like this::" msgstr "" +"그리고 마침내, 씬을 실행시키면, 애니메이션은 이렇게 보여야 할 것입니다:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "대상" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -72393,23 +72561,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/lt.po b/weblate/lt.po index 41bf977b6f..c78e9142df 100644 --- a/weblate/lt.po +++ b/weblate/lt.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2018-06-12 09:40+0000\n" "Last-Translator: Kornelijus \n" "Language-Team: Lithuanian `_!" msgstr "" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Pamokos" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Bendruomenė" @@ -972,7 +972,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -982,7 +982,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1029,335 +1029,335 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 msgid ":ref:`doc_android_plugin`" msgstr "" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 msgid ":ref:`doc_inspector_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 msgid ":ref:`doc_using_multiple_threads`" msgstr "" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1367,20 +1367,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1717,7 +1717,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2662,7 +2662,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3019,7 +3019,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Signalai" @@ -4008,7 +4008,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4303,11 +4303,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4405,7 +4405,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15399,7 +15399,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16755,7 +16755,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16765,24 +16765,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16790,17 +16794,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16809,27 +16813,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16837,135 +16882,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -16973,117 +17026,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17092,11 +17145,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17104,34 +17157,60 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17139,15 +17218,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17155,154 +17234,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17310,80 +17389,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21018,8 +21097,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -22854,7 +22933,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23786,7 +23865,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "" @@ -59410,153 +59489,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59564,13 +59663,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59580,30 +59679,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59611,57 +59710,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59670,28 +59771,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59702,197 +59803,250 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +msgid "Saving the resource" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -59913,7 +60067,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -59923,45 +60077,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -59972,13 +60126,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -59986,18 +60140,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60006,107 +60160,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60114,31 +60268,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60149,11 +60303,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60162,7 +60316,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60173,7 +60327,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60182,13 +60336,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60197,7 +60351,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60205,11 +60359,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60218,49 +60372,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60270,7 +60424,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60279,7 +60433,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60287,20 +60441,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60310,28 +60464,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60339,32 +60493,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60372,41 +60526,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60414,13 +60568,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60428,14 +60582,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60443,17 +60597,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60461,26 +60615,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60488,18 +60642,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60507,22 +60661,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60530,7 +60684,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60538,18 +60692,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65168,12 +65322,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65181,14 +65334,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65197,20 +65350,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65218,18 +65371,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65237,164 +65390,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65402,23 +65554,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/mi.po b/weblate/mi.po index 1900781602..ea9536987b 100644 --- a/weblate/mi.po +++ b/weblate/mi.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: Maori `_!" msgstr "" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "" @@ -951,7 +951,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -961,7 +961,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1008,335 +1008,335 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 msgid ":ref:`doc_android_plugin`" msgstr "" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 msgid ":ref:`doc_inspector_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 msgid ":ref:`doc_using_multiple_threads`" msgstr "" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1346,20 +1346,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1696,7 +1696,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2641,7 +2641,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -2998,7 +2998,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "" @@ -3987,7 +3987,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4282,11 +4282,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4384,7 +4384,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15375,7 +15375,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16731,7 +16731,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16741,24 +16741,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16766,17 +16770,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16785,27 +16789,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16813,135 +16858,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -16949,117 +17002,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17068,11 +17121,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17080,34 +17133,60 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17115,15 +17194,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17131,154 +17210,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17286,80 +17365,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -20993,8 +21072,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -22829,7 +22908,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23761,7 +23840,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "" @@ -59384,153 +59463,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59538,13 +59637,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59554,30 +59653,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59585,57 +59684,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59644,28 +59745,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59676,197 +59777,250 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +msgid "Saving the resource" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -59887,7 +60041,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -59897,45 +60051,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -59946,13 +60100,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -59960,18 +60114,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -59980,107 +60134,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60088,31 +60242,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60123,11 +60277,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60136,7 +60290,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60147,7 +60301,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60156,13 +60310,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60171,7 +60325,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60179,11 +60333,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60192,49 +60346,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60244,7 +60398,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60253,7 +60407,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60261,20 +60415,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60284,28 +60438,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60313,32 +60467,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60346,41 +60500,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60388,13 +60542,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60402,14 +60556,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60417,17 +60571,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60435,26 +60589,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60462,18 +60616,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60481,22 +60635,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60504,7 +60658,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60512,18 +60666,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65142,12 +65296,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65155,14 +65308,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65171,20 +65324,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65192,18 +65345,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65211,164 +65364,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65376,23 +65528,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/ms.po b/weblate/ms.po index 4fbaa69630..1e30a842b5 100644 --- a/weblate/ms.po +++ b/weblate/ms.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-03-10 09:56+0000\n" "Last-Translator: Razman Ramly \n" "Language-Team: Malay `_, atau di saluran ``#godotengine-doc`` pada " "`irc.freenode.net `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "Dokumentasi utama untuk laman sesawang ini telah diaturkan ke bahagian-" "bahagian yang berikut:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Am" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Bermula" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Tutorial" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Pembangunan" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Komuniti" @@ -1009,7 +1009,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1019,7 +1019,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1071,343 +1071,343 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr "Perbezaan" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Mencipta skrin menu utama" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Mencipta skrin menu utama" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "Mencipta skrin menu utama" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Mencipta Kandungan" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 #, fuzzy msgid ":ref:`doc_data_preferences`" msgstr "Perbezaan" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 #, fuzzy msgid ":ref:`doc_logic_preferences`" msgstr "Perbezaan" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Mencipta skrin menu utama" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1417,20 +1417,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1767,7 +1767,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2712,7 +2712,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3069,7 +3069,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "" @@ -4059,7 +4059,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4354,11 +4354,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4457,7 +4457,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15461,7 +15461,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16818,7 +16818,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16828,24 +16828,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16853,17 +16857,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16872,27 +16876,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16900,135 +16945,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17036,117 +17089,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17155,11 +17208,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17167,35 +17220,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Mencipta Kandungan" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17203,15 +17282,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17219,154 +17298,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17374,80 +17453,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21084,8 +21163,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -22923,7 +23002,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23856,7 +23935,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "" @@ -59497,153 +59576,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59651,13 +59750,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59667,30 +59766,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59698,57 +59797,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59757,28 +59858,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59789,197 +59890,252 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" -msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +#, fuzzy +msgid "General properties" +msgstr "Perbezaan" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Mencipta Kandungan" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60000,7 +60156,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60010,45 +60166,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60059,13 +60215,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60073,18 +60229,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60093,107 +60249,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60201,31 +60357,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60236,11 +60392,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60249,7 +60405,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60260,7 +60416,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60269,13 +60425,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60284,7 +60440,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60292,11 +60448,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60305,49 +60461,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60357,7 +60513,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60366,7 +60522,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60374,20 +60530,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60397,28 +60553,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60426,32 +60582,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60459,41 +60615,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60501,13 +60657,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60515,14 +60671,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60530,17 +60686,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60548,26 +60704,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60575,18 +60731,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60594,22 +60750,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60617,7 +60773,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60625,18 +60781,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65260,12 +65416,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65273,14 +65428,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65289,20 +65444,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65310,18 +65465,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65329,164 +65484,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65494,23 +65648,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/nb.po b/weblate/nb.po index 79a0a43cf5..2a453bc8d5 100644 --- a/weblate/nb.po +++ b/weblate/nb.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-02 12:06+0000\n" "Last-Translator: Petter Reinholdtsen \n" "Language-Team: Norwegian Bokmål `_, eller på ``#godotengine-doc`` kanalen på `irc." "freenode.net `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Hoveddokumentasjonen på denne siden er organisert i disse seksjonene:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Generelt" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Kom i gang" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Brukerveiledninger (Tutorials)" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Utvikling" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Fellesskap" @@ -1021,7 +1021,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1031,7 +1031,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1078,335 +1078,335 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 msgid ":ref:`doc_android_plugin`" msgstr "" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 msgid ":ref:`doc_inspector_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 msgid ":ref:`doc_using_multiple_threads`" msgstr "" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1416,20 +1416,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1766,7 +1766,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2711,7 +2711,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3068,7 +3068,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Signaler" @@ -4057,7 +4057,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4352,11 +4352,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4454,7 +4454,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15448,7 +15448,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16804,7 +16804,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16814,24 +16814,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16839,17 +16843,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16858,27 +16862,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16886,135 +16931,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17022,117 +17075,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17141,11 +17194,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17153,34 +17206,60 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17188,15 +17267,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "FPS" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17204,154 +17283,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17359,80 +17438,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21067,8 +21146,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -22904,7 +22983,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23836,7 +23915,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "" @@ -59461,153 +59540,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59615,13 +59714,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59631,30 +59730,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59662,57 +59761,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59721,28 +59822,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59753,197 +59854,250 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +msgid "Saving the resource" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -59964,7 +60118,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -59974,45 +60128,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60023,13 +60177,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60037,18 +60191,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60057,107 +60211,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60165,31 +60319,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60200,11 +60354,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60213,7 +60367,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60224,7 +60378,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60233,13 +60387,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60248,7 +60402,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60256,11 +60410,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60269,49 +60423,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60321,7 +60475,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60330,7 +60484,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60338,20 +60492,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60361,28 +60515,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60390,32 +60544,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60423,41 +60577,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60465,13 +60619,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60479,14 +60633,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60494,17 +60648,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60512,26 +60666,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60539,18 +60693,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60558,22 +60712,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60581,7 +60735,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60589,18 +60743,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65221,12 +65375,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65234,14 +65387,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65250,20 +65403,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65271,18 +65424,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65290,164 +65443,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65455,23 +65607,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/nl.po b/weblate/nl.po index 8b2995f7bc..1a589b90c9 100644 --- a/weblate/nl.po +++ b/weblate/nl.po @@ -23,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-04-29 11:45+0000\n" "Last-Translator: Xoronic \n" "Language-Team: Dutch `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "De belangrijkste documentatie op de website is opgedeeld in de volgende " "onderdelen:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Algemeen" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Aan de slag" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Handleidingen" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Ontwikkeling" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Gemeenschap" @@ -1141,7 +1141,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1151,7 +1151,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1204,341 +1204,341 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "Lokalisatie" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Plugins" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "Aan de slag" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Content Maken" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animatie" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Animatie" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Aan de slag" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1548,20 +1548,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1920,7 +1920,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2866,7 +2866,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3223,7 +3223,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Signalen" @@ -4213,7 +4213,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4508,11 +4508,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4610,7 +4610,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15602,7 +15602,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16958,7 +16958,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16968,24 +16968,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16993,17 +16997,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -17012,27 +17016,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -17040,135 +17085,144 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "Locale" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17176,117 +17230,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17295,11 +17349,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17307,34 +17361,60 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17342,15 +17422,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17358,154 +17438,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17513,80 +17593,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21224,8 +21304,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -23061,7 +23141,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23993,7 +24073,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Gereedschappen" @@ -59629,153 +59709,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59783,13 +59883,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59799,30 +59899,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59830,57 +59930,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59889,28 +59991,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59921,197 +60023,250 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +msgid "Saving the resource" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60132,7 +60287,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60142,45 +60297,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60191,13 +60346,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60205,18 +60360,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60225,107 +60380,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60333,31 +60488,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60368,11 +60523,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60381,7 +60536,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60392,7 +60547,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60401,13 +60556,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60416,7 +60571,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60424,11 +60579,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60437,49 +60592,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60489,7 +60644,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60498,7 +60653,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60506,20 +60661,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60529,28 +60684,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60558,32 +60713,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60591,41 +60746,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60633,13 +60788,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60647,14 +60802,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60662,17 +60817,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60680,26 +60835,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60707,18 +60862,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60726,22 +60881,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60749,7 +60904,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60757,18 +60912,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65394,12 +65549,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65407,14 +65561,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65423,20 +65577,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65444,18 +65598,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65463,164 +65617,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65628,23 +65781,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/pl.po b/weblate/pl.po index ce6618ee9a..29550e0951 100644 --- a/weblate/pl.po +++ b/weblate/pl.po @@ -37,7 +37,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-25 07:19+0000\n" "Last-Translator: Tomek \n" "Language-Team: Polish `_, lub ``#godotengine-doc`` na `irc.freenode.net `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Główna dokumentacja dla tej strony dzieli się na następujące sekcje:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Ogólne" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Podstawy" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Samouczki" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Rozwój" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Społeczność" @@ -1312,7 +1312,7 @@ msgid "New tutorials since version 3.1" msgstr "Nowe poradniki wprowadzone po wersji 3.0" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Workflow projektu" @@ -1322,7 +1322,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" @@ -1375,404 +1375,404 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "Lokalizacja" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "Shadery" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "Seria \"Twój pierwszy shader\":" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 #, fuzzy msgid ":ref:`doc_what_are_shaders`" msgstr " :ref:`Shadery przestrzenne `" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 #, fuzzy msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr " :ref:`Shadery cząstek`" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 #, fuzzy msgid ":ref:`doc_your_first_spatial_shader`" msgstr " :ref:`Shadery przestrzenne `" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 #, fuzzy msgid ":ref:`doc_your_second_spatial_shader`" msgstr " :ref:`Shadery przestrzenne `" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "Sieć" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr ":ref:`Eksportowanie `" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Wtyczki" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "" ":ref:`Tworzenie wtyczek ekranu głównego `" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Tworzenie wtyczek" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "Wielowątkowość" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr " :ref:`Tworzenie drzew `" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "Tworzenie zawartości" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr " :ref:`Shadery cząstek`" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "Optymalizacja" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 #, fuzzy msgid ":ref:`doc_using_multimesh`" msgstr " :ref:`Tworzenie drzew `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 #, fuzzy msgid ":ref:`doc_using_servers`" msgstr " :ref:`Tworzenie drzew `" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "Informacje prawne" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 #, fuzzy msgid ":ref:`doc_complying_with_licenses`" msgstr "" ":ref:`Kompilowanie z użyciem klucza szyfrowania " "skryptu`" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "Nowe poradniki wprowadzone po wersji 3.0" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "Krok po kroku" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 #, fuzzy msgid ":ref:`doc_signals`" msgstr ":ref:`Sygnały `" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 #, fuzzy msgid ":ref:`doc_exporting`" msgstr ":ref:`Eksportowanie `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "Skrypty" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 #, fuzzy msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`Typowanie silne w GDscript `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "Dobre praktyki:" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 #, fuzzy msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref:`Wprowadzenie `" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 #, fuzzy msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref:`Czym są klasy Godot `" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr ":ref:`Organizacja sceny `" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 #, fuzzy msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref:`Sceny kontra skrypty `" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 #, fuzzy msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" ":ref:`Automatyczne ładowanie kontra węzły wewnętrzne " "`" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 #, fuzzy msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`Alternatywy węzłów `" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 #, fuzzy msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:`Interfejs Godota `" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Powiadomienia Godota `" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 #, fuzzy msgid ":ref:`doc_data_preferences`" msgstr ":ref:`Preferencje danych `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 #, fuzzy msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`Preferencje logiki `" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 #, fuzzy msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`Oświetlenie i cienie 2D `" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 #, fuzzy msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`Kształty 2D `" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 #, fuzzy msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 #, fuzzy msgid ":ref:`doc_animating_thousands_of_fish`" msgstr ":ref:`doc_matrices_and_transforms`" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 #, fuzzy msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:`Kontrolowanie tysięcy ryb za pomocą cząsteczek " "`" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Fizyka" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 #, fuzzy msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`System Ragdolli `" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 #, fuzzy msgid ":ref:`doc_soft_body`" msgstr ":ref:`Ciało miękkie `" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Animacja" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 #, fuzzy msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`Szkielety 2D `" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr ":ref:`AnimationTree `" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "GUI" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr ":ref:`Interfejs Godota `" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "Okno podglądu" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 #, fuzzy msgid ":ref:`doc_viewport_as_texture`" msgstr ":ref:`Używanie Viewport jako tekstury `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 #, fuzzy msgid ":ref:`doc_custom_postprocessing`" msgstr ":ref:`Dostosowany post-processing `" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 #, fuzzy msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`Wprowadzenie do shaderów: Woda 2D i 3D (7 poradników filmowych) " "`" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 #, fuzzy msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Migracja do języka cieniowania Godota " "`" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 #, fuzzy msgid ":ref:`doc_advanced_postprocessing`" msgstr "Zaawansowany post-processing" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "O Shaderach:" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 #, fuzzy msgid ":ref:`doc_shaders`" msgstr ":ref:`Shadery `" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 #, fuzzy msgid ":ref:`doc_shading_language`" msgstr ":ref:`Język cieniowania `" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 #, fuzzy msgid ":ref:`doc_spatial_shader`" msgstr " :ref:`Shadery przestrzenne `" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 #, fuzzy msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`doc_vectors_advanced`" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr " :ref:`Shadery cząstek`" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "VR" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 #, fuzzy msgid ":ref:`doc_vr_starter_tutorial`" msgstr ":ref:`Poradnik początków z VR `" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" ":ref:`Tworzenie wtyczek ekranu głównego `" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 #, fuzzy msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "Tworzenie wtyczek" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "Specyficzny dla platformy" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 #, fuzzy msgid ":ref:`doc_customizing_html5_shell`" msgstr "" ":ref:`Dostosowanie eksportu do strony sieciowej HTML " "`" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 #, fuzzy msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`Wątkowo-bezpieczne API `" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 #, fuzzy msgid ":ref:`doc_making_trees`" msgstr " :ref:`Tworzenie drzew `" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "Różności" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 #, fuzzy msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`Naprawa drgań i migania `" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 #, fuzzy msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`Uruchamianie kodu w edytorze `" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 #, fuzzy msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`Ręczna zmiana scen `" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 #, fuzzy msgid ":ref:`doc_gles2_gles3_differences`" msgstr ":ref:`Różnice pomiędzy GLES2 i GLES3 `" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1782,22 +1782,22 @@ msgstr ":ref:`Różnice pomiędzy GLES2 i GLES3 `" msgid "Compiling" msgstr "Kompilowanie" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 #, fuzzy msgid ":ref:`doc_optimizing_for_size`" msgstr ":ref:`Optymalizacja rozmiaru projektu `" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 #, fuzzy msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "Kompilowanie z Mono" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "Rozwój silnika" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 #, fuzzy msgid ":ref:`doc_binding_to_external_libraries`" msgstr "Łączenie zewnętrznych bibliotek z Godotem (jak PhysX, FMOD itp.)." @@ -2205,7 +2205,7 @@ msgstr "" "dźwięk, inne węzły wyświetlają modele 3D itp. Jest ich dziesiątki." #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -3458,9 +3458,10 @@ msgstr "" "wybranego węzła." #: ../../docs/getting_started/step_by_step/scripting.rst:213 +#, fuzzy msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3943,7 +3944,7 @@ msgstr "Tylko GDScript tworzy globalne zmienne dla każdego nazwanego skryptu." #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Sygnały" @@ -5299,7 +5300,7 @@ msgstr ":ref:`Timer ` o nazwie ``MessageTimer``." #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 #, fuzzy msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -5671,11 +5672,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -5807,7 +5808,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -18568,7 +18569,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "Materiały" @@ -20081,8 +20082,9 @@ msgid "DAE (COLLADA), which is currently the most mature workflow." msgstr "DAE (COLLADA), który jest obecnie najbardziej dojrzałym rozwiązaniem." #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 +#, fuzzy msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" "GLTF 2.0. Obsługiwane są zarówno formaty tekstowe, jak i binarne. Godot " @@ -20097,7 +20099,11 @@ msgstr "" "Format OBJ (Wavefront). Jest w pełni wspierany, jednak posiada liczne " "ograniczenia (brak wsparcia dla osi obrotów, szkieletów itd)." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." @@ -20105,18 +20111,18 @@ msgstr "" "Wystarczy skopiować plik sceny wraz z teksturą do repozytorium projektu, a " "Godot wykona jej pełny import." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "Dlaczego nie FBX?" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 #, fuzzy msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " @@ -20130,7 +20136,7 @@ msgstr "" "jest dystrybuowana na bardziej restrykcyjnych warunkach licencyjnych niż " "Godot." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." @@ -20138,11 +20144,11 @@ msgstr "" "Planuje się, że w przyszłości będzie stworzona binarna wtyczka " "wykorzystująca GDNative." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "Eksportowanie plików DAE z Maya i 3DS Max" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -20151,11 +20157,11 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "Eksportowanie plików DAE z Blendera" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 #, fuzzy msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " @@ -20164,7 +20170,7 @@ msgstr "" "Blender posiada wbudowaną obsługę dla collada lecz jest ona zepsuta i nie " "powinna być używana." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." @@ -20172,11 +20178,53 @@ msgstr "" "Godot dostarcza `wtyczkę dla Pythona `__, która o wiele lepiej wyeksportuje sceny." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +#, fuzzy +msgid "Exporting glTF 2.0 files from Blender" +msgstr "Eksportowanie plików DAE z Blendera" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "Eksportowanie plików ESCN z Blendera" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 #, fuzzy msgid "" "The most powerful one, called `godot-blender-exporter `__ " @@ -20198,48 +20246,48 @@ msgstr "" "Eksporter ESCN posiada szczegółowy `dokument `__ " "opisujący jego funkcjonalności." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 #, fuzzy msgid "Single scene: A single scene file with everything built in." msgstr "" "Pojedyncza scena: Pojedynczy plik sceny zawierający wszystko, co jest w nią " "wbudowane." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." @@ -20247,20 +20295,20 @@ msgstr "" "Ponieważ różni deweloperzy mają różne potrzeby, ten proces importowania jest " "w dużym stopniu konfigurowalny." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 #, fuzzy msgid "Import options" msgstr "Opcje importowania" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "Importer ma kilka możliwości, które zostaną omówione poniżej:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "Typ głównego węzła" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." @@ -20268,19 +20316,29 @@ msgstr "" "Domyślnie głównym węzłem w zaimportowanych scenach jest \"Spatial\", ale " "można go zmodyfikować." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "Nazwa głównego węzła" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "Umożliwia ustawienie konkretnej nazwy wygenerowanego węzła głównego." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "Nazwa głównego węzła" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +#, fuzzy +msgid "The scale of the root node." +msgstr "Rola skryptu" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "Własny skrypt" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " @@ -20290,49 +20348,49 @@ msgstr "" "zaimportowaniu. Jest to idealne rozwiązanie do przetwarzania końcowego, " "zmiany materiałów, robienia zabawnych rzeczy z geometrią itp." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 #, fuzzy msgid "Create a script like this:" msgstr "Utwórz skrypt, wyglądający tak:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "Przechowywanie" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "Lokalizacja" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -20344,7 +20402,7 @@ msgstr "" "jest ich edycja. Dzieje się tak dlatego, że większość 3D DCC nie ma takich " "samych opcji materiałowych jak te obecne w Godocie." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." @@ -20352,112 +20410,112 @@ msgstr "" "Gdy materiały są wbudowane, zostaną utracone za każdym razem, gdy scena " "zostanie zmodyfikowana i ponownie zaimportowana." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 #, fuzzy msgid "Keep On Reimport" msgstr "Zachowaj przy ponownym imporcie" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "Siatki" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "Kompresja" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "Tymi są:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "Dodatkowe informacje:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -20466,11 +20524,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -20478,14 +20536,14 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." @@ -20493,22 +20551,51 @@ msgstr "" "Opcja ta ma pomóc osobom, które wolą pracować bezpośrednio z siatkami niż " "scenami." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#, fuzzy +msgid "Light Baking" +msgstr "Wypalanie" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#, fuzzy +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" +"Więcej informacji można znaleźć na stronie :ref:`doc_c_sharp_differences`." + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "Zewnętrzne pliki" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Opcje animacji" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -20516,15 +20603,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "Domyślnie funkcja importowania animacji jest włączona." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "Klatki na sekundę" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -20532,18 +20619,18 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " @@ -20553,11 +20640,11 @@ msgstr "" "Pozwala to na dodawanie niestandardowych ścieżek do animacji i zachowanie " "ich po ponownym imporcie." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "Optymalizator" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 #, fuzzy msgid "" "When animations are imported, an optimizer is run, which reduces the size of " @@ -20569,31 +20656,31 @@ msgstr "" "włączona, chyba że podejrzewasz, że animacja może zostać zepsuta z powodu " "jego włączenia." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "Klipy" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 #, fuzzy msgid "Scene inheritance" msgstr "Dziedziczenie sceny" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 #, fuzzy msgid "" "It is possible, however, to make local modifications by using *Scene " @@ -20603,15 +20690,15 @@ msgstr "" "Lokalne modyfikacje można jednak wprowadzać za pomocą *dziedziczenia sceny*. " "Otwórz zaimportowaną scenę. Powinno pojawić się, poniższe okno dialogowe:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "W odziedziczonych scenach jedynymi ograniczeniami modyfikacji są:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "Węzłów nie można usunąć (ale można je dodawać w dowolnym miejscu)." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" @@ -20619,16 +20706,16 @@ msgstr "" "Nie można edytować pod zasobów (zapisz je jako zewnętrzny zasób, jak opisano " "powyżej)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "Poza tym wszystko jest dozwolone!" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 #, fuzzy msgid "Import hints" msgstr "Wskazówki importowania" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" @@ -20636,16 +20723,16 @@ msgstr "" "Podczas edycji sceny, większość czynności jest zwykle czynności, które " "trzeba zrobić po wyeksportowaniu jest taka sama:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 #, fuzzy msgid "Adding collision detection to objects" msgstr "Dodanie wykrywania kolizji do obiektów:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" @@ -20653,18 +20740,18 @@ msgstr "" "Usuwanie węzłów, które nie są używane w silniku gry (np. specjalne światła " "używane do modelowania)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "Usuń węzły (-noimp)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." @@ -20672,11 +20759,11 @@ msgstr "" "Nazwy węzłów z takim przyrostkiem zostaną usunięte w momencie importu, " "niezależnie od ich typu. Nie pojawią się one na zaimportowanej scenie." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "Twórz kolizje (-col, -colonly, -convcolonly)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." @@ -20685,20 +20772,20 @@ msgstr "" "wykryty, dodany zostanie węzeł kolizji statycznej dla dziecka, " "wykorzystujący tę samą geometrię co siatka." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 #, fuzzy msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " @@ -20707,7 +20794,7 @@ msgstr "" "Opcja \"-convcolonly\" utworzy :ref:`class_convexpolygonshape` zamiast :ref:" "`class_concavepolygonshape`." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -20715,86 +20802,86 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 #, fuzzy msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "Pojedyncza strzałka utworzy :ref:`class_rayshape`" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 #, fuzzy msgid "Cube will create a :ref:`class_boxshape`" msgstr "Sześcian stworzy :ref:`class_boxshape`" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 #, fuzzy msgid "Image will create a :ref:`class_planeshape`" msgstr "Obraz utworzy :ref:`class_planeshape`" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 #, fuzzy msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "Kula (i inne nie wymienione obiekty) stworzą :ref:`class_sphereshape`" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 #, fuzzy msgid "Create navigation (-navmesh)" msgstr "Stworzenie nowej animacji" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "Ciało fizyczne (-rigid)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 #, fuzzy msgid "Animation loop (-loop, -cycle)" msgstr "Zapętlanie animacji" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -24576,8 +24663,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -26503,7 +26590,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "Konfiguracja" @@ -27490,7 +27577,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "Uruchommy to znowu! Tym razem, obraca się prawidłowo!" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Narzędzia" @@ -64369,154 +64456,176 @@ msgstr "" msgid "GDNative C example" msgstr "Przykład GDNative C" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "Zanim zaczniesz będziesz potrzebował kilka rzeczy." - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "Plik wykonywalny Godota 3.0" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "Kompilator C" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" -"Skopiuj to repozytorium: https://github.com/GodotNativeTools/godot_headers" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." -msgstr "" +#, fuzzy +msgid "Before we start you'll need a few things:" +msgstr "Zanim zaczniesz będziesz potrzebował kilka rzeczy." #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +#, fuzzy +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." +msgstr "" +"Skopiuj to repozytorium: https://github.com/GodotNativeTools/godot_headers" + #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "Nasz kod źródłowy C" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -64524,13 +64633,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -64540,30 +64649,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -64571,57 +64680,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -64630,28 +64741,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -64662,197 +64773,253 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "Na Linuksie:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "Na Windowsie:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." -msgstr "Plik zawiera 3 sekcje." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" +msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" -msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +#, fuzzy +msgid "General properties" +msgstr "Właściwości węzła" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +#, fuzzy +msgid "Platform libraries" +msgstr "Nazwa platformy." + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Uzyskiwanie zasobu" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -64874,7 +65041,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -64884,51 +65051,51 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 #, fuzzy msgid "Setting up the project" msgstr "Tworzenie nowego projektu" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 #, fuzzy msgid "a Godot 3.x executable," msgstr "Plik wykonywalny Godota 3.x" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 #, fuzzy msgid "a C++ compiler," msgstr "Kompilator C++" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 #, fuzzy msgid "SCons as a build tool," msgstr "SCons build system" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 #, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "Skopiuj to repozytorium: https://github.com/GodotNativeTools/godot_headers" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -64939,13 +65106,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -64953,18 +65120,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -64973,108 +65140,108 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 #, fuzzy msgid "Creating a simple plugin" msgstr "Tworzenie nowego projektu" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -65082,33 +65249,33 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 #, fuzzy msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" "Zacznij od zadeklarowania zmiennych, których ten obiekt będzie potrzebował:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -65119,11 +65286,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -65132,7 +65299,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -65143,7 +65310,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -65152,13 +65319,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -65167,7 +65334,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -65175,12 +65342,12 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 #, fuzzy msgid "Compiling the plugin" msgstr "Kompilowanie naszej wtyczki" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -65189,50 +65356,50 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 #, fuzzy msgid "Using the GDNative module" msgstr "Używanie twojego modułu GDNative" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -65242,7 +65409,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -65251,7 +65418,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -65259,20 +65426,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -65282,29 +65449,29 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 #, fuzzy msgid "Adding properties" msgstr "Właściwości węzła" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -65312,32 +65479,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -65345,41 +65512,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -65387,13 +65554,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -65401,14 +65568,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -65416,17 +65583,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -65434,26 +65601,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -65461,18 +65628,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -65480,22 +65647,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -65503,7 +65670,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -65511,18 +65678,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "Kolejne kroki" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -70256,12 +70423,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -70269,14 +70435,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -70285,20 +70451,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -70306,18 +70472,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "Wybór platformy" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -70325,164 +70491,167 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "Przykład użycia 4 rdzeni:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" -msgstr "" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +#, fuzzy +msgid "For the previous build attempt, the result would look like this::" +msgstr "Na koniec wszystko powinno wyglądać tak:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." -msgstr "" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +#, fuzzy +msgid "A Windows binary with the same configuration will look like this::" +msgstr "W końcu, kiedy uruchomimy scenę, animacja powinna wyglądać tak:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "Cel" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "Bity" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +#, fuzzy +msgid "**32**: Build binaries for 32-bit platforms." msgstr "**32**: Budowanie binariów dla platform 32-bitowych." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#, fuzzy +msgid "**64**: Build binaries for 64-bit platforms." msgstr "**64**: Budowanie binariów dla platform 64-bitowych." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 -msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "Inne opcje budowania" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -70490,23 +70659,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." @@ -78629,6 +78810,21 @@ msgstr "" "`Zeef Godot Engine: Prowadzony przez Andre Schmitza katalog zasobów `_" +#~ msgid "A Godot 3.0 executable" +#~ msgstr "Plik wykonywalny Godota 3.0" + +#~ msgid "A C compiler" +#~ msgstr "Kompilator C" + +#~ msgid "" +#~ "A copy of this repository: https://github.com/GodotNativeTools/" +#~ "godot_headers" +#~ msgstr "" +#~ "Skopiuj to repozytorium: https://github.com/GodotNativeTools/godot_headers" + +#~ msgid "This file contains 3 sections." +#~ msgstr "Plik zawiera 3 sekcje." + #~ msgid "**Arch**" #~ msgstr "**Arch**" @@ -79394,13 +79590,6 @@ msgstr "" #~ msgid "Compilation fails" #~ msgstr "Błąd kompilacji" -#, fuzzy -#~ msgid "" -#~ "a copy of the `godot_headers repository `_," -#~ msgstr "" -#~ "Skopiuj to repozytorium: https://github.com/GodotNativeTools/godot_headers" - #, fuzzy #~ msgid "" #~ "NOTE: The result of these operations depends on the operands types. If " diff --git a/weblate/pt_BR.po b/weblate/pt_BR.po index c736f88b02..5f0ad0a6ec 100644 --- a/weblate/pt_BR.po +++ b/weblate/pt_BR.po @@ -110,7 +110,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-28 20:46+0000\n" "Last-Translator: Rafael Roque \n" "Language-Team: Portuguese (Brazil) `_, quanto no canal ``#godotengine-doc`` no `irc." "freenode.net `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "A documentação principal deste site está organizada nas seguintes seções:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Geral" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Começando" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Tutoriais" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Desenvolvimento" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Comunidade" @@ -1390,7 +1390,7 @@ msgid "New tutorials since version 3.1" msgstr "Novos tutoriais desde a versão 3.0" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Fluxo de trabalho do projeto" @@ -1401,7 +1401,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr ":ref:`Builds personalizadas para Android `" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" @@ -1454,407 +1454,407 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "Localização" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "Sombreamento" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "Sua Primeira Série Shader:" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 #, fuzzy msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`O que são shaders? `" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 #, fuzzy msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" ":ref:`Seu primeiro shader de CanvasItem `" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 #, fuzzy msgid ":ref:`doc_your_first_spatial_shader`" msgstr ":ref:`Seu primeiro shader Spatial `" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 #, fuzzy msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" ":ref:`Seu primeiro shader Spatial: Parte 2 `" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr ":ref:`Exportando `" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Plugins" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr ":ref:`Criando plugins para Android `" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr ":ref:`Plugins de gizmo espacial `" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "Multi-threading" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr ":ref:`Utilizando MultiMesh `" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "Criando conteúdo" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr ":ref:`Sombreamento de partículas `" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "Otimização" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 #, fuzzy msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Utilizando MultiMesh `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 #, fuzzy msgid ":ref:`doc_using_servers`" msgstr ":ref:`Usando servidores `" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "Jurídico" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 #, fuzzy msgid ":ref:`doc_complying_with_licenses`" msgstr "" ":ref:`Compilando com Licenças `" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "Novos tutoriais desde a versão 3.0" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "Passo a passo" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 #, fuzzy msgid ":ref:`doc_signals`" msgstr ":ref:`Sinais `" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 #, fuzzy msgid ":ref:`doc_exporting`" msgstr ":ref:`Exportando `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "Scripting" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 #, fuzzy msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`GDscript tipado `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "Boas práticas:" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 #, fuzzy msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref: `Introdução `" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 #, fuzzy msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref: `O que são as classes Godot `" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr ":ref:`Organização de cenas `" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 #, fuzzy msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref: `Cenas versus Scripts `" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 #, fuzzy msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" ":ref:`Autoloads versus nós internos `" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 #, fuzzy msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`Alternativa de nós `" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 #, fuzzy msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:`Interfaces Godot `" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Notificação Godot `" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 #, fuzzy msgid ":ref:`doc_data_preferences`" msgstr ":ref:`Preferências de dados `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 #, fuzzy msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`Preferências de lógica `" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 #, fuzzy msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`Luzes e sombras 2D `" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 #, fuzzy msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`Malhas 2D`" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 #, fuzzy msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 #, fuzzy msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" ":ref:`Animando milhares de peixes com MultiMesh " "`" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 #, fuzzy msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:`Controlando milhares de peixes com Partículas " "`" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Física" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 #, fuzzy msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`Sistema Ragdoll`" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 #, fuzzy msgid ":ref:`doc_soft_body`" msgstr ":ref:`Softbody `" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Animação" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 #, fuzzy msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`Esqueletos 2D`" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr ":ref:`Árvore de Animações `" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "GUI" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr ":ref:`Contêiners `" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "Janelas de exibição" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 #, fuzzy msgid ":ref:`doc_viewport_as_texture`" msgstr "" ":ref:`Usando uma Janela de exibição (Viewport) como uma textura " "`" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 #, fuzzy msgid ":ref:`doc_custom_postprocessing`" msgstr ":ref:`Personalizar Pós-processo `" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 #, fuzzy msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`Introdução a shaders: água 2D e 3D (7 video-tutoriais) " "`" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 #, fuzzy msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Migrando para a linguagem de shading da Godot " "`" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 #, fuzzy msgid ":ref:`doc_advanced_postprocessing`" msgstr "Funções e Variáveis" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "Referência de sombreamento:" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 #, fuzzy msgid ":ref:`doc_shaders`" msgstr ":ref:`Sombreamento `" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 #, fuzzy msgid ":ref:`doc_shading_language`" msgstr ":ref:`Linguagem de sombreamento `" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 #, fuzzy msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`Shaders Spatial `" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 #, fuzzy msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`Shaders de CanvasItem `" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr ":ref:`Sombreamento de partículas `" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "VR" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 #, fuzzy msgid ":ref:`doc_vr_starter_tutorial`" msgstr ":ref:`Tutorial de iniciante de VR `" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" ":ref:`Fazendo plugins para cena principal `" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 #, fuzzy msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr ":ref:`Plugins de gizmo espacial `" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "Plataformas específicas" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 #, fuzzy msgid ":ref:`doc_customizing_html5_shell`" msgstr "" ":ref:`Personalizando a página Web de exportação de HTML " "`" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 #, fuzzy msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`Thread APIs seguras`" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 #, fuzzy msgid ":ref:`doc_making_trees`" msgstr ":ref:`Criando árvores `" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "Diversos" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 #, fuzzy msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`Consertando jitter e stutter `" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 #, fuzzy msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`Rodando código no editor `" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 #, fuzzy msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`Mudar cenas manualmente `" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 #, fuzzy msgid ":ref:`doc_gles2_gles3_differences`" msgstr ":ref:'Diferenças entre GLES2 e GLES3 `" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1864,24 +1864,24 @@ msgstr ":ref:'Diferenças entre GLES2 e GLES3 `" msgid "Compiling" msgstr "Compilando" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 #, fuzzy msgid ":ref:`doc_optimizing_for_size`" msgstr ":ref:`Otimizando uma build para tamanho `" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 #, fuzzy msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" ":ref:`Compilando com a chave de encriptação de script " "`" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "Desenvolvimento de Engine" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 #, fuzzy msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -2299,7 +2299,7 @@ msgstr "" "som, outros exibem modelos tridimensionais, etc. Existem dúzias deles." #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -3567,9 +3567,10 @@ msgstr "" "selecionado." #: ../../docs/getting_started/step_by_step/scripting.rst:213 +#, fuzzy msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -4062,7 +4063,7 @@ msgstr "Apenas GDScript pode criar variáveis globais para cada script nomeado." #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Sinais" @@ -5434,8 +5435,9 @@ msgid ":ref:`Timer ` named ``MessageTimer``." msgstr ":ref:`Timer ` nomeado ``MessageTimer``." #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 +#, fuzzy msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -5818,12 +5820,13 @@ msgstr "" "fazer isso é usando a propriedade \"Atalho\" do nó ``Button``." #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 +#, fuzzy msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" "Na cena ``HUD``, selecione o ``StartButton`` e encontre sua propriedade " @@ -5962,7 +5965,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "Exportar modelos" @@ -20859,7 +20862,7 @@ msgstr "" "está presente no repositório Godot-Blender-exportador." #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "Materiais" @@ -22692,7 +22695,7 @@ msgstr "DAE (COLLADA), which is currently the most mature workflow." #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 #, fuzzy msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" "GLTF 2.0. Both text and binary formats are supported. Godot has full support " @@ -22706,7 +22709,11 @@ msgstr "" "Formatos OBJ (Wavefront). Também é oferecido suporte completo, mas bastante " "limitado (sem suporte para pivots, esqueletos, etc)." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." @@ -22714,7 +22721,7 @@ msgstr "" "Simplesmente copie o arquivo todo da cena com a textura para o repositório " "do projeto, e o Godot fará uma importação completa." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " @@ -22724,11 +22731,11 @@ msgstr "" "exportar. Tenha certeza que o esqueleto esteja setado em pose tipo T ou pose " "de descanso padrão antes de exportar usando seu editor 3D favorito." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "Por que não FBX?" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -22740,17 +22747,17 @@ msgstr "" "requer o uso de uma biblioteca de código fechado da Autodesk, que é " "distribuida com uma licensa mais restritiva do que a da Godot." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "O plano é, futuramente, oferecer um plugin binário usando GDNative." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "Exportando arquivos DAE do Maya e 3DS Max" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -22765,11 +22772,11 @@ msgstr "" "funcionam bem, apesar de que nem sempre estão atualizados com a última " "versão do software." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "Exportando arquivos DAE no Blender" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." @@ -22777,7 +22784,7 @@ msgstr "" "O Blender possui suporte ao formato COLLADA nativamente, mas está quebrado e " "não deveria ser usado." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." @@ -22785,11 +22792,53 @@ msgstr "" "A Godot oferece um `Plugin Python `__ que faz um trabalho bem melhor de exportar cenas." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +#, fuzzy +msgid "Exporting glTF 2.0 files from Blender" +msgstr "Exportando arquivos DAE no Blender" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "Exportando arquivos ESCN do Blender" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -22801,7 +22850,7 @@ msgstr "" "uma espécie de arquivo .tscn (arquivo Godot Scene); ele retém o máximo de " "informações possível sobre uma Blender Scene." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." @@ -22809,11 +22858,11 @@ msgstr "" "O exportador ESCN tem um detalhado `document `__ " "descrevendo seu uso e funcionalidade." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "Importar fluxos de trabalho" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" @@ -22822,7 +22871,7 @@ msgstr "" "respeito de como os dados são importados. Dependendo de muitas opções, é " "possível importar a cena usando:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." @@ -22830,7 +22879,7 @@ msgstr "" "Materiais externos (padrão): Onde cada material é salvado em um arquivo. " "Modificações serão mantidas." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." @@ -22838,7 +22887,7 @@ msgstr "" "Malhas externas: Onde cada malha é salva em diferentes arquivos. Vários " "usuários preferem lidar com malhas diretamente." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." @@ -22846,7 +22895,7 @@ msgstr "" "Animações externas: Permitir que animações salvas sejam modificadas e " "mescladas quando fonte for alterada." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." @@ -22854,11 +22903,11 @@ msgstr "" "Cenas externas: Salve cada um dos nós raiz das cenas importadas em uma cena " "separada." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "Cena única: Um único arquivo de cena com tudo configurado." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." @@ -22866,20 +22915,20 @@ msgstr "" "O processo de importação é altamente customizável, já que diferentes " "desenvolvedores possuem diferentes necessidades." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 #, fuzzy msgid "Import options" msgstr "As opções de importação são vastas:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "O importador possui diversas opções, que serão discutidas logo abaixo:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "Tipo da Raiz" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." @@ -22887,30 +22936,40 @@ msgstr "" "Por padrão, o tipo do nó raiz nas cenas importadas é \"Espacial\", mas isso " "pode ser modificado." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "Nome da Raiz" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "Permite setar um nome específico para o nó raiz gerado." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "Nome da Raiz" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +#, fuzzy +msgid "The scale of the root node." +msgstr "O papel do roteiro" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "Script Personalizado" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "Crie um script dessa forma:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " @@ -22920,14 +22979,14 @@ msgstr "" "é o nó raiz da cena). A cena que será utilizada tem que ser retornada. Pode " "ser uma diferente." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "Armazenamento" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " @@ -22937,7 +22996,7 @@ msgstr "" "que cada um dos nós abaixo da raiz serão uma cena separada e a instancia na " "cena importada." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." @@ -22945,11 +23004,11 @@ msgstr "" "Claro, instanciar essas cenas importadas em outros lugares manualmente " "também funciona." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "Localização" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." @@ -22957,7 +23016,7 @@ msgstr "" "Godot tem suporte a materiais em malha ou em nós. Por padrão, materiais " "serão colocados em cada um dos nós." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -22969,7 +23028,7 @@ msgstr "" "editá-los. Isso acontece porquê a maioria dos DCCs 3D não possuem as mesmas " "opções de material que o Godot." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." @@ -22977,111 +23036,111 @@ msgstr "" "Quando os materiais são compilados, eles serão perdidos toda vez que a cena " "principal for modificada ou importada." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -23090,11 +23149,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -23102,35 +23161,62 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#, fuzzy +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "Para mais, veja a página: ref: `doc_c_sharp_differences`." + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Animações" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -23138,15 +23224,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "FPS" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -23154,156 +23240,156 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 #, fuzzy msgid "Scene inheritance" msgstr "Usar a herança de cena" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 #, fuzzy msgid "Import hints" msgstr "Importando" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -23311,80 +23397,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -27071,8 +27157,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -28925,7 +29011,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -29863,7 +29949,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Ferramentas" @@ -66157,153 +66243,175 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +#, fuzzy +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." +msgstr "" +"Dê um Fork `Repositório do Godot`_" + #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -66311,13 +66419,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -66327,30 +66435,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -66358,57 +66466,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -66417,28 +66527,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -66449,197 +66559,252 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" -msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +#, fuzzy +msgid "General properties" +msgstr "Propriedades do Node" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Liberando recursos" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -66661,7 +66826,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -66671,49 +66836,49 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 #, fuzzy msgid "Setting up the project" msgstr "Criando um novo projeto" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 #, fuzzy msgid "There are a few prerequisites you'll need:" msgstr "Existem algumas diferenças:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 #, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "Dê um Fork `Repositório do Godot`_" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -66724,13 +66889,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -66738,18 +66903,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -66758,108 +66923,108 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 #, fuzzy msgid "Creating a simple plugin" msgstr "Criando um script C#" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -66867,32 +67032,32 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 #, fuzzy msgid "After that, we declare a single member variable called ``time_passed``." msgstr "Comece declarando as variáveis membro que este objeto irá precisar:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -66903,11 +67068,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -66916,7 +67081,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -66927,7 +67092,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -66936,13 +67101,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -66951,7 +67116,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -66959,11 +67124,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -66972,49 +67137,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -67024,7 +67189,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -67033,7 +67198,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -67041,20 +67206,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -67064,29 +67229,29 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 #, fuzzy msgid "Adding properties" msgstr "Propriedades do Node" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -67094,32 +67259,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -67127,41 +67292,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -67169,13 +67334,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -67183,14 +67348,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -67198,17 +67363,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -67216,26 +67381,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -67243,18 +67408,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -67262,22 +67427,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -67285,7 +67450,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -67293,18 +67458,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -71997,12 +72162,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -72010,14 +72174,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -72026,20 +72190,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -72047,18 +72211,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -72066,164 +72230,165 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" -msgstr "" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +#, fuzzy +msgid "For the previous build attempt, the result would look like this::" +msgstr "Até agora, o método update \\ _health se parece com isto:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." -msgstr "" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +#, fuzzy +msgid "A Windows binary with the same configuration will look like this::" +msgstr "E finalmente, ao executar a cena, a animação deve ficar assim:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "Destino" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -72231,23 +72396,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." @@ -80690,13 +80867,6 @@ msgstr "" #~ msgid "Some examples:" #~ msgstr "Alguns exemplos:" -#, fuzzy -#~ msgid "" -#~ "a copy of the `godot_headers repository `_," -#~ msgstr "" -#~ "Dê um Fork `Repositório do Godot`_" - #, fuzzy #~ msgid "" #~ "NOTE: The result of these operations depends on the operands types. If " diff --git a/weblate/pt_PT.po b/weblate/pt_PT.po index 29d1d5e885..c306077d88 100644 --- a/weblate/pt_PT.po +++ b/weblate/pt_PT.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-29 19:20+0000\n" "Last-Translator: Bruno Matos \n" "Language-Team: Portuguese (Portugal) `_, como no canal ``#godotengine-doc`` em `irc." "freenode.net `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "A documentação principal está organizada nas seguintes secções:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Geral" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Como Começar" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Tutoriais" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Desenvolvimento" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Comunidade" @@ -1303,7 +1303,7 @@ msgid "New tutorials since version 3.1" msgstr "Novos tutoriais desde a versão 3.0" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Fluxo de trabalho do projeto" @@ -1313,7 +1313,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 #, fuzzy msgid "2D" msgstr "2D" @@ -1367,412 +1367,412 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "Localização" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 #, fuzzy msgid "Shading" msgstr "Shading" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 #, fuzzy msgid "Your First Shader Series:" msgstr "Seu primeiro jogo" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 #, fuzzy msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`Facilidade para escrever Shaders `" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 #, fuzzy msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr ":ref:`Shaders de CanvasItem `" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 #, fuzzy msgid ":ref:`doc_your_first_spatial_shader`" msgstr ":ref:`Facilidade para escrever Shaders `" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 #, fuzzy msgid ":ref:`doc_your_second_spatial_shader`" msgstr ":ref:`Facilidade para escrever Shaders `" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr ":ref:`Exporting `" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Plugins" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr ":ref:`Canalização de Animações `" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr ":ref:`Canalização de Animações `" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 #, fuzzy msgid "Multi-threading" msgstr "String com múltiplas linhas" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr ":ref:`Canalização de Animações `" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Criando conteúdo" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr ":ref:`Facilidade para escrever Shaders `" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animação" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 #, fuzzy msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Canalização de Animações `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 #, fuzzy msgid ":ref:`doc_using_servers`" msgstr ":ref:`Canalização de Animações `" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "Legal" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 #, fuzzy msgid ":ref:`doc_complying_with_licenses`" msgstr "" ":ref:`Compilando com chave de encriptação de script " "`" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "Novos tutoriais desde a versão 3.0" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "Passo a passo" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 #, fuzzy msgid ":ref:`doc_signals`" msgstr ":ref:`Basis `" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 #, fuzzy msgid ":ref:`doc_exporting`" msgstr ":ref:`Exporting `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "Scripting" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 #, fuzzy msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`Embutido `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "Boas Práticas:" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 #, fuzzy msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref: `Introdução `" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 #, fuzzy msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref: `O que são as classes Godot `" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr ":ref:`Organização de cenas `" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 #, fuzzy msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref: `Cenas versus Scripts `" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 #, fuzzy msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" ":ref:`Autoloads versus nós internos `" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 #, fuzzy msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`Alternativa de nós `" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 #, fuzzy msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:`Interfaces Godot `" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Notificação Godot `" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 #, fuzzy msgid ":ref:`doc_data_preferences`" msgstr ":ref:`Preferências de dados `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 #, fuzzy msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`Preferências de lógica `" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 #, fuzzy msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`luzes 2D e sombras `" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 #, fuzzy msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`malhas 2D`" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 #, fuzzy msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 #, fuzzy msgid ":ref:`doc_csg_tools`" msgstr ":ref:`Color `" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 #, fuzzy msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "Animar a perda de vida com o nó Tween" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 #, fuzzy msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:`Controlando milhares de peixes com Partículas " "`" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Fisica" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 #, fuzzy msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`Sistema Ragdoll`" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 #, fuzzy msgid ":ref:`doc_soft_body`" msgstr ":ref:`Softbody `" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Animação" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 #, fuzzy msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`Esqueletos 2D`" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr ":ref:`Canalização de Animações `" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "GUI" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr ":ref:`Interfaces Godot `" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 #, fuzzy msgid "Viewports" msgstr "Viewports" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 #, fuzzy msgid ":ref:`doc_viewport_as_texture`" msgstr ":ref:`Usando uma Viewport como uma textura `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 #, fuzzy msgid ":ref:`doc_custom_postprocessing`" msgstr ":ref:`Pós-processamento personalizado `" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 #, fuzzy msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`Introdução aos shaders: água 2D e 3D (7 video-tutoriais) " "`" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 #, fuzzy msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Migrando para a linguagem de shading da Godot " "`" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 #, fuzzy msgid ":ref:`doc_advanced_postprocessing`" msgstr "Define uma variavel." -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 #, fuzzy msgid "Shading Reference:" msgstr "Alterando a cena atual" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 #, fuzzy msgid ":ref:`doc_shaders`" msgstr ":ref:`Facilidade para escrever Shaders `" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 #, fuzzy msgid ":ref:`doc_shading_language`" msgstr ":ref:`Facilidade para escrever Shaders `" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 #, fuzzy msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`Facilidade para escrever Shaders `" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 #, fuzzy msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`Shaders de CanvasItem `" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr ":ref:`Facilidade para escrever Shaders `" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 #, fuzzy msgid "VR" msgstr "VR" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 #, fuzzy msgid ":ref:`doc_vr_starter_tutorial`" msgstr ":ref:`Tutorial de iniciante de VR `" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" ":ref:`Fazendo plugins da cena principal `" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 #, fuzzy msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr ":ref:`Canalização de Animações `" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 #, fuzzy msgid "Platform-specific" msgstr "Específico de plataforma" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 #, fuzzy msgid ":ref:`doc_customizing_html5_shell`" msgstr "" ":ref:`Personalizando a Web export HTML page `" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 #, fuzzy msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`Thread safe APIs `" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 #, fuzzy msgid ":ref:`doc_making_trees`" msgstr ":ref:`Canalização de Animações `" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 #, fuzzy msgid "Miscellaneous" msgstr "Diversos" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 #, fuzzy msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`Consertando jitter e stutter `" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 #, fuzzy msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`Rodando código no editor `" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 #, fuzzy msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`Mudar cenas manualmente `" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 #, fuzzy msgid ":ref:`doc_gles2_gles3_differences`" msgstr "Diferenças gerais entre o C# e o GDScript" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1783,25 +1783,25 @@ msgstr "Diferenças gerais entre o C# e o GDScript" msgid "Compiling" msgstr "Compilando" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 #, fuzzy msgid ":ref:`doc_optimizing_for_size`" msgstr ":ref:`Otimizando uma build por tamanho `" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 #, fuzzy msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" ":ref:`Compilando com chave de encriptação de script " "`" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 #, fuzzy msgid "Engine development" msgstr "Desenvolvimento de Engine" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 #, fuzzy msgid ":ref:`doc_binding_to_external_libraries`" msgstr ":ref:`Editores externos são possíveis `" @@ -2217,7 +2217,7 @@ msgstr "" "som, outros exibem modelos tridimensionais, etc. Existem dúzias deles." #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -3491,9 +3491,10 @@ msgstr "" "selecionado." #: ../../docs/getting_started/step_by_step/scripting.rst:213 +#, fuzzy msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3982,7 +3983,7 @@ msgstr "Apenas GDScript pode criar variáveis globais para cada script nomeado." #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Sinais" @@ -5360,8 +5361,9 @@ msgid ":ref:`Timer ` named ``MessageTimer``." msgstr ":ref:`Timer ` nomeado ``MessageTimer``." #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 +#, fuzzy msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -5732,12 +5734,13 @@ msgstr "" "de fazer isso é usar a propriedade \"Shortcut\" do nó ``Button``." #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 +#, fuzzy msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" "Na cena ``HUD``, selecione o ``StartButton`` e encontre sua propriedade " @@ -5876,7 +5879,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "Exportar modelos" @@ -20743,7 +20746,7 @@ msgstr "" "está presente no repositório Godot-Blender-exportador." #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "Materiais" @@ -22567,7 +22570,7 @@ msgstr "DAE (COLLADA), which is currently the most mature workflow." #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 #, fuzzy msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" "GLTF 2.0. Both text and binary formats are supported. Godot has full support " @@ -22579,24 +22582,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -22604,17 +22611,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -22623,27 +22630,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -22651,137 +22699,147 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 #, fuzzy msgid "Import options" msgstr "Define uma variavel." -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "Scale" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +#, fuzzy +msgid "The scale of the root node." +msgstr "O papel do roteiro" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 #, fuzzy msgid "Create a script like this:" msgstr "Crie um script que pareça isto:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -22789,117 +22847,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -22908,11 +22966,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -22920,35 +22978,62 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#, fuzzy +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "Para mais, veja a página: ref: `doc_c_sharp_differences`." + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Animações" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -22956,15 +23041,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "FPS" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -22972,156 +23057,156 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 #, fuzzy msgid "Scene inheritance" msgstr "Usar a herança de cena" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 #, fuzzy msgid "Import hints" msgstr "Importando" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -23129,80 +23214,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -26888,8 +26973,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -28742,7 +28827,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -29680,7 +29765,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Ferramentas" @@ -65964,153 +66049,175 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +#, fuzzy +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." +msgstr "" +"Dê um Fork `Repositório do Godot`_" + #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -66118,13 +66225,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -66134,30 +66241,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -66165,57 +66272,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -66224,28 +66333,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -66256,197 +66365,252 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" -msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +#, fuzzy +msgid "General properties" +msgstr "Propriedades do Node" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Liberando recursos" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -66468,7 +66632,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -66478,49 +66642,49 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 #, fuzzy msgid "Setting up the project" msgstr "Criando um novo projeto" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 #, fuzzy msgid "There are a few prerequisites you'll need:" msgstr "Existem algumas diferenças:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 #, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "Dê um Fork `Repositório do Godot`_" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -66531,13 +66695,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -66545,18 +66709,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -66565,108 +66729,108 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 #, fuzzy msgid "Creating a simple plugin" msgstr "Criando um script C#" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -66674,32 +66838,32 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 #, fuzzy msgid "After that, we declare a single member variable called ``time_passed``." msgstr "Comece declarando as variáveis membro que este objeto irá precisar:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -66710,11 +66874,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -66723,7 +66887,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -66734,7 +66898,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -66743,13 +66907,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -66758,7 +66922,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -66766,11 +66930,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -66779,49 +66943,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -66831,7 +66995,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -66840,7 +67004,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -66848,20 +67012,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -66871,29 +67035,29 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 #, fuzzy msgid "Adding properties" msgstr "Propriedades do Node" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -66901,32 +67065,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -66934,41 +67098,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -66976,13 +67140,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -66990,14 +67154,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -67005,17 +67169,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -67023,26 +67187,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -67050,18 +67214,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -67069,22 +67233,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -67092,7 +67256,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -67100,18 +67264,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -71805,12 +71969,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -71818,14 +71981,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -71834,20 +71997,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -71855,18 +72018,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -71874,164 +72037,165 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" -msgstr "" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +#, fuzzy +msgid "For the previous build attempt, the result would look like this::" +msgstr "Até agora, o método update \\ _health se parece com isto:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." -msgstr "" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +#, fuzzy +msgid "A Windows binary with the same configuration will look like this::" +msgstr "E finalmente, ao executar a cena, a animação deve ficar assim:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "Alvo" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -72039,23 +72203,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." @@ -80459,13 +80635,6 @@ msgstr "" #~ msgid "Some examples:" #~ msgstr "Alguns exemplos:" -#, fuzzy -#~ msgid "" -#~ "a copy of the `godot_headers repository `_," -#~ msgstr "" -#~ "Dê um Fork `Repositório do Godot`_" - #~ msgid "Mac OS X" #~ msgstr "Mac OS X" diff --git a/weblate/ro.po b/weblate/ro.po index 8d5abb6e0d..94731d953b 100644 --- a/weblate/ro.po +++ b/weblate/ro.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2018-08-05 00:52+0000\n" "Last-Translator: Grigore Antoniuc \n" "Language-Team: Romanian `_, fie pe canalul ``#godotengine-doc`` de pe " "`irc.freenode.net `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "Documentația principală pentru site este organizată în următoarele secțiuni:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "General" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Noțiuni de bază" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Tutoriale" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Dezvoltare" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Comunitate" @@ -1117,7 +1117,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1127,7 +1127,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1179,345 +1179,345 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr "Particule" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Plugin-uri" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "Particule" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Creare de conținut" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr "Particule" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animație" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr "Animație asistată" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Animație" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr "Particule" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Creare de conținut" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1527,20 +1527,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1877,7 +1877,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2822,7 +2822,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3179,7 +3179,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Semnale" @@ -4170,7 +4170,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4465,11 +4465,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4567,7 +4567,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15566,7 +15566,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16930,7 +16930,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16940,24 +16940,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16965,17 +16969,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16984,27 +16988,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -17012,135 +17057,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17148,117 +17201,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17267,11 +17320,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17279,35 +17332,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Animație" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17315,15 +17394,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17331,154 +17410,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17486,80 +17565,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21201,8 +21280,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -23041,7 +23120,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23973,7 +24052,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Unelte" @@ -59633,153 +59712,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59787,13 +59886,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59803,30 +59902,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59834,57 +59933,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59893,28 +59994,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59925,197 +60026,251 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Creare de conținut" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60136,7 +60291,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60146,45 +60301,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60195,13 +60350,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60209,18 +60364,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60229,107 +60384,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60337,31 +60492,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60372,11 +60527,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60385,7 +60540,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60396,7 +60551,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60405,13 +60560,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60420,7 +60575,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60428,11 +60583,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60441,49 +60596,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60493,7 +60648,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60502,7 +60657,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60510,20 +60665,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60533,28 +60688,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60562,32 +60717,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60595,41 +60750,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60637,13 +60792,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60651,14 +60806,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60666,17 +60821,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60684,26 +60839,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60711,18 +60866,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60730,22 +60885,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60753,7 +60908,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60761,18 +60916,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65399,12 +65554,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65412,14 +65566,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65428,20 +65582,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65449,18 +65603,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65468,164 +65622,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65633,23 +65786,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/ru.po b/weblate/ru.po index 5ec65fda52..c6801603df 100644 --- a/weblate/ru.po +++ b/weblate/ru.po @@ -100,7 +100,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-25 07:19+0000\n" "Last-Translator: Chaosus89 \n" "Language-Team: Russian `_, или на канале ``#godotengine-doc`` на `irc.freenode.net `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Основная документация для сайта собрана в следующих разделах:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Основное" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Начало работы" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Уроки" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Разработка" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Сообщество" @@ -1377,7 +1377,7 @@ msgid "New tutorials since version 3.1" msgstr "Новые руководства, начиная с версии 3.0" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "Рабочий процесс проекта" @@ -1389,7 +1389,7 @@ msgstr "" ":ref:`Кастомизированные сборки для Андройда `" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "2D" @@ -1442,405 +1442,405 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "Локализация" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "Шейдеры" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "Ваш Первый Ряд Шейдеров:" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 #, fuzzy msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`Что такое шейдеры ? `" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 #, fuzzy msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr ":ref:`Ваш первый CanvasItem шейдер `" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 #, fuzzy msgid ":ref:`doc_your_first_spatial_shader`" msgstr ":ref:`Ваш первый Spatial шейдер `" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 #, fuzzy msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" ":ref:`Ваш первый Spatial шейдер. Часть 2 `" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "Сеть" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr ":ref:`Экспорт `" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Плагины" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr ":ref:`Создание плагинов для Андройд `" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr ":ref:`Плагины для 3D-гизмо `" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "Много-поточность" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr ":ref:`Использование MultiMesh `" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "Создание контента" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr ":ref:`Точечные шейдеры `" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "Оптимизация" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 #, fuzzy msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Использование MultiMesh `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 #, fuzzy msgid ":ref:`doc_using_servers`" msgstr ":ref:`Использование серверов `" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "Легализация" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 #, fuzzy msgid ":ref:`doc_complying_with_licenses`" msgstr ":ref:`Соответствие с Лицензиями `" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "Новые руководства, начиная с версии 3.0" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "Шаг за шагом" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 #, fuzzy msgid ":ref:`doc_signals`" msgstr ":ref:`Сигналы `" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 #, fuzzy msgid ":ref:`doc_exporting`" msgstr ":ref:`Экспорт `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "Написание скриптов" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 #, fuzzy msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`Типизированный GDscript `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "Лучшие практики:" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 #, fuzzy msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref:`Введение `" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 #, fuzzy msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref:`Что такое Godot классы `" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr ":ref:`Организация сцены `" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 #, fuzzy msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref:`Зависимость сцен от скриптов `" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 #, fuzzy msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" ":ref:`Автозагрузка против внутренних узлов " "`" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 #, fuzzy msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`Альтернативы узлам `" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 #, fuzzy msgid ":ref:`doc_godot_interfaces`" msgstr "Интерфейсы Godot" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Godot оповещения `" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 #, fuzzy msgid ":ref:`doc_data_preferences`" msgstr ":ref:`Настройки данных `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 #, fuzzy msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`Настройки логики `" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 #, fuzzy msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`2D освещение и тени `" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 #, fuzzy msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`2D сетки `" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "3D" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 #, fuzzy msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 #, fuzzy msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" ":ref:`Анимация тысячи рыб при помощи MultiMesh " "`" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 #, fuzzy msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" ":ref:`Управление тысячами рыб с помощью Particles " "`" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Физика" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 #, fuzzy msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`Система Ragdoll `" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 #, fuzzy msgid ":ref:`doc_soft_body`" msgstr ":ref:`Мягкое тело `" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Анимация" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 #, fuzzy msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`2D скелеты `" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr ":ref:`Дерево анимаций `" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "Интерфейс" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr ":ref:`Контейнеры `" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "Окна просмотра" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 #, fuzzy msgid ":ref:`doc_viewport_as_texture`" msgstr "" ":ref:`Использование Viewport в качестве текстуры `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 #, fuzzy msgid ":ref:`doc_custom_postprocessing`" msgstr ":ref:`Пользовательская пост-обработка `" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 #, fuzzy msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`Введение в шейдеры: 2D и 3D вода (7 видео уроков) " "`" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 #, fuzzy msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" ":ref:`Переход к языку шейдинга Godot " "`" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 #, fuzzy msgid ":ref:`doc_advanced_postprocessing`" msgstr "Функции и Переменные" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "Справка по шейдингу:" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 #, fuzzy msgid ":ref:`doc_shaders`" msgstr ":ref:`Шейдеры `" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 #, fuzzy msgid ":ref:`doc_shading_language`" msgstr ":ref:`Язык шейдинга `" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 #, fuzzy msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`Пространственные шейдеры `" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 #, fuzzy msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`Шейдеры элементов канваза `" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr ":ref:`Точечные шейдеры `" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "VR" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 #, fuzzy msgid ":ref:`doc_vr_starter_tutorial`" msgstr ":ref:`Первоначальное обучение VR `" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" ":ref:`Создание плагинов главного экрана `" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 #, fuzzy msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr ":ref:`Плагины для 3D-гизмо `" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "Особенности разных платформ" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 #, fuzzy msgid ":ref:`doc_customizing_html5_shell`" msgstr "" ":ref:`Пользовательская настройка веб экспорта HTML страницы " "`" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 #, fuzzy msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`API безопасности потоков `" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 #, fuzzy msgid ":ref:`doc_making_trees`" msgstr ":ref:`Создание деревьев `" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "Разное" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 #, fuzzy msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`Исправление джиттеров и задержек `" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 #, fuzzy msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`Запуск кода в редакторе `" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 #, fuzzy msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`Изменение сцен вручную `" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 #, fuzzy msgid ":ref:`doc_gles2_gles3_differences`" msgstr ":ref:`Отличия между GLES3 и GLES3 `" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1850,24 +1850,24 @@ msgstr ":ref:`Отличия между GLES3 и GLES3 `" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 #, fuzzy msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" ":ref:`Компиляция с ключом шифрования скрипта " "`" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "Разработка движка" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 #, fuzzy msgid ":ref:`doc_binding_to_external_libraries`" msgstr "Связывание внешних библиотек" @@ -2285,7 +2285,7 @@ msgstr "" "воспроизводят звук, другие узлы отображают 3D-модели и т.д. Их десятки." #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -3557,9 +3557,10 @@ msgstr "" "относительный путь от узла вызывающего событие к выбранному узлу." #: ../../docs/getting_started/step_by_step/scripting.rst:213 +#, fuzzy msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -4048,7 +4049,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Сигналы" @@ -5411,8 +5412,9 @@ msgid ":ref:`Timer ` named ``MessageTimer``." msgstr ":ref:`Timer ` названный ``MessageTimer``." #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 +#, fuzzy msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -5794,12 +5796,13 @@ msgstr "" "является использование свойства \"Shortcut\" узла ``Button``." #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 +#, fuzzy msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" "В сцене ``HUD`` выберите ``StartButton`` и найдите его свойство _Shortcut_ в " @@ -5931,7 +5934,7 @@ msgstr "Вот полный скрипт для игрока, с коммент #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "Экспорт шаблонов" @@ -20393,7 +20396,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -21761,7 +21764,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -21771,24 +21774,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -21796,17 +21803,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -21815,27 +21822,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -21843,136 +21891,146 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 #, fuzzy msgid "Import options" msgstr "Векторные Операции" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "Язык" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +#, fuzzy +msgid "The scale of the root node." +msgstr "Роль сценария" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "Создайте скрипт похожий на:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -21980,117 +22038,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -22099,11 +22157,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -22111,35 +22169,64 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#, fuzzy +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" +"Для получения дополнительной информации о самих событиях посмотрите " +"руководство :ref:`doc_inputevent`." + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Анимации" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -22147,15 +22234,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "FPS" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -22163,155 +22250,155 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 #, fuzzy msgid "Scene inheritance" msgstr "Использовать наследование сцен" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -22319,80 +22406,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -26065,8 +26152,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -27912,7 +27999,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -28849,7 +28936,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Инструменты" @@ -65387,153 +65474,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -65541,13 +65648,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -65557,30 +65664,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -65588,57 +65695,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -65647,28 +65756,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -65679,197 +65788,253 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" -msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +#, fuzzy +msgid "General properties" +msgstr "Это его редактируемые свойства." -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +#, fuzzy +msgid "Platform libraries" +msgstr "Выбор платформы" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Получение исходного кода" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -65890,7 +66055,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -65900,50 +66065,50 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 #, fuzzy msgid "Setting up the project" msgstr "Настройка вашего проекта" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 #, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "В дополнение к этой документации вы также можете посмотреть на различные " "`демонстрационные проекты Godot `_." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -65954,13 +66119,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -65968,18 +66133,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -65988,107 +66153,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "Создание простого плагина" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -66096,32 +66261,32 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 #, fuzzy msgid "After that, we declare a single member variable called ``time_passed``." msgstr "Чтобы начать объявлять переменные объекта понадобится:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -66132,13 +66297,13 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 #, fuzzy msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" "Давайте реализуем наши функции путём создания нашего файла``gdexample.cpp``:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -66147,7 +66312,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 #, fuzzy msgid "" "The other method of note is our ``_process`` function, which simply keeps " @@ -66167,7 +66332,7 @@ msgstr "" "скрипт. В предстоящей версии NativeScript 1.1, ``set_position`` может быть " "вызвана напрямую из нашего класса." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 #, fuzzy msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " @@ -66182,7 +66347,7 @@ msgstr "" "выше. Всё что нам нужно это небольшая часть кода, котора говорит Godot обо " "всех NativeScripts в нашем GDNative плагине." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 #, fuzzy msgid "" "Note that we are not using the ``godot`` namespace here, since the three " @@ -66192,7 +66357,7 @@ msgstr "" "три функции реализованные здесь функции должны быть объявлены без " "пространства имён." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -66201,7 +66366,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -66209,12 +66374,12 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 #, fuzzy msgid "Compiling the plugin" msgstr "Компилировать дополнение" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -66223,49 +66388,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -66275,7 +66440,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -66284,7 +66449,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -66292,20 +66457,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -66315,29 +66480,29 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 #, fuzzy msgid "Adding properties" msgstr "Это его редактируемые свойства." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -66345,32 +66510,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -66378,41 +66543,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -66420,13 +66585,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -66434,14 +66599,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -66449,17 +66614,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -66467,26 +66632,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -66494,18 +66659,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -66513,22 +66678,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -66536,7 +66701,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -66544,18 +66709,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -71576,16 +71741,16 @@ msgstr "" "SCons из всех возможных например:" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 +#, fuzzy msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" "Godot может быть скомпилирован для множества различных платформ. Все ПК " "платформы, все мобильные платформы, множество консолей, и множество веб-" "платформ (такие как HTML5 и Chrome PNACL)." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -71597,7 +71762,7 @@ msgstr "" "перенастраивать и перестраивать проект каждый раз. SCons позволяет сделать " "это без лишней головной боли, без ломания сборок." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " @@ -71607,7 +71772,7 @@ msgstr "" "конфигураций, дополнений, удалений итд. Вы имеете больше шансов умереть от " "попадания молнии чем нужды в очистке и перестройке SCons." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -71621,9 +71786,10 @@ msgstr "" "которая может бы легко написана на подходящем языке программирования " "(например Python) чем использовать язык с макросами нужным только для сборки." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 +#, fuzzy msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" @@ -71631,7 +71797,7 @@ msgstr "" "платформа имеет специфический процесс обнаружения, и все они должны быть " "обработаны в специальном коде написанном для каждого." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." @@ -71639,7 +71805,7 @@ msgstr "" "Так что, пожалуйста имейте это ввиду и постарайтесь изучить это лучше если " "вы хотите собирать Godot самостоятельно." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -71651,7 +71817,7 @@ msgstr "" "`doc_compiling_for_uwp`, :ref:`doc_compiling_for_web`, :ref:" "`doc_compiling_for_windows` и :ref:`doc_compiling_for_x11`." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " @@ -71662,11 +71828,11 @@ msgstr "" "установок, вместо стандартной командного терминала Windows для ввода команд " "ниже." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "Выбор платформы" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -71678,31 +71844,33 @@ msgstr "" "доступных платформ. Требования сборки для каждой из платформ будут описаны в " "оставшейся части руководства." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "SCons вызывается простым вызовом ``scons``." - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -"Хотя, не произойдёт ничего кроме показа списка доступных платформ, например:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 +#, fuzzy msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" "Для сборки под платформу (например, x11), добавьте аргумент ``platform=`` " "(или просто ``p=`` для краткости):" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 +#, fuzzy msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" "Это запустит процесс сборки, который займёт время. Если вы хотите чтобы " "scons строил быстрее, используйте параметр ``-j <числ ядер>`` для " @@ -71710,27 +71878,29 @@ msgstr "" "просто оставьте использовать одно ядро, зато вы сможете использовать " "компьютер для чего-то другого :)" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "Например для использования 4 ядер:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "Полученный бинарный файл" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 +#, fuzzy msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" "Полученные исполняемые файлы помещаются в под-директорию bin/, и называются " "в соответствии с данными правилами наименования:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +#, fuzzy +msgid "For the previous build attempt, the result would look like this::" msgstr "Для предыдущего примера сборки результат будет выглядеть так:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." @@ -71739,13 +71909,15 @@ msgstr "" "инструменты (целый редактор) скомпилированный с ним, и нацелен на 64 битную " "платформу." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +#, fuzzy +msgid "A Windows binary with the same configuration will look like this::" msgstr "Бинарный файл для Windows с той же конфигурацией будет выглядеть так." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 +#, fuzzy msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, или вы можете построить их самостоятельно)." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." @@ -71765,7 +71937,7 @@ msgstr "" "Помимо этого, есть несколько стандартных параметров для установки во всех " "целях сборки, и которые будут описаны ниже." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " @@ -71776,15 +71948,15 @@ msgstr "" "бинарный файл который годится для запуска проектов но не включает в себя " "редактор или менеджер проектов." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "Цель" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "Цель контролирует оптимизации и флаги отладки. Каждый режим означает:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." @@ -71792,42 +71964,45 @@ msgstr "" "**debug**: Сборка с символами отладки C++, включенными проверками во время " "выполнения (выполняет проверки и сообщает об ошибках) и без оптимизации." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 +#, fuzzy msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" "**release_debug**: Сборка без символов отладки C++ и оптимизации, но " "сохраняет проверку во время выполнения (проверки и сообщения об ошибках). " "Официальные бинарные файлы используют эту конфигурацию." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#, fuzzy msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" "**release**: Сборка без символов, с оптимизацией и практически без проверок " "времени выполнения. Эта цель не может быть использована с tools=yes, так как " "инструменты требуют некоторой отладочной функциональности и проверок во " "время выполнения." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 +#, fuzzy msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" "Этот флаг добавляет суффикс \".debug\" (для отладки), или \".tools\" (для " "отладки с включенными инструментами). Когда оптимизация включена (релиз) " "добавляется суффикс \".opt\"." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "Биты" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." @@ -71836,37 +72011,35 @@ msgstr "" "исполняемых файлов. Они сделаны преимущественно для десктопных платформ и " "игнорируются где-то ещё." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +#, fuzzy +msgid "**32**: Build binaries for 32-bit platforms." msgstr "**32**: Строит бинарные файлы для 32-битной платформы." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#, fuzzy +msgid "**64**: Build binaries for 64-bit platforms." msgstr "**64**: Строит бинарные файлы для 64-битной платформы." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 -msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" -"**default**: Отдаёт выбор на усмотрение системе сборки. На Linux это зависит " -"от запускаемой платформы (если не кросс-компиляция), на Mac это 64-бит, а на " -"Windows - 32-бит." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 +#, fuzzy msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" "Когда необходимо этот флаг добавляет суффиксы \".32\" или \".64\" полученным " "бинарным файлам." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "Другие параметры сборки" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " @@ -71876,7 +72049,7 @@ msgstr "" "для настройки способа сборки Godot (компилятор, опции отладки, итд.) также " "как и возможности для включения/выключения." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." @@ -71884,7 +72057,7 @@ msgstr "" "Посмотрите вывод ``scons --help`` для подробностей по этим командам для " "версии которую вы хотите скомпилировать." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -71896,29 +72069,44 @@ msgstr "" "собрать их самостоятельно (в случае если вы хотите более свежих, или вы " "хотите подключить свои модули, или просто не доверяете собственной тени)." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 +#, fuzzy msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" "Если вы загрузите официальные шаблоны экспорта и распакуете их, вы обратите " "внимание что большинство из них это просто оптимизированные бинарные файлы " "или пакеты для каждой платформы:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 +#, fuzzy msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." msgstr "" "Для создания собственных, просто следуйте инструкциями описанным для каждой " "платформы в соответствующем разделе документации. Для каждой платформы " "объясняется как создавать свой шаблон." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." +msgstr "" + #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 +#, fuzzy msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." @@ -80256,6 +80444,25 @@ msgstr "" "`Zeef Godot Engine: Курируемая директория ресурсов от Andre Schmitz `_" +#~ msgid "SCons is invoked by just calling ``scons``." +#~ msgstr "SCons вызывается простым вызовом ``scons``." + +#~ msgid "" +#~ "However, this will do nothing except list the available platforms, for " +#~ "example:" +#~ msgstr "" +#~ "Хотя, не произойдёт ничего кроме показа списка доступных платформ, " +#~ "например:" + +#~ msgid "" +#~ "**default**: Build whatever the build system feels is best. On Linux this " +#~ "depends on the host platform (if not cross compiling), on Mac it defaults " +#~ "to 64 bits and on Windows it defaults to 32 bits." +#~ msgstr "" +#~ "**default**: Отдаёт выбор на усмотрение системе сборки. На Linux это " +#~ "зависит от запускаемой платформы (если не кросс-компиляция), на Mac это " +#~ "64-бит, а на Windows - 32-бит." + #, fuzzy #~ msgid "Godot Engine" #~ msgstr "О Godot Engine" diff --git a/weblate/sk.po b/weblate/sk.po index b425838e69..80881b6356 100644 --- a/weblate/sk.po +++ b/weblate/sk.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-06-15 04:55+0000\n" "Last-Translator: Michal \n" "Language-Team: Slovak `_!" msgstr "" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" "Hlavná dokumentácia pre túto stránku je organizovaná v nasledujúcich " "sekciách:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Hlavné" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Tutoriály" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Vývoj" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Komunita" @@ -991,7 +991,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1001,7 +1001,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1048,335 +1048,335 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 msgid ":ref:`doc_android_plugin`" msgstr "" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 msgid ":ref:`doc_inspector_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 msgid ":ref:`doc_using_multiple_threads`" msgstr "" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 msgid ":ref:`doc_making_main_screen_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1386,20 +1386,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1736,7 +1736,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2681,7 +2681,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3038,7 +3038,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Signály" @@ -4027,7 +4027,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4322,11 +4322,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4424,7 +4424,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15415,7 +15415,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16771,7 +16771,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16781,24 +16781,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16806,17 +16810,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16825,27 +16829,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16853,135 +16898,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -16989,117 +17042,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17108,11 +17161,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17120,34 +17173,60 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17155,15 +17234,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17171,154 +17250,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17326,80 +17405,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21033,8 +21112,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -22869,7 +22948,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23801,7 +23880,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "" @@ -59424,153 +59503,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59578,13 +59677,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59594,30 +59693,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59625,57 +59724,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59684,28 +59785,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59716,197 +59817,250 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +msgid "Saving the resource" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -59927,7 +60081,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -59937,45 +60091,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -59986,13 +60140,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60000,18 +60154,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60020,107 +60174,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60128,31 +60282,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60163,11 +60317,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60176,7 +60330,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60187,7 +60341,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60196,13 +60350,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60211,7 +60365,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60219,11 +60373,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60232,49 +60386,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60284,7 +60438,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60293,7 +60447,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60301,20 +60455,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60324,28 +60478,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60353,32 +60507,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60386,41 +60540,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60428,13 +60582,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60442,14 +60596,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60457,17 +60611,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60475,26 +60629,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60502,18 +60656,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60521,22 +60675,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60544,7 +60698,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60552,18 +60706,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65183,12 +65337,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65196,14 +65349,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65212,20 +65365,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65233,18 +65386,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65252,164 +65405,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65417,23 +65569,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/sl.po b/weblate/sl.po index 4fd7aa2684..92a810fc2a 100644 --- a/weblate/sl.po +++ b/weblate/sl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2018-06-26 13:44+0000\n" "Last-Translator: matevž lapajne \n" "Language-Team: Slovenian `_!" msgstr "" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Skupnost" @@ -1109,7 +1109,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1119,7 +1119,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1171,342 +1171,342 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr "Animacija" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Vtičniki" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "Animacija" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animacija" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr "Animacija" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Animacija" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Animacija" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1516,20 +1516,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1866,7 +1866,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2811,7 +2811,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3168,7 +3168,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Signali" @@ -4160,7 +4160,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4455,11 +4455,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4557,7 +4557,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15559,7 +15559,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16923,7 +16923,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16933,24 +16933,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16958,17 +16962,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16977,27 +16981,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -17005,135 +17050,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17141,117 +17194,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17260,11 +17313,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17272,35 +17325,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Animacija" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17308,15 +17387,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17324,154 +17403,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17479,80 +17558,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21193,8 +21272,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -23033,7 +23112,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23965,7 +24044,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Orodja" @@ -59622,153 +59701,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59776,13 +59875,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59792,30 +59891,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59823,57 +59922,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59882,28 +59983,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59914,197 +60015,250 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +msgid "Saving the resource" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60125,7 +60279,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60135,48 +60289,48 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 #, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "Poleg te dokumentacije si boste morda tudi želeli pogledati različne `Godot " "demo projekti `_." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60187,13 +60341,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60201,18 +60355,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60221,107 +60375,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60329,31 +60483,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60364,11 +60518,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60377,7 +60531,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60388,7 +60542,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60397,13 +60551,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60412,7 +60566,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60420,11 +60574,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60433,49 +60587,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60485,7 +60639,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60494,7 +60648,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60502,20 +60656,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60525,28 +60679,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60554,32 +60708,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60587,41 +60741,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60629,13 +60783,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60643,14 +60797,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60658,17 +60812,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60676,26 +60830,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60703,18 +60857,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60722,22 +60876,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60745,7 +60899,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60753,18 +60907,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65391,12 +65545,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65404,14 +65557,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65420,20 +65573,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65441,18 +65594,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65460,164 +65613,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65625,23 +65777,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/sr_Latn.po b/weblate/sr_Latn.po index 3da9b55dfd..08a031fa01 100644 --- a/weblate/sr_Latn.po +++ b/weblate/sr_Latn.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2018-12-13 10:15+0000\n" "Last-Translator: Vojislav Bajakic \n" "Language-Team: Serbian (latin) `_!" msgstr "" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Glavna dokumentacija za sajt je podeljena na sledeća poglavlja:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Opšti deo" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Uvod / Početak" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Tutorijali" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Razvoj" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Zajednica" @@ -1086,7 +1086,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1096,7 +1096,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1148,340 +1148,340 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Kreiranje Sadržaja" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Kreiranje Sadržaja" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "Kreiranje Sadržaja" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Kreiranje Sadržaja" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Kreiranje Sadržaja" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1491,20 +1491,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1841,7 +1841,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2786,7 +2786,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3143,7 +3143,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "" @@ -4132,7 +4132,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4427,11 +4427,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4529,7 +4529,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15525,7 +15525,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16882,7 +16882,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16892,24 +16892,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16917,17 +16921,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16936,27 +16940,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16964,135 +17009,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17100,117 +17153,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17219,11 +17272,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17231,34 +17284,60 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17266,15 +17345,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17282,154 +17361,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17437,80 +17516,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21146,8 +21225,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -22983,7 +23062,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23915,7 +23994,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "" @@ -59553,153 +59632,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59707,13 +59806,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59723,30 +59822,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59754,57 +59853,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59813,28 +59914,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59845,197 +59946,251 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Kreiranje Sadržaja" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60056,7 +60211,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60066,48 +60221,48 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 #, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "Uz ovu dokumentaciju takođe možete pogledati raznorazne `Godot demo projects " "`_." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60118,13 +60273,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60132,18 +60287,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60152,107 +60307,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60260,31 +60415,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60295,11 +60450,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60308,7 +60463,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60319,7 +60474,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60328,13 +60483,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60343,7 +60498,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60351,11 +60506,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60364,49 +60519,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60416,7 +60571,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60425,7 +60580,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60433,20 +60588,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60456,28 +60611,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60485,32 +60640,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60518,41 +60673,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60560,13 +60715,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60574,14 +60729,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60589,17 +60744,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60607,26 +60762,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60634,18 +60789,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60653,22 +60808,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60676,7 +60831,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60684,18 +60839,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65318,12 +65473,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65331,14 +65485,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65347,20 +65501,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65368,18 +65522,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65387,164 +65541,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65552,23 +65705,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/sv.po b/weblate/sv.po index 871712995e..7ba92910cc 100644 --- a/weblate/sv.po +++ b/weblate/sv.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-03-28 08:40+0000\n" "Last-Translator: Toiya \n" "Language-Team: Swedish `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Dokumentationen på sidan är indelad i följande delar:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Allmänt" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Komma igång" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Guider" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Utveckling" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Community" @@ -1126,7 +1126,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1136,7 +1136,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1188,340 +1188,340 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "Skapa innehåll" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Skapa innehåll" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Skapa innehåll" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1531,20 +1531,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1881,7 +1881,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2826,7 +2826,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3183,7 +3183,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "" @@ -4172,7 +4172,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4467,11 +4467,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4569,7 +4569,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15595,7 +15595,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16953,7 +16953,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16963,24 +16963,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16988,17 +16992,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -17007,27 +17011,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -17035,135 +17080,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17171,117 +17224,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17290,11 +17343,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17302,35 +17355,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Skapa innehåll" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17338,15 +17417,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17354,154 +17433,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17509,80 +17588,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21219,8 +21298,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -23056,7 +23135,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23988,7 +24067,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "" @@ -59632,153 +59711,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59786,13 +59885,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59802,30 +59901,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59833,57 +59932,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59892,28 +59993,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59924,197 +60025,251 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Skapa innehåll" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60135,7 +60290,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60145,45 +60300,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60194,13 +60349,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60208,18 +60363,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60228,107 +60383,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60336,31 +60491,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60371,11 +60526,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60384,7 +60539,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60395,7 +60550,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60404,13 +60559,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60419,7 +60574,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60427,11 +60582,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60440,49 +60595,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60492,7 +60647,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60501,7 +60656,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60509,20 +60664,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60532,28 +60687,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60561,32 +60716,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60594,41 +60749,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60636,13 +60791,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60650,14 +60805,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60665,17 +60820,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60683,26 +60838,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60710,18 +60865,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60729,22 +60884,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60752,7 +60907,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60760,18 +60915,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65396,12 +65551,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65409,14 +65563,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65425,20 +65579,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65446,18 +65600,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65465,164 +65619,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65630,23 +65783,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/te.po b/weblate/te.po index c02817e7e2..96f1d797d8 100644 --- a/weblate/te.po +++ b/weblate/te.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-01-20 08:54+0000\n" "Last-Translator: suresh p \n" "Language-Team: Telugu `_!" msgstr "" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "ప్రధాన డాక్యుమెంటేషన్ ఈ క్రింది విభాగాలలో నిర్వహించబడినది :" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "సాధారణ" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "మొదలు పెట్టడానికి" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "ట్యుటోరియల్స్" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 #, fuzzy msgid "Development" msgstr "అభివృద్ధి పరచడం" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "సంఘం" @@ -975,7 +975,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -985,7 +985,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1037,340 +1037,340 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "కంటెంట్ ను సృష్టించడం" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "కంటెంట్ ను సృష్టించడం" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "కంటెంట్ ను సృష్టించడం" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "కంటెంట్ ను సృష్టించడం" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "కంటెంట్ ను సృష్టించడం" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1380,20 +1380,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1730,7 +1730,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2675,7 +2675,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3032,7 +3032,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "" @@ -4021,7 +4021,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4316,11 +4316,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4418,7 +4418,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15412,7 +15412,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16768,7 +16768,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16778,24 +16778,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16803,17 +16807,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -16822,27 +16826,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -16850,135 +16895,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -16986,117 +17039,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17105,11 +17158,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17117,35 +17170,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "కంటెంట్ ను సృష్టించడం" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17153,15 +17232,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17169,154 +17248,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17324,80 +17403,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21032,8 +21111,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -22869,7 +22948,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23801,7 +23880,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "" @@ -59442,153 +59521,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59596,13 +59695,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59612,30 +59711,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59643,57 +59742,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59702,28 +59803,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59734,197 +59835,251 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "కంటెంట్ ను సృష్టించడం" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -59945,7 +60100,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -59955,45 +60110,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60004,13 +60159,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60018,18 +60173,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60038,107 +60193,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60146,31 +60301,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60181,11 +60336,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60194,7 +60349,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60205,7 +60360,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60214,13 +60369,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60229,7 +60384,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60237,11 +60392,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60250,49 +60405,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60302,7 +60457,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60311,7 +60466,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60319,20 +60474,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60342,28 +60497,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60371,32 +60526,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60404,41 +60559,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60446,13 +60601,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60460,14 +60615,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60475,17 +60630,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60493,26 +60648,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60520,18 +60675,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60539,22 +60694,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60562,7 +60717,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60570,18 +60725,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65203,12 +65358,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65216,14 +65370,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65232,20 +65386,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65253,18 +65407,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65272,164 +65426,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65437,23 +65590,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/th.po b/weblate/th.po index 2238003113..8d946aa5c0 100644 --- a/weblate/th.po +++ b/weblate/th.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2018-04-17 12:41+0000\n" "Last-Translator: Poommetee Ketson \n" "Language-Team: Thai `_!" msgstr "" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "" @@ -1122,7 +1122,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1132,7 +1132,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1184,344 +1184,344 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr "ดูได้ที่ :ref:`doc_ways_to_contribute`" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "แอนดรอยด์" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "แอนดรอยด์" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "ดูได้ที่ :ref:`doc_ways_to_contribute`" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "การใช้ใน GDScript" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr "เงื่อนไข" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr "ดูได้ที่ :ref:`doc_ways_to_contribute`" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr "ดูได้ที่ :ref:`doc_ways_to_contribute`" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "การใช้ใน GDScript" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1531,20 +1531,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1881,7 +1881,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2827,7 +2827,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3184,7 +3184,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "สัญญาณ" @@ -4177,7 +4177,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4472,11 +4472,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4574,7 +4574,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15635,7 +15635,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16993,7 +16993,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -17003,24 +17003,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -17028,17 +17032,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -17047,27 +17051,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -17075,136 +17120,144 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 #, fuzzy msgid "Import options" msgstr "เงื่อนไข" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17212,117 +17265,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17331,11 +17384,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17343,35 +17396,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "เงื่อนไข" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17379,15 +17458,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17395,154 +17474,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17550,80 +17629,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21268,8 +21347,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -23105,7 +23184,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -24038,7 +24117,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "" @@ -59701,153 +59780,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59855,13 +59954,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59871,30 +59970,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59902,57 +60001,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59961,28 +60062,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59993,197 +60094,251 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "การใช้ใน GDScript" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60204,7 +60359,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60214,48 +60369,48 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 #, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "นอกจากนี้ท่านอาจสนใจเกี่ยวกับ `ตัวอย่างโปรเจกต์ `_" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60266,13 +60421,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60280,18 +60435,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60300,107 +60455,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60408,31 +60563,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60443,11 +60598,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60456,7 +60611,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60467,7 +60622,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60476,13 +60631,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60491,7 +60646,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60499,11 +60654,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60512,49 +60667,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60564,7 +60719,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60573,7 +60728,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60581,20 +60736,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60604,28 +60759,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60633,32 +60788,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60666,41 +60821,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60708,13 +60863,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60722,14 +60877,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60737,17 +60892,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60755,26 +60910,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60782,18 +60937,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60801,22 +60956,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60824,7 +60979,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60832,18 +60987,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65472,12 +65627,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65485,14 +65639,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65501,20 +65655,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65522,18 +65676,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65541,164 +65695,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65706,23 +65859,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/tr.po b/weblate/tr.po index 57d65841be..e36ba93bcb 100644 --- a/weblate/tr.po +++ b/weblate/tr.po @@ -28,7 +28,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-15 15:55+0000\n" "Last-Translator: Mehmet Akif Duba \n" "Language-Team: Turkish `_ bizlerle sohbete katıl!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Site için olan ana belgeleme, şu bölümlere tertiplendi:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Genel" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Başlarken" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Öğreticiler" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Geliştirme" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Topluluk" @@ -1205,7 +1205,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1215,7 +1215,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1268,346 +1268,346 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "Yerelleştirme" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr "Parçacıklar" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Eklentiler" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "Parçacıklar" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "İçerik Oluşturma" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr "Parçacıklar" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Animasyon" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr "Animasyon" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr "Koşul" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Animasyon" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr "Parçacıklar" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Animasyonlar" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1617,20 +1617,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1967,7 +1967,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2912,7 +2912,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3269,7 +3269,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Sinyaller" @@ -4264,7 +4264,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4559,11 +4559,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4662,7 +4662,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15673,7 +15673,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -17038,7 +17038,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -17048,24 +17048,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -17073,17 +17077,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -17092,27 +17096,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -17120,136 +17165,145 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 #, fuzzy msgid "Import options" msgstr "Koşul" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "Yerel" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17257,117 +17311,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17376,11 +17430,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17388,35 +17442,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Animasyonlar" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17424,15 +17504,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "FPS" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17440,154 +17520,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17595,80 +17675,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21316,8 +21396,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -23157,7 +23237,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -24090,7 +24170,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Araçlar" @@ -59768,153 +59848,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59922,13 +60022,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59938,30 +60038,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59969,57 +60069,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -60028,28 +60130,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -60060,197 +60162,251 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "İçerik Oluşturma" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60271,7 +60427,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60281,45 +60437,45 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60330,13 +60486,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60344,18 +60500,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60364,107 +60520,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60472,31 +60628,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60507,11 +60663,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60520,7 +60676,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60531,7 +60687,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60540,13 +60696,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60555,7 +60711,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60563,11 +60719,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60576,49 +60732,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60628,7 +60784,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60637,7 +60793,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60645,20 +60801,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60668,28 +60824,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60697,32 +60853,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60730,41 +60886,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60772,13 +60928,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60786,14 +60942,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60801,17 +60957,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60819,26 +60975,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60846,18 +61002,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60865,22 +61021,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60888,7 +61044,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60896,18 +61052,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65541,12 +65697,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65554,14 +65709,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65570,20 +65725,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65591,18 +65746,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65610,164 +65765,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65775,23 +65929,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/uk.po b/weblate/uk.po index fbd6b7357b..892b0a8bc8 100644 --- a/weblate/uk.po +++ b/weblate/uk.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-02 12:04+0000\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Основна документація на сайті складається з наступних розділів:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Загальне" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Перші кроки" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Навчальні посібники" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Розробка" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Спільнота" @@ -1227,7 +1227,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1237,7 +1237,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "Двовимірна графіка (2D)" @@ -1290,373 +1290,373 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "Локалізація" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "Затінювання" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 #, fuzzy msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`RID`" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "Робота у мережі" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr ":ref:`RID`" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "Плаґіни (додатки)" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Створення додатків" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 #, fuzzy msgid "Multi-threading" msgstr "Багаторядковий рядок" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr ":ref:`Basis `" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Як створити дані" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr ":ref:`RID`" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "Анімація" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 #, fuzzy msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`Basis `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 #, fuzzy msgid ":ref:`doc_using_servers`" msgstr ":ref:`RID`" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 #, fuzzy msgid ":ref:`doc_complying_with_licenses`" msgstr "Компіляція нашого додатка" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "Крок-за-кроком" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 #, fuzzy msgid ":ref:`doc_signals`" msgstr ":ref:`Basis `" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 #, fuzzy msgid ":ref:`doc_exporting`" msgstr ":ref:`RID`" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "Скриптинґ" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 #, fuzzy msgid "Best Practices:" msgstr "Оптимальні варіанти" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr "Організація" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr "Сповіщення" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 #, fuzzy msgid ":ref:`doc_data_preferences`" msgstr "Посилання" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 #, fuzzy msgid ":ref:`doc_logic_preferences`" msgstr "Посилання" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 #, fuzzy msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`RID`" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "Тривимірна графіка (3D)" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 #, fuzzy msgid ":ref:`doc_csg_tools`" msgstr ":ref:`Color `" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "Фізика" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 #, fuzzy msgid ":ref:`doc_ragdoll_system`" msgstr "Файлова система" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 #, fuzzy msgid ":ref:`doc_soft_body`" msgstr ":ref:`Color `" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Анімація" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 #, fuzzy msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`Color `" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr "Див. :ref:`doc_ways_to_contribute`." -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "Інтерфейс" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr ":ref:`RID`" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "Панелі перегляду" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 #, fuzzy msgid ":ref:`doc_custom_postprocessing`" msgstr "Змінні середовища" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 #, fuzzy msgid ":ref:`doc_advanced_postprocessing`" msgstr "Змінні середовища" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 #, fuzzy msgid "Shading Reference:" msgstr "Зразок" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 #, fuzzy msgid ":ref:`doc_shaders`" msgstr ":ref:`RID`" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 #, fuzzy msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`RID`" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr ":ref:`RID`" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "Віртуальна реальність (VR)" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 #, fuzzy msgid ":ref:`doc_vr_starter_tutorial`" msgstr "Відеопідручники" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Створення додатків" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 #, fuzzy msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "Створення додатків" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 #, fuzzy msgid ":ref:`doc_customizing_html5_shell`" msgstr ":ref:`Color `" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 #, fuzzy msgid ":ref:`doc_making_trees`" msgstr ":ref:`Color `" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "Різне" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 #, fuzzy msgid ":ref:`doc_running_code_in_the_editor`" msgstr "Працюємо у 32-бітовій збірці" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1666,20 +1666,20 @@ msgstr "" msgid "Compiling" msgstr "Компілювання" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -2021,7 +2021,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2970,7 +2970,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3327,7 +3327,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Сигнали" @@ -4326,7 +4326,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4624,11 +4624,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4727,7 +4727,7 @@ msgstr "Ось повний скрипт для гравця із комента #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15809,7 +15809,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "Матеріали" @@ -17182,7 +17182,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -17192,24 +17192,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -17217,17 +17221,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -17236,27 +17240,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -17264,137 +17309,146 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 #, fuzzy msgid "Import options" msgstr "Параметри імпортування" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "Випадковий масштаб" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 #, fuzzy msgid "Create a script like this:" msgstr "Створення простого додатка" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "Місце" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17402,117 +17456,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "Стиснути" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "Додаткові дані:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17521,11 +17575,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17533,35 +17587,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Анімації" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17569,15 +17649,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "Кадри за секунду" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17585,156 +17665,156 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "Кліпи" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 #, fuzzy msgid "Scene inheritance" msgstr "Успадкування" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 #, fuzzy msgid "Import hints" msgstr "Параметри імпортування" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "Вилучити вузли (-noimp)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17742,80 +17822,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21495,8 +21575,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -23342,7 +23422,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "Налаштування" @@ -24279,7 +24359,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Інструменти" @@ -60100,153 +60180,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -60254,13 +60354,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -60270,30 +60370,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -60301,57 +60401,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -60360,28 +60462,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -60392,197 +60494,253 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" -msgstr "" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +#, fuzzy +msgid "General properties" +msgstr "Властивості вузла" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +#, fuzzy +msgid "Platform libraries" +msgstr "Вибір платформи" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Як розпочати гру" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60603,7 +60761,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60613,49 +60771,49 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 #, fuzzy msgid "Setting up the project" msgstr "Налаштовування вашого проекту" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 #, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "Якщо хочете взяти участь у написанні документації, сховище її коду " "розташовано `тут `_." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60666,13 +60824,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60680,18 +60838,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60700,107 +60858,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "Створення простого додатка" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60808,31 +60966,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60843,11 +61001,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60856,7 +61014,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60867,7 +61025,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60876,13 +61034,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60891,7 +61049,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60899,12 +61057,12 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 #, fuzzy msgid "Compiling the plugin" msgstr "Компіляція нашого додатка" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60913,50 +61071,50 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 #, fuzzy msgid "Using the GDNative module" msgstr "Використання вашого модуля GDNative" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60966,7 +61124,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60975,7 +61133,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60983,20 +61141,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -61006,29 +61164,29 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 #, fuzzy msgid "Adding properties" msgstr "Властивості вузла" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -61036,32 +61194,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -61069,41 +61227,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -61111,13 +61269,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -61125,14 +61283,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -61140,17 +61298,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -61158,26 +61316,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -61185,18 +61343,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -61204,22 +61362,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -61227,7 +61385,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -61235,18 +61393,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65904,12 +66062,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65917,14 +66074,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65933,20 +66090,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65959,18 +66116,18 @@ msgstr "" "`doc_compiling_for_web`, :ref:`doc_compiling_for_windows` та :ref:" "`doc_compiling_for_x11`." -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "Вибір платформи" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65978,164 +66135,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "Призначення" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "Біти" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "Інші параметри збирання" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -66143,23 +66299,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/vi.po b/weblate/vi.po index 1467fdb2d5..270527de03 100644 --- a/weblate/vi.po +++ b/weblate/vi.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-29 19:20+0000\n" "Last-Translator: Steve Dang \n" "Language-Team: Vietnamese `_!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "Phần tài liệu chính của trang được tổ chức như sau:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "Tổng quan" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "Bắt đầu" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "Hướng dẫn" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "Nhà phát triển" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "Cộng đồng" @@ -1204,7 +1204,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1214,7 +1214,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1266,343 +1266,343 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr "Xem :ref:`doc_ways_to_contribute`." -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "Xem :ref:`doc_ways_to_contribute`." -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "Tạo nội dung" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "Từng bước" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "Hoạt ảnh" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr "Xem :ref:`doc_ways_to_contribute`." -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr "Xem :ref:`doc_ways_to_contribute`." -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "Tạo nội dung" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1612,20 +1612,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1969,7 +1969,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2914,7 +2914,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3271,7 +3271,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "Tín hiệu" @@ -4260,7 +4260,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4555,11 +4555,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4657,7 +4657,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15654,7 +15654,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -17010,7 +17010,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -17020,24 +17020,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -17045,17 +17049,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -17064,27 +17068,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -17092,135 +17137,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17228,117 +17281,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17347,11 +17400,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17359,35 +17412,61 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "Tạo nội dung" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17395,15 +17474,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17411,154 +17490,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17566,80 +17645,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21277,8 +21356,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -23114,7 +23193,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -24046,7 +24125,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "Công cụ" @@ -59690,153 +59769,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59844,13 +59943,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59860,30 +59959,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59891,57 +59990,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59950,28 +60051,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59982,197 +60083,251 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "Tạo nội dung" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60193,7 +60348,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60203,49 +60358,49 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 #, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "Ngoài bộ tài liệu này, bạn cũng có thể xem thử các dự án demo có sẵn của " "Godot `Godot demo projects `_." -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60256,13 +60411,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60270,18 +60425,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60290,107 +60445,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60398,31 +60553,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60433,11 +60588,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60446,7 +60601,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60457,7 +60612,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60466,13 +60621,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60481,7 +60636,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60489,11 +60644,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60502,49 +60657,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60554,7 +60709,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60563,7 +60718,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60571,20 +60726,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60594,28 +60749,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60623,32 +60778,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60656,41 +60811,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60698,13 +60853,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60712,14 +60867,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60727,17 +60882,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60745,26 +60900,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60772,18 +60927,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60791,22 +60946,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60814,7 +60969,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60822,18 +60977,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65459,12 +65614,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65472,14 +65626,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65488,20 +65642,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65509,18 +65663,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65528,164 +65682,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65693,23 +65846,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." diff --git a/weblate/zh_CN.po b/weblate/zh_CN.po index 40ed8eda2a..35d6d21b75 100644 --- a/weblate/zh_CN.po +++ b/weblate/zh_CN.po @@ -74,7 +74,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-07-25 07:20+0000\n" "Last-Translator: ByonkoGalilei \n" "Language-Team: Chinese (Simplified) `_ 的 ``#godotengine-doc`` 频道中和我们交流!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "该网站的文档主要是按照以下章节形式来组织的:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "常规" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "入门" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "教程" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "开发" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "社区" @@ -1210,7 +1210,7 @@ msgid "New tutorials since version 3.1" msgstr "自3.0版本以来的新教程" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "项目工作流程" @@ -1221,7 +1221,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr ":ref:`安卓自定义构建 `" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "二维" @@ -1274,392 +1274,392 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "本地化" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "着色器" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "您的第一个光色生成器系列:" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 #, fuzzy msgid ":ref:`doc_what_are_shaders`" msgstr ":ref:`着色器是什么? `" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 #, fuzzy msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr ":ref:`你的第一个画布项着色器 `" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 #, fuzzy msgid ":ref:`doc_your_first_spatial_shader`" msgstr ":ref:`你的第一个空间着色器 `" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 #, fuzzy msgid ":ref:`doc_your_second_spatial_shader`" msgstr ":ref:`你的第一个空间着色器:第2部分 `" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "网络" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 #, fuzzy msgid ":ref:`doc_webrtc`" msgstr ":ref:`导出 `" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "插件" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr ":ref:`创建安卓插件 `" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr ":ref:`空间变换轴插件 `" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "多线程" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr ":ref:`使用多重网格 `" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 msgid "Creating content" msgstr "创造内容" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 #, fuzzy msgid ":ref:`doc_procedural_geometry`" msgstr ":ref:`粒子着色器 `" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 msgid "Optimization" msgstr "优化" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 #, fuzzy msgid ":ref:`doc_using_multimesh`" msgstr ":ref:`使用多重网格 `" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 #, fuzzy msgid ":ref:`doc_using_servers`" msgstr ":ref:`使用服务器 `" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "法律相关" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 #, fuzzy msgid ":ref:`doc_complying_with_licenses`" msgstr ":ref:`遵守许可证 `" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "自3.0版本以来的新教程" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "入门教程" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 #, fuzzy msgid ":ref:`doc_signals`" msgstr ":ref:`信号 `" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 #, fuzzy msgid ":ref:`doc_exporting`" msgstr ":ref:`导出 `" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "编写脚本" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 #, fuzzy msgid ":ref:`doc_gdscript_static_typing`" msgstr ":ref:`GDscript类型 `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "最佳实践:" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 #, fuzzy msgid ":ref:`doc_introduction_best_practices`" msgstr ":ref:`简介 `" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 #, fuzzy msgid ":ref:`doc_what_are_godot_classes`" msgstr ":ref:`什么是Godot类 `" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 #, fuzzy msgid ":ref:`doc_scene_organization`" msgstr ":ref:`场景结构 `" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 #, fuzzy msgid ":ref:`doc_scenes_versus_scripts`" msgstr ":ref:`场景和脚本 `" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 #, fuzzy msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "自动加载与内部节点" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 #, fuzzy msgid ":ref:`doc_node_alternatives`" msgstr ":ref:`节点备选方案 `" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 #, fuzzy msgid ":ref:`doc_godot_interfaces`" msgstr ":ref:`Godot接口 `" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 #, fuzzy msgid ":ref:`doc_godot_notifications`" msgstr ":ref:`Godot通知 `" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 #, fuzzy msgid ":ref:`doc_data_preferences`" msgstr ":ref:`数据首选项 `" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 #, fuzzy msgid ":ref:`doc_logic_preferences`" msgstr ":ref:`逻辑首选项 `" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 #, fuzzy msgid ":ref:`doc_2d_lights_and_shadows`" msgstr ":ref:`2D灯光与阴影 `" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 #, fuzzy msgid ":ref:`doc_2d_meshes`" msgstr ":ref:`2D网格 `" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "三维" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 #, fuzzy msgid ":ref:`doc_csg_tools`" msgstr ":ref:`CSG `" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 #, fuzzy msgid ":ref:`doc_animating_thousands_of_fish`" msgstr ":ref:`doc_matrices_and_transforms`" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 #, fuzzy msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr ":ref:`使用粒子系统控制数千条鱼 `" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "物理学" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 #, fuzzy msgid ":ref:`doc_ragdoll_system`" msgstr ":ref:`布娃娃系统 `" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 #, fuzzy msgid ":ref:`doc_soft_body`" msgstr ":ref:`软体 `" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "动画" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 #, fuzzy msgid ":ref:`doc_2d_skeletons`" msgstr ":ref:`2D骨骼 `" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 #, fuzzy msgid ":ref:`doc_animation_tree`" msgstr ":ref:`动画树 `" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "GUI" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 #, fuzzy msgid ":ref:`doc_gui_containers`" msgstr ":ref:`Godot接口 `" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "视区" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 #, fuzzy msgid ":ref:`doc_viewport_as_texture`" msgstr ":ref:`使用视区作为纹理 `" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 #, fuzzy msgid ":ref:`doc_custom_postprocessing`" msgstr ":ref:`自定义后期处理 `" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 #, fuzzy msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" ":ref:`着色器简介:2D和3D水(7节视频教程) " "`" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 #, fuzzy msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr ":ref:`迁移到Godot的着色语言 `" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 #, fuzzy msgid ":ref:`doc_advanced_postprocessing`" msgstr "高级后处理" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "着色参考:" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 #, fuzzy msgid ":ref:`doc_shaders`" msgstr ":ref:`着色器 `" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 #, fuzzy msgid ":ref:`doc_shading_language`" msgstr ":ref:`着色器语言 `" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 #, fuzzy msgid ":ref:`doc_spatial_shader`" msgstr ":ref:`空间着色器 `" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 #, fuzzy msgid ":ref:`doc_canvas_item_shader`" msgstr ":ref:`画布项着色器 `" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 #, fuzzy msgid ":ref:`doc_particle_shader`" msgstr ":ref:`粒子着色器 `" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "虚拟现实" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 #, fuzzy msgid ":ref:`doc_vr_starter_tutorial`" msgstr ":ref:`虚拟现实入门教程 `" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr ":ref:`制作主屏幕插件 `" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 #, fuzzy msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr ":ref:`空间变换轴插件 `" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "特定平台" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 #, fuzzy msgid ":ref:`doc_customizing_html5_shell`" msgstr ":ref:`自定义Web导出HTML页面 `" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 #, fuzzy msgid ":ref:`doc_thread_safe_apis`" msgstr ":ref:`线程安全API `" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 #, fuzzy msgid ":ref:`doc_making_trees`" msgstr ":ref:`制作树 `" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "杂项" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 #, fuzzy msgid ":ref:`doc_jitter_stutter`" msgstr ":ref:`修复抖动和时断时续 `" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 #, fuzzy msgid ":ref:`doc_running_code_in_the_editor`" msgstr ":ref:`在编辑器中运行代码 `" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 #, fuzzy msgid ":ref:`doc_change_scenes_manually`" msgstr ":ref:`手动更改场景 `" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 #, fuzzy msgid ":ref:`doc_gles2_gles3_differences`" msgstr ":ref:`GLES2和GLES3之间的差异 `" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1669,22 +1669,22 @@ msgstr ":ref:`GLES2和GLES3之间的差异 `" msgid "Compiling" msgstr "开始编译" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 #, fuzzy msgid ":ref:`doc_optimizing_for_size`" msgstr ":ref:`根据大小优化构建 `" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 #, fuzzy msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "使用脚本加密密钥编译" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "引擎开发" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 #, fuzzy msgid ":ref:`doc_binding_to_external_libraries`" msgstr "绑定到外部库" @@ -2058,7 +2058,7 @@ msgstr "" "有很多。" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -3179,9 +3179,10 @@ msgstr "" "点的相对路径。" #: ../../docs/getting_started/step_by_step/scripting.rst:213 +#, fuzzy msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3623,7 +3624,7 @@ msgstr "只有GDScript为每一个独立的脚本创建全局变量。" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "信号" @@ -4848,8 +4849,9 @@ msgid ":ref:`Timer ` named ``MessageTimer``." msgstr ":ref:`Timer ` 命名为 ``MessageTimer`` 。" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 +#, fuzzy msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -5200,12 +5202,13 @@ msgstr "" "一种方法是使用`Button`节点的“快捷方式”属性。" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 +#, fuzzy msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" "在`HUD`场景中,选择`StartButton`并在Inspector中找到它的_Shortcut_属性。\n" @@ -5326,7 +5329,7 @@ msgstr "这是游戏角色的完整脚本,注释指出了我们做了哪些改 #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "导出模板" @@ -18416,7 +18419,7 @@ msgstr "" "exporter存储库中。" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "材质" @@ -19974,8 +19977,9 @@ msgid "DAE (COLLADA), which is currently the most mature workflow." msgstr "DAE (Collada), 它是当前最成熟的工作流程。" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 +#, fuzzy msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" "GLTF 2.0。 支持文本格式和二进制格式。 Godot已经全力支持它,但格式是新的并且一" @@ -19987,13 +19991,17 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "OBJ (Wavefront) 格式。它也完全支持, 但相当有限 (不支持支点, 骨架等)。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "只需将场景文件和纹理一起复制到项目存储库中,Godot 就可以完全导入。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " @@ -20002,11 +20010,11 @@ msgstr "" "重要的是,在输出时网格不会被骨骼变形。在使用您喜爱的三维编辑器导出之前,请确" "保骨架被重置为T型姿势或默认休闲姿势。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "为什么不用 FBX?" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -20017,17 +20025,17 @@ msgstr "" "是,这种格式需要使用 Autodesk 的封闭库,这个封闭库分发的授权条款比 Godot 更具" "有限制性。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "计划是,在未来的某个时候将使用GDNative提供二进制插件。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "从 maya 和 3DS Max 中输出 DAE 文件" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -20040,17 +20048,17 @@ msgstr "" "KhronosGroup/OpenCOLLADA/wiki/OpenCOLLADA-Tools>`__插件。 他们工作得很好,虽" "然它们并不总是与最新版本的软件保持同步更新。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "从 Blender 导出 DAE 文件" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "Blender也有内置的COLLADA,但它也是损坏的,不应该使用。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." @@ -20058,11 +20066,53 @@ msgstr "" "Godot 提供了一个 `Python插件 `__,可以更好地导出场景。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +#, fuzzy +msgid "Exporting glTF 2.0 files from Blender" +msgstr "从 Blender 导出 DAE 文件" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "从Blender导出ESCN文件" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -20073,7 +20123,7 @@ msgstr "" "godot-blender-exporter>`__。 它使用.escn文件,它是.tscn文件(Godot场景文件)的" "另一个名称,它从Blender场景中保留尽可能多的信息。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." @@ -20081,11 +20131,11 @@ msgstr "" "ESCN导出器有一个详细的 `document `__ ,描述了它的" "功能和用法。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "导入工作流程" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" @@ -20093,72 +20143,82 @@ msgstr "" "Godot 场景导入器支持对数据的导入方式进行不同的工作流程。 根据许多选项,可以通" "过以下方式导入场景:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "外部材质(默认):每种材质保存到文件资源的位置。 可以对它们进行修改。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "外部网格:每个网格被保存到不同的文件。 许多用户更喜欢直接处理网格。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "外部动画:允许修改已保存的动画并在源更改时进行合并。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "外部场景:将导入的场景的根节点分别保存为单独的场景。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 #, fuzzy msgid "Single scene: A single scene file with everything built in." msgstr "单场景:一个场景文件,内置所有内容。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "由于不同的开发人员有不同的需求, 这个导入过程是高度可定制的。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "导入选项" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "导入器有几种选项,这将在下面讨论:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "根类型" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "默认情况下,导入场景中根节点的类型为“Spatial”,但可以修改。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "根名称" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "允许为生成的根节点设置特定的名称。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +#, fuzzy +msgid "Root Scale" +msgstr "根名称" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +#, fuzzy +msgid "The scale of the root node." +msgstr "脚本的作用" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "自定义脚本" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " @@ -20167,11 +20227,11 @@ msgstr "" "可以提供导入后处理整个场景的特殊脚本。 这对于后期处理,更换材质,用几何体做些" "有趣的事情等非常有用。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "创建如下的脚本:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " @@ -20180,14 +20240,14 @@ msgstr "" "导入后函数将导入的场景作为参数(参数实际上是场景的根节点)。 必须返回将最终使用" "的场景。 它可以是不同的。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "存储" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " @@ -20196,23 +20256,23 @@ msgstr "" "默认情况下,Godot导入一个单独的场景。 此选项允许指定根节点下方的节点将分别为" "单独的场景并实例化为导入的节点。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "当然,在其他地方手动实例导入的场景也是可以的。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "位置" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "Godot 支持网格或节点中的材质。 默认情况下,材质将放置在每个节点上。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -20223,18 +20283,18 @@ msgstr "" "进行编辑。 这是因为大多数 3D 数字创作软件没有与 Godot 中的材质相同的材质选" "项。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "当材质内置时,每当源场景被修改并重新导入时,它们都会丢失。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 #, fuzzy msgid "Keep On Reimport" msgstr "保留重新导入" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " @@ -20243,94 +20303,94 @@ msgstr "" "一旦材质被编辑为使用Godot功能,导入器将保留编辑过的材质并忽略来自源场景的材" "质。 该选项仅在材质保存为文件时才存在。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "网格" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "压缩" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "使网格在网格的多个方面使用较少的精确数字以节省空间。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "这些是:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "变换矩阵(位置,旋转和缩放):32位浮点数到16位有符号整数。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "顶点:32 位浮点数到16位有符号整数。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "法线:32 位浮点数到32位无符号整数。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "切线:32 位浮点数到32位无符号整数。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "顶点色:32 位浮点数到32位无符号整数。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "UV:32 位浮点数到32位无符号整数。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "UV2:32 位浮点数到32位无符号整数。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "顶点权重:32 位浮点数到32位无符号整数。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "骨架骨骼:32 位浮点数到16位无符号整数。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "数组索引: 基于具体有多少元素的32位或16位无符号整数。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "附加信息:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "UV2 = 用于细节纹理和烘焙光照纹理的第二个 UV 通道。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." @@ -20338,7 +20398,7 @@ msgstr "" "数组索引 = 一个数字数组, 它为上面数组的每个元素编号;即, 他们的顶点和法线的数" "量。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -20350,11 +20410,11 @@ msgstr "" "常大或导入了多个覆盖大面积的网格,则压缩此网格的导入可能会导致几何图形或顶点" "间的间隙不在他们应在的位置。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "计算的切线" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -20364,7 +20424,7 @@ msgstr "" "如果要使用正常贴图的纹理,网格需要有切线阵列。 此选项可确保在源场景中不存在时" "生成这些阵列。 Godot 使用 Mikktspace 来做这件事,但最好让它们在导出器中生成。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " @@ -20373,28 +20433,56 @@ msgstr "" "网格可以存储在单独的文件(资源)中,而不是内置的。 除非有人想直接用它们建立对" "象,否则这没有多少实际用途。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "此选项用于帮助那些喜欢直接使用网格而不是场景的人。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#, fuzzy +msgid "Light Baking" +msgstr "烘焙" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#, fuzzy +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "有关在Godot中暂停的更多信息,请参阅 :ref:`doc_pausing_games`" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "外部文件" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "生成的网格和材质可以选择存储在具有场景名称的子目录中。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 #, fuzzy msgid "Animation options" msgstr "动画选项" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -20405,15 +20493,15 @@ msgstr "" "件中生成许多动画。 其他的,如3DS Max 或 Maya,需要将许多动画放入同一时间线," "或者最糟糕的情况是将每个动画放在单独的文件中。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "默认情况下启用动画导入。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "帧数" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -20423,11 +20511,11 @@ msgstr "" "大多数 3D 导出格式以秒为单位存储的动画时间线,而不是帧。 为了确保尽可能忠实地" "导入动画,请指定用于编辑它们的每秒帧数。 未能这样做可能会导致极小的抖动。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "过滤器脚本" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " @@ -20435,7 +20523,7 @@ msgid "" msgstr "" "可以用特殊的语法指定过滤器脚本, 以决定哪些轨道应保留动画。(@TODO 这需要文档)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " @@ -20444,11 +20532,11 @@ msgstr "" "默认情况下,动画保存为内置。 可以将它们保存到文件中。 这允许向动画添加自定义" "轨道并在重新导入后保留它们。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "优化" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " @@ -20457,11 +20545,11 @@ msgstr "" "导入动画时,会运行优化程序,从而大大减少动画的大小。 一般情况下,除非您怀疑动" "画可能因启用而被破坏,否则应始终启用此功能。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "片段" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " @@ -20470,22 +20558,23 @@ msgstr "" "可以将单个时间线中的多个动画指定为片段。只需指定从哪帧到哪帧(当然,不要忘记指" "定上面的FPS选项)。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "场景继承" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 +#, fuzzy msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" "在许多情况下,可能希望对导入的场景进行修改。 默认情况下,这是不可能的,因为如" "果源资源发生变化(从3D建模应用程序重新导出源.dae,.gltf,.obj文件),Godot将重" "新导入整个场景。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " @@ -20494,49 +20583,49 @@ msgstr "" "但是,可以使用 *Scene Inheritance* 进行本地修改。 试着打开导入的场景,会出现" "下面的对话框:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "在继承场景中,修改的唯一限制是:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "无法删除节点 (但可以在任何位置添加)。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "子资源无法编辑(如上所述它们将保存在外部)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "除了这些, 一切都是允许的!" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "导入提示" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "很多时候, 在编辑场景时, 导出后需要完成一些常见的任务:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "向对象添加碰撞检测" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "将对象设置为导航网格" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "删除游戏引擎中未使用的节点 (如用于建模的特定光源)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " @@ -20545,11 +20634,11 @@ msgstr "" "为了简化这一工作流程,Godot 提供了一些后缀,可以添加到3D建模软件中的对象名称" "中。 当输入时,Godot会自动检测它们并执行操作:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "删除节点 (-noimp)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." @@ -20557,11 +20646,11 @@ msgstr "" "具有此后缀的节点名称将在导入时被删除, 不管它们的类型是什么。它们不会出现在导" "入的场景中。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "创建碰撞体 (-colonly,-convcolonly)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." @@ -20569,14 +20658,14 @@ msgstr "" "选项“-col”只能用于 Mesh 节点。 如果检测到,则会添加子静态碰撞节点,使用与网格" "相同的几何体。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" "然而,通常是可视几何体对于碰撞来说太复杂或太不平滑,这最终不能很好地工作。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " @@ -20585,7 +20674,7 @@ msgstr "" "为了解决这个问题, \"-colonly\" 修饰符存在, 它将在导入时删除网格, 并创建一个 :" "ref:\"class_staticbody\" 碰撞体。这有助于将可视的网格和实际碰撞体分开。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." @@ -20593,7 +20682,7 @@ msgstr "" "选项“-convcolonly”将创建 :ref:`class_convexpolygonshape`而不是 :ref:" "`class_concavepolygonshape`。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -20604,24 +20693,24 @@ msgstr "" "撞节点的 :ref:`class_staticbody`作为子节点。 Collision节点将有一个预定义的形" "状,具体取决于Blender的空物体类型:" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "单箭头将创建 :ref:`class_rayshape '" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "方块将创建 :ref:`class_boxshape`" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "图像将创建 :ref:`class_planeshape '" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "球体 (和其他未列出的) 将创建 :ref:`class_sphereshape '" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " @@ -20630,51 +20719,51 @@ msgstr "" "为了提高Blender编辑器的可见性,用户可以在碰撞体上设置“X-Ray”选项,并在用户首" "选项/主题/ 3D视图/空物体中为它们设置不同的颜色。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "创建导航(-navmesh)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "具有此后缀的网格节点将被转换为导航网格。原始网格节点将被删除。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "创建一个车体(-车辆)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 #, fuzzy msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "具有此后缀的网格节点将被转换为导航网格。原始网格节点将被删除。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "创建一个车轮(-轮子)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 #, fuzzy msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "具有此后缀的网格节点将被转换为导航网格。原始网格节点将被删除。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "刚体 (-rigid)" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "从这个网格中创建一个刚体。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "动画循环" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " @@ -20683,7 +20772,7 @@ msgstr "" "COLLADA文档中以令牌“循环”或“循环”开头或结尾的动画片段将作为Godot动画导入,并" "设置循环标志。这是区分大小写的,不需要连字符。" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -24954,8 +25043,8 @@ msgstr "文档中标记为“virtual”的方法也可以被脚本重写。" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -27104,7 +27193,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "设置" @@ -28298,7 +28387,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "让我们再运行一次! 这次,旋转显示正常!" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "工具" @@ -71328,127 +71417,153 @@ msgstr "" msgid "GDNative C example" msgstr "GDNative C示例" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 +#, fuzzy msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" "本教程将向您介绍创建GDNative模块所需的最低要求。 这应该是您进入GDNative世界的" "起点,了解本教程的内容将有助于您理解此后的所有内容。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 +#, fuzzy msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" "在开始之前,您可以通过以下链接将源代码下载到我们将在此处描述的示例对象: " "https://github.com/GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 +#, fuzzy msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" "此示例项目还包含一个SConstruct文件,使编译更容易,但在本教程中,我们将手动执" "行操作。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 +#, fuzzy msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" ":ref:`GDNative ` 可用于创建Godot的几种类型的添加,从" "PluginScript到ARVR接口。 在本教程中,我们将介绍如何创建 :ref:`NativeScript " "` 模块。 NativeScript允许您以与编写GDScript文件类似的方式" "在C或C++中编写逻辑。 我们将创建此GDScript的C等价物:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 +#, fuzzy msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" "我们将在其他类型的GDNative模块上编写单独的教程,并在我们完成它们时解释它们的" "用途。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 msgid "Prerequisites" msgstr "先决条件" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 +#, fuzzy +msgid "Before we start you'll need a few things:" msgstr "在我们开始之前,您需要一些东西。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "Godot 3.0可执行文件" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "一个C编译器" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "此存储库的副本:https://github.com/GodotNativeTools/godot_headers" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 +msgid "A Godot executable for your target version." msgstr "" -"前两个几乎可以说明一切。 在Linux上,您可能有一个C编译器,在macOS上,最容易从" -"Mac App Store安装Xcode,而在Windows上,我们已经用MSVC 2015和2017测试了它。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +#, fuzzy +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." +msgstr "" +"`godot_headers repository `_ 的副本," + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 +#, fuzzy +msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" msgstr "" "对于3号,我们建议您在某处创建一个用于存储代码的文件夹,打开终端并将CD打开到该" "文件夹中。 然后执行:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 msgid "This will download the required files into that folder." msgstr "这会将所需文件下载到该文件夹中。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +#, fuzzy +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." msgstr "" "在此存储库中,您将找到不同的分支。 随着Godot的进化,GDNative也是如此。 除了" "ARVR在3.0和3.1之间的一次重大变化之外,为旧版本的Godot构建的GDNative模块将与较" "新版本的Godot一起使用,但不是相反。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#, fuzzy msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." msgstr "" "“godot_headers”库的主分支与Godot的主分支保持一致,因此包含GDNative类和结构定" "义,可与最新的Godot主机一起使用。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" msgstr "" -"``godot_headers``存储库的3.0分支包含可与Godot 3.0一起使用的GDNative类和结构定" -"义。 您可以通过执行以下命令克隆此分支:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " @@ -71457,54 +71572,59 @@ msgstr "" "如果您使用您自己的影响GDNative的更改从源代码构建Godot,您可以在" "`` / modules / gdnative / include`中找到更新的类和结构定义" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "我们的C源" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 +#, fuzzy msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" "让我们从编写主代码开始。 理想情况下,我们希望最终得到一个类似于下面的文件结" "构:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 #, fuzzy msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" "打开Godot并创建一个名为simple的新项目。 这将创建简单的文件夹和project.godot文" "件。 然后在此文件夹中手动创建bin和src子文件夹。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 #, fuzzy msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" "我们首先看一下simple.c文件包含的内容。 现在,对于我们的示例,我们在制作一个没" "有标题的单个C源文件,以保持简单。 一旦开始编写更大的项目,建议您将项目分解为" "多个文件。 但是,这超出了本教程的范围。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 +#, fuzzy msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" "我们将逐位查看源代码,因此下面的所有部分都应该放在一个大文件中。 我会在添加它" "时解释每个部分。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#, fuzzy msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." @@ -71513,7 +71633,7 @@ msgstr "" "支持大型集合,用于回调主Godot可执行文件的函数。 为了让您的模块能够访问这些函" "数,GDNative为您的应用程序提供了一个包含指向所有这些函数的指针的结构。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -71523,7 +71643,7 @@ msgstr "" "为了保持这种实现模块化和易于扩展,核心功能可直接通过“核心”API结构提供,但其他" "功能有自己的“GDNative结构”,可通过扩展访问。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." @@ -71531,7 +71651,7 @@ msgstr "" "在我们的示例中,我们访问其中一个扩展,以获取对NativeScript特别需要的函数的访" "问权限。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -71545,36 +71665,38 @@ msgstr "" "NativeScript实例时,将调用库给定的构造函数。 当该实例被销毁时,将执行给定的析" "构函数。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 +#, fuzzy msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" "这些是我们将为对象实现的函数的前向声明。 需要构造函数和析构函数。 此外,该对" "象将有一个名为get_data的方法。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#, fuzzy msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" "接下来是Godot在加载动态库时会调用的第一个入口点。 这些方法都以Godot为前缀(您" "可以稍后更改),然后是其名称。 ``gdnative_init``是一个初始化动态库的函数。 " "Godot会给它一个指向结构的指针,该结构包含我们可能会发现有用的各种信息,其中指" "向我们的API结构的指针。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "对于任何其他API结构,我们需要遍历扩展数组并检查扩展的类型。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -71585,22 +71707,24 @@ msgstr "" "时,Godot将卸载库。 在这里,您可以进行任何需要清理的清理工作。 对于我们的示" "例,我们只是要清除我们的API指针。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 +#, fuzzy msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" "最后我们有 ``nativescript_init`` 这是我们今天需要的最重要的功能。 Godot会调用" "此函数作为加载GDNative库的一部分,并向Godot传达我们向Godot提供的对象。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 +#, fuzzy msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" @@ -71609,16 +71733,18 @@ msgstr "" "们“继承”的对象类型,这不是真正的继承,但它足够接近。 最后,我们的第四个和第五" "个参数是我们的构造函数和析构函数的描述。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 +#, fuzzy msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" "然后我们通过为我们类的每个方法调用 ``nativescript_register_method`` 来告诉" "Godot我们的方法(在这种情况下我们的方法)。 在我们的示例中,那只是 " @@ -71626,17 +71752,19 @@ msgstr "" "象类的名称。 第三个是我们函数的名称,因为它将为GDScript所知。 第四是我们的属" "性设置。 第五个也是最后一个参数是调用方法时要调用的函数的描述。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#, fuzzy msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" "描述包含函数本身的函数指针。 这些结构中的其他两个字段用于指定每个方法的" "userdata。 ``method_data``字段中的值将作为``p_method_data``参数在每次函数调用" @@ -71645,7 +71773,7 @@ msgstr "" "包含一个指向一个释放该内存的函数的指针。 当脚本本身(不是实例!)被卸载时(通常" "在库卸载时),调用该自由函数。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " @@ -71654,7 +71782,7 @@ msgstr "" "现在,是时候开始处理我们对象的功能了。 首先,我们定义一个结构,用于存储" "GDNative类实例的成员数据。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -71666,7 +71794,7 @@ msgstr "" "些数据填充它。 请注意,我们使用Godot的内存函数,以便跟踪内存,然后将指针返回" "到我们的新结构。 如果实例化多个对象,则此指针将充当我们的实例标识符。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " @@ -71675,15 +71803,16 @@ msgstr "" "该指针将作为名为 ``p_user_data`` 的参数传递给与我们的对象相关的任何函数,并且" "可以用于标识我们的实例并访问其成员数据。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "当Godot完成我们的对象时,我们会调用析构函数,并释放实例的成员数据。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 +#, fuzzy msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." @@ -71692,7 +71821,7 @@ msgstr "" "数据,这是一个字符串,我们首先需要将我们的C字符串转换为Godot字符串对象,然后" "将该字符串对象复制到我们返回的变量中。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -71708,238 +71837,307 @@ msgstr "" "漏,因为ref-count永远不会为零,并且内存永远不会被释放。 返回的变体会被Godot自" "动销毁。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 +#, fuzzy msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" "(在更复杂的操作中,可能会混淆跟踪哪个值需要被释放,哪些不需要。一般来说:当调" "用C++析构函数时调用godot_XXX_destroy。字符串析构函数将在C++之后调用 Variant已" "创建,因此在C)中也是如此" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "我们返回的变体由Godot自动销毁。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "这就是我们模块的完整源代码。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 #, fuzzy msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" -"如果将空白.gdignore文件添加到src文件夹,Godot将不会尝试导入编译器生成的临时文" -"件。" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 -msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" "我们现在需要编译我们的源代码。 如上所述,我们在GitHub上的示例项目包含一个" "Scons配置,它可以为您完成所有艰苦的工作,但是对于我们的教程,我们将直接调用编" "译器。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 +#, fuzzy msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" "假设您坚持上面建议的文件夹结构,最好将CD放入终端会话中的src子文件夹并从那里执" "行命令。 确保在继续之前创建bin文件夹。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "在Linux上:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "在macOS上:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "在Windows上:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 +#, fuzzy msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" "在Windows构建中,您最终还会得到一个libsimple.lib库。 这是一个可以编译到项目中" "以提供对DLL的访问的库。 我们得到它作为奖励,我们不需要它:)当导出您的游戏发布" "时,这个文件将被忽略。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "创建我们的DGNLIB文件" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 +#, fuzzy msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -"编译完模块后,我们现在需要为我们的模块创建一个gdnlib文件,我们将它们与动态库" -"放在一起。 这个文件告诉Godot什么动态库是我们模块的一部分,需要按平台加载。 在" -"撰写本教程时,仍然需要完成从Godot中进行配置的工作,现在抓住您喜欢的文本编辑" -"器,创建一个名为libsimple.gdnlib的文件,并将以下内容添加到此文件中:" +"如果将空白.gdignore文件添加到src文件夹,Godot将不会尝试导入编译器生成的临时文" +"件。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." -msgstr "该文件包含3个部分。" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 -msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." -msgstr "** general **部分包含一些信息,告诉Godot如何使用我们的模块。" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 -msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -"如果singleton为true,则自动加载库并调用名为godot_singleton_init的函数。 我们" -"将把它留给另一个教程。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 +msgid "" +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 +msgid "Start by clicking the create resource button in the Inspector:" +msgstr "首先单击属性面板中的创建资源按钮:" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +#, fuzzy +msgid "And select ``GDNativeLibrary``:" +msgstr "并选择NativeScript:" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 +msgid "" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +#, fuzzy +msgid "General properties" +msgstr "节点属性" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 +msgid "" +"In the Inspector, you have various properties to control loading the library." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +#, fuzzy +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" "如果load_once为true,则我们的库只加载一次,并且使用我们库的每个单独脚本将使用" "相同的数据。 您可以从您创建的对象的任何实例访问您全局定义的任何变量。 如果" "load_once为false,则每次脚本访问库时,都会将新的库副本加载到内存中。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +#, fuzzy msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." +msgstr "" +"如果singleton为true,则自动加载库并调用名为godot_singleton_init的函数。 我们" +"将把它留给另一个教程。" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +#, fuzzy +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" "symbol_prefix是我们核心功能的前缀。 所以Godot在godot_nativescript_init中就是" "这样。 如果您使用多个想要静态链接的GDnative库,则必须使用不同的前缀。 这又是" "一个深入了解单独教程的主题,此时只需要部署到iOS,因为这个平台不喜欢动态库。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +#, fuzzy +msgid "Platform libraries" +msgstr "平台名称。" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +#, fuzzy +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." msgstr "" "**条目**部分告诉我们每个平台和功能组合必须加载哪个动态库。 这还会通知导出器在" "导出到特定平台时需要导出哪些文件。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +#, fuzzy msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." msgstr "" "** dependencies **部分告诉Godot每个平台需要导出哪些其他文件才能使我们的库工" "作。 假设您的GDNative模块使用另一个DLL来实现第三方库的功能,这是您列出该DLL的" "位置。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "把它们放在一起" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" msgstr "" -"现在我们应该有一个有效的GDNative库,现在是时候启动Godot并使用它了。 如果在本" -"教程开始时一直创建项目后没有将其打开,请打开示例项目。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "创建我们的GDNS文件" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "获取资源" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +#, fuzzy +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." msgstr "" "通过我们的GDNLIB文件,我们告诉Godot如何加载我们的库,现在我们需要告诉它我们" "的“简单”对象类。 我们这样做是通过创建GDNS资源文件。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 -msgid "Start by clicking the create resource button in the Inspector:" -msgstr "首先单击属性面板中的创建资源按钮:" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" -msgstr "并选择NativeScript:" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +#, fuzzy +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" msgstr "" "按Create,现在属性面板将显示我们需要输入的几个字段。 在Class Name中,我们输" "入“SIMPLE”,这是我们在调用godot_nativescript_register_class时在C源代码中使用" "的对象类名。 我们还需要通过单击Library并选择Load来选择我们的GDNLIB文件:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +#, fuzzy +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" msgstr "最后点击保存图标并将其另存为bin / simple.gdns:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +#, fuzzy msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." msgstr "" "现在是时候建立我们的场景了。 将一个控制节点作为根添加到场景中并将其命名为" "main。 然后添加一个按钮和一个标签作为子节点。 将它们放在屏幕上的好地方,并为" "您的按钮命名。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +#, fuzzy +msgid "Select the control node and attach a script to it:" msgstr "选择控制节点并为控制节点创建脚本:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +#, fuzzy +msgid "Next link up the ``pressed`` signal on the button to your script:" msgstr "接下来将按钮上的按下信号链接到您的脚本:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +#, fuzzy +msgid "Don't forget to save your scene, call it ``main.tscn``." msgstr "不要忘记保存您的场景,称之为main.tscn。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +#, fuzzy +msgid "Now we can implement our ``main.gd`` code:" msgstr "现在我们可以实现main.gd代码:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 +#, fuzzy msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" "毕竟,我们的项目应该有效。 第一次运行时,Godot将询问您的主要场景是什么,然后" "选择main.tscn文件并预先输入:" @@ -71967,7 +72165,7 @@ msgstr "" "Godot中“扩展”节点的更好方法。 这相当于在GDScript中编写脚本,而是在C++中编写脚" "本。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -71981,43 +72179,45 @@ msgstr "" "个也支持Godot 3.0的C++ GDNative插件,您需要使用3.0分支和NativeScript 1.0语" "法。 我们将在这篇文章中并排展示它们。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 +#, fuzzy msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" "您可以在 `GitHub `_ 上" "下载我们将在本教程中创建的完整示例。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "设置项目" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "您需要一些先决条件:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "Godot 3.x可执行文件," -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "一个C++编译器," -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "SCons作为构建工具," -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "`godot-cpp repository `_ 的副" "本。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." @@ -72025,7 +72225,7 @@ msgstr "" "另请参阅 :ref:`编译 ` 因为构建工具与从源代码编译Godot所" "需的构建工具相同。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -72040,13 +72240,13 @@ msgstr "" "版本中运行(除了3.0和3.1之间的ARVR接口的一次重大更改),但反之亦然,因此请确保" "下载正确的分支。还要注意,您用于生成“api.json”的Godot版本将成为最低版本。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "如果您使用Git对项目进行版本控制,最好将它们添加为Git子模块:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -72056,11 +72256,11 @@ msgstr "" "如果您决定只下载存储库或将它们克隆到项目文件夹中,请确保文件夹布局与此处描述" "的相同,因为我们将在此处展示的代码假定项目遵循此布局。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "确保克隆递归以拉入两个存储库:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " @@ -72069,7 +72269,7 @@ msgstr "" "``godot-cpp``现在包含``godot_headers``作为嵌套子模块,如果您手动下载它们,请" "确保将 ``godot_headers`` 放在 ``godot-cpp`` 文件夹中。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -72081,7 +72281,7 @@ msgstr "" "到您的文件夹中,请确保文件夹布局与我们在此处设置的相同,因为我们将在此处展示" "的代码假定项目具有此布局。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " @@ -72089,21 +72289,21 @@ msgid "" msgstr "" "如果从介绍中指定的链接克隆示例,子模块不会自动初始化。 您需要执行以下命令:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "这会将这两个存储库克隆到您的项目文件夹中。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "构建C++绑定" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "现在我们已经下载了我们的先决条件,现在是构建C++绑定的时候了。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " @@ -72112,7 +72312,7 @@ msgstr "" "存储库包含当前Godot版本的元数据副本,但如果您需要为较新版本的Godot构建这些绑" "定,只需调用Godot可执行文件:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " @@ -72121,7 +72321,7 @@ msgstr "" "将生成的 ``api.json`` 文件放在项目文件夹中,并将``use_custom_api_file = yes " "custom_api_file = .. / api.json``添加到下面的scons命令中。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" @@ -72129,7 +72329,7 @@ msgstr "" "要生成和编译绑定,请使用此命令(根据您的操作系统将 ```` 替换为 " "``windows`` ,``x11``或``osx``):" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" @@ -72138,13 +72338,13 @@ msgstr "" "这一步将需要一段时间。 完成后,您应该有一个静态库,可以编译到您的项目中,存储" "在``godot-cpp / bin /``中。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "在将来的某个时刻,已编译的二进制文件将可用,使此步骤可选。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 #, fuzzy msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " @@ -72153,11 +72353,11 @@ msgstr "" "您可能需要在Windows上的命令中添加 ``bits=64`` 。 我们仍在努力进行更好的自动检" "测。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "创建一个简单的插件" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." @@ -72165,7 +72365,7 @@ msgstr "" "现在是构建实际插件的时候了。 我们首先创建一个空的Godot项目,我们将在其中放置" "一些文件。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." @@ -72173,7 +72373,7 @@ msgstr "" "打开Godot并创建一个新项目。 对于这个示例,我们将它放在我们的GDNative模块的文" "件夹结构中名为 ``demo`` 的文件夹中。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." @@ -72181,7 +72381,7 @@ msgstr "" "在我们的演示项目中,我们将创建一个包含名为“Main”的节点的场景,我们将其保存为 " "``main.tscn`` 。 我们稍后再回过头来看看。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." @@ -72189,7 +72389,7 @@ msgstr "" "回到顶级GDNative模块文件夹,我们还将创建一个名为 ``src`` 的子文件夹,我们将在" "其中放置源文件。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." @@ -72197,7 +72397,7 @@ msgstr "" "您现在应该在您的GDNative模块中有 ``demo`` ,``godot-cpp``, " "``godot_headers`` 和``src``目录。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" @@ -72205,7 +72405,7 @@ msgstr "" "在 ``src`` 文件夹中,我们将首先为我们将要创建的GDNative节点创建头文件。 我们" "将它命名为``gdexample.h``:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -72216,14 +72416,14 @@ msgstr "" "后,我们包含 ``Sprite.hpp`` ,它包含对Sprite类的绑定。 我们将在我们的模块中扩" "展这个类。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" "我们使用命名空间 ``godot`` ,因为GDNative中的所有内容都在此命名空间中定义。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " @@ -72233,11 +72433,11 @@ msgstr "" "副作用。 这也是NativeScript 1.1中将要改进的主要部分。 ``GODOT_CLASS`` 宏为我" "们设置了一些内部事物。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "之后,我们声明一个名为 ``time_passed`` 的成员变量。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " @@ -72246,7 +72446,7 @@ msgstr "" "在下一个块中我们定义了我们的方法,我们显然已经定义了构造函数和析构函数,但是" "还有其他两个函数可能看起来很熟悉。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -72262,11 +72462,11 @@ msgstr "" "个是我们的 ``_init`` 函数,它是在Godot正确设置我们的对象之后调用的。 即使您没" "有在其中放置任何代码,它也必须存在。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "所以,让我们通过创建 ``gdexample.cpp`` 文件来实现我们的函数:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -72278,7 +72478,7 @@ msgstr "" "``register_method`` 调用 **必须** 公开 ``_process`` 方法,否则Godot将无法使用" "它。 但是,我们不必告诉Godot我们的构造函数,析构函数和 ``_init`` 函数。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -72294,7 +72494,7 @@ msgstr "" "类; ``owner``指向我们脚本所涉及的实际Sprite节点。 在即将发布的NativeScript " "1.1中,可以在我们的类上直接调用 ``set_position`` 。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -72307,7 +72507,7 @@ msgstr "" "现了 ``GDExample`` 一样。 我们现在需要的是一小段代码,告诉Godot我们的GDNative" "插件中的所有NativeScripts。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." @@ -72315,7 +72515,7 @@ msgstr "" "请注意,我们这里没有使用 ``godot`` 命名空间,因为这里实现的三个函数需要在没有" "命名空间的情况下定义。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -72327,7 +72527,7 @@ msgstr "" "``godot_gdnative_terminate``函数。 我们在这里所做的只是解析我们的绑定模块中的" "函数来初始化它们,但您可能需要根据需要设置更多内容。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -72338,11 +72538,11 @@ msgstr "" "中调用一个函数来执行它常用的东西。 之后,我们为库中的每个类调用函数 " "``register_class`` 。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "编译插件" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -72355,7 +72555,7 @@ msgstr "" "SConstruct>` 我们已经准备好了。 我们将在后续教程中介绍如何使用这些构建文件的" "更可定制的详细示例。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 #, fuzzy msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" @@ -72365,7 +72565,7 @@ msgstr "" "这个 ``SConstruct`` 文件被编写为与最新的godot-cpp主机一起使用,您可能需要使用" "旧版本进行小的更改,或者参考Godot 3.0文档中的 ``SConstruct`` 文件。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " @@ -72374,11 +72574,11 @@ msgstr "" "一旦您下载了 ``SConstruct`` 文件,除了 ``godot-cpp`` ,``godot_headers``和" "``demo``之外,把它放在您的GDNative模块文件夹中,然后运行:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "您现在应该能够在``demo / bin / ``中找到该模块。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " @@ -72387,11 +72587,11 @@ msgstr "" "在这里,我们编译了godot-cpp和我们的gdexample库作为调试版本。 对于优化的构建," "您应该使用``target = release``开关编译它们。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "使用GDNative模块" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " @@ -72400,7 +72600,7 @@ msgstr "" "在我们跳回Godot之前,我们需要在``demo / bin /``中再创建两个文件。 两者都可以" "使用Godot编辑器创建,但直接创建它们可能会更快。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." @@ -72408,7 +72608,7 @@ msgstr "" "第一个是一个文件,让Godot知道应该为每个平台加载什么动态库,并称为 " "``gdexample.gdnlib`` 。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -72422,7 +72622,7 @@ msgstr "" "数。 这是为iPhone平台添加的,因为它不允许部署动态库,但GDNative模块是静态链接" "的。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -72434,7 +72634,7 @@ msgstr "" "置。 导出项目时,它也会导致* just *导出文件,这意味着数据包不会包含与目标平台" "不兼容的库。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -72444,14 +72644,14 @@ msgstr "" "最后, ``dependencies`` 部分允许您命名应包含的其他动态库。 当您的GDNative插件" "实现其他人的库并要求您为项目提供第三方动态库时,这一点非常重要。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" "如果您双击Godot中的 ``gdexample.gdnlib`` 文件,您会看到还有更多的选项要设置:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " @@ -72460,7 +72660,7 @@ msgstr "" "我们需要创建的第二个文件是我们添加到插件中的每个NativeScript使用的文件。 我们" "将它命名为 ``gdexample.gdns`` 用于我们的gdexample NativeScript。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -72474,7 +72674,7 @@ msgstr "" "含我们的NativeScript。 它还定义了 ``class_name`` ,它标识了我们想要使用的插件" "中的NativeScript。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" @@ -72482,7 +72682,7 @@ msgstr "" "是时候跳回Godot了。 我们在开始时加载我们创建的主场景,现在为场景添加一个" "Sprite:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " @@ -72491,15 +72691,15 @@ msgstr "" "我们要将Godot徽标指定给这个精灵作为我们的纹理,禁用 ``centered`` 属性并将我们" "的 ``gdexample.gdns`` 文件拖到精灵的 ``script`` 属性中:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "我们终于准备好运行这个项目了:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "添加属性" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -72510,7 +72710,7 @@ msgstr "" "属性,有两种方法可以执行此操作。 您可以直接绑定到成员,也可以使用setter和" "getter函数。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " @@ -72520,19 +72720,19 @@ msgstr "" "``_get_property_list`` , ``_get`` 和 ``_set`` 方法,但这远远超出了本教程的范" "围。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" "我们将从直接绑定开始检查两者。 让我们添加一个允许我们控制波浪幅度的属性。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "在我们的 ``gdexample.h`` 文件中,我们只需添加一个成员变量,如下所示:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " @@ -72541,7 +72741,7 @@ msgstr "" "在我们的 ``gdexample.cpp`` 文件中,我们需要进行一些更改,我们只会显示我们最终" "更改的方法,不要删除我们省略的行:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -72551,7 +72751,7 @@ msgstr "" "一旦您使用这些更改编译模块,您将看到已将属性添加到我们的界面。 您现在可以更改" "此属性,当您运行项目时,您将看到我们的Godot图标沿着更大的数字移动。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " @@ -72560,7 +72760,7 @@ msgstr "" "“gdexample.gdnlib”文件中的“可重新读取”(reloadable)属性必须设定为“真”,Godot编" "辑器才能自动获取到新添加的属性。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " @@ -72569,7 +72769,7 @@ msgstr "" "但是,使用该设置时要特别小心,特别是在使用工具类时,因为编辑器可能会持有对" "象,然后将脚本实例附加到对象上,这些对象由GDNative库管理。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " @@ -72578,7 +72778,7 @@ msgstr "" "让我们做同样的事情但是为了我们动画的速度并使用setter和getter函数。 我们的 " "``gdexample.h`` 头文件再次只需要几行代码:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " @@ -72587,7 +72787,7 @@ msgstr "" "这需要对我们的 ``gdexample.cpp`` 文件进行一些更改,同样我们只显示已更改的方" "法,所以不要删除我们忽略的任何内容:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." @@ -72595,7 +72795,7 @@ msgstr "" "现在,当编译项目时,我们将看到另一个名为speed的属性。 更改其值将使动画更快或" "更慢。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -72606,14 +72806,14 @@ msgstr "" "一个简单的示例,如果您想对改变的变量做出反应,那么设置器可能有充分的理由,但" "在很多情况下只需绑定变量就足够了。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" "在需要根据对象状态做出其他选择的更复杂场景中,getter和setter变得更加有用。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -72624,16 +72824,17 @@ msgstr "" "这些参数是 ``rpc_mode`` , ``usage`` , ``hint`` 和 ``hint_string`` 。 这些可" "用于进一步配置属性在Godot方面的显示和设置方式。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 +#, fuzzy msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" "现代C++编译器能够推断出类和变量类型,并允许您省略 ``register_property`` 方法" "的 ```` 部分。 然而,我们对此有过不同的经历。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -72644,11 +72845,11 @@ msgstr "" "出反应,需要在该对象上调用 ``connect`` 。 我们想不出一个摆动Godot图标的好示" "例,我们需要展示一个更完整的示例。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "但这是必需的语法:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." @@ -72656,7 +72857,7 @@ msgstr "" "请注意,如果您之前在 ``_register_methods`` 方法中注册了它,则只能调用 " "``my_method`` 。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -72666,14 +72867,14 @@ msgstr "" "让对象发出信号更为常见。 对于我们摇摆不定的Godot图标,我们会做一些愚蠢的事情" "来展示它是如何工作的。 每过一秒钟我们就会发出一个信号并传递新的位置。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" "在我们的 ``gdexample.h`` 头文件中,我们只需要定义一个新成员 ``time_emit`` :" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " @@ -72683,7 +72884,7 @@ msgstr "" "我们的构造函数中设置``time_emit = 0.0;``。 但另外两个需要改变,我们将逐一看" "待。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" @@ -72691,7 +72892,7 @@ msgstr "" "在我们的 ``_register_methods`` 方法中,我们需要声明我们的信号,我们按如下方式" "执行:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -72702,7 +72903,7 @@ msgstr "" "``register_signal`` 方法可以是一个单独的调用,首先取信号名称,然后有一对值来" "指定参数名称和每个参数的类型我们将 发送此信号。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " @@ -72711,11 +72912,11 @@ msgstr "" "对于NativeScript 1.0,我们首先构建一个字典,在其中我们告诉Godot我们将传递给信" "号的参数类型,然后注册它。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "接下来我们需要更改 ``_process`` 方法:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -72726,7 +72927,7 @@ msgstr "" "可以将参数值直接添加到 ``emit_signal`` 。在NativeScript 1.0中我们首先构建一个" "值数组,然后调用 ``emit_signal`` 。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " @@ -72736,15 +72937,15 @@ msgstr "" "上,我们找到了我们的新信号并通过按连接将其链接起来。我们在主节点上添加了一个" "脚本并实现了这样的信号:" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "每一秒我们只需将我们的位置输出到控制台。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "原生脚本1.1与原生脚本1.0" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -72755,7 +72956,7 @@ msgstr "" "有不同,我们不再使用 ``owner`` 成员来调用对象Godot一侧的方法。很多改进都隐藏" "在引擎盖下。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -72765,11 +72966,11 @@ msgstr "" "此示例仅处理简单变量和简单方法。特别是一旦开始传递对其他对象的引用,或者当您" "开始调用需要更复杂参数的方法时,NativeScript 1.1确实开始显示它的好处。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "下一步" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " @@ -72778,7 +72979,7 @@ msgstr "" "以上只是一个简单的示例,但我们希望它向您展示基础知识。 您可以在此示例的基础上" "构建完整的脚本,以使用C++控制Godot中的节点。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -77865,15 +78066,15 @@ msgstr "" "我们选择SCons优于其他替代品的原因有很多,例如:" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 +#, fuzzy msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" "Scons 能将 Godot 直接编译到各个平台上。它支持所有的 PC 平台, 所有的移动平" "台, 很多主机平台,还有一些基于Web的平台(诸如HTML和Chrome家的PNACL)。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -77884,7 +78085,7 @@ msgstr "" "构上,这往往造成了各项重复的构建命令和重建项目操作。而 SCons 可以毫不费力地完" "成这项工作,不会破坏任何平台的构建。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " @@ -77893,7 +78094,7 @@ msgstr "" "不论对项目做出多少修改、配置、增加、删除之类的事情,SCons都不会把构建工作搞" "砸。你需要通过Scons进行清理和重新构建的机会比你被闪电击中的几率还低。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -77906,16 +78107,17 @@ msgstr "" "模块)。这种复杂的构建逻辑可以通过实际的编程语言(例如Python)来轻松解决,如果使" "用基于宏的配置脚本将会非常麻烦。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 +#, fuzzy msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" "Godot 的构建过程大量使用交叉编译工具。 每个平台都有一些特定的检测过程,所有这" "些都必须作为特殊情况处理,我们为每个平台编写了必不可少的构建代码。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." @@ -77923,7 +78125,7 @@ msgstr "" "因此,如果您想要自己构建 Godot 的话,请持一个开放的态度,至少稍微熟悉一下这个" "构建系统。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -77935,7 +78137,7 @@ msgstr "" "`doc_compiling_for_uwp`, :ref:`doc_compiling_for_web`, :ref:" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " @@ -77945,11 +78147,11 @@ msgstr "" "Command Prompt for VS 2017`` 这类工具(具体命令视您安装的版本来定), 而不能直" "接使用通用的 Windows 命令提示符。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "选择构建平台" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -77960,54 +78162,59 @@ msgstr "" "测到当当前环境不支持的平台,那么这个平台将不会显示在可构建的平台列表中。 本文" "的的后续部分将介绍各个平台的构建要求。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "SCons 构建系统可通过调用 ``scons`` 命令来启动。" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" -msgstr "但是,除了列出可用的平台之外,这并不会执行任何构建任务。例如:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." +msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 +#, fuzzy msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" "我们通过传递平台参数( 添加``platform=`` 或者缩写 ``p=`` )来让 Scons 执行对应" "平台(例如 x11 )的构建任务:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 +#, fuzzy msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" "这将开始 Godot 的构建进程,需要花一段时间才能完成。 如果您希望 Scons 的构建速" "度更快,请使用 ``-j `` 参数指定构建任务要使用多少个CPU核心。 或者只是" "让它使用一个核心,这样您可以继续使用您的电脑的做其他事情 :)" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "例如启动 4 核进行构建:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "输出的程序" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 +#, fuzzy msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "构建所得到的二进制文件将被放置在 bin/ 子目录中,通常使用这种命名约定:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +#, fuzzy +msgid "For the previous build attempt, the result would look like this::" msgstr "对于上面所说的构建任务,将输出下面这样的二进制文件:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." @@ -78015,13 +78222,15 @@ msgstr "" "文件名描述了这个二进制文件是 X11 平台的、它没有进行编译优化、它带有工具功能" "(整个 Godot 编辑器)、并且它是针对64位架构进行构建的结果。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +#, fuzzy +msgid "A Windows binary with the same configuration will look like this::" msgstr "同理,同样的构建配置在 Windows 上的构建文件是这样的。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 +#, fuzzy msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__下" "载到,也可以自己构建它们)。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." @@ -78040,7 +78249,7 @@ msgstr "" "除此之外,可以在所有的构建目标中有几个标准选项可以进行设置,下面将对此进行说" "明。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " @@ -78050,15 +78259,15 @@ msgstr "" "用。 禁用工具选项后构建得到的二进制文件会更小,因为它不包括游戏编辑器和项目管" "理器功能。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "构建目标" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "构建目标控制的是编译器的调试和优化选项, 它支持这些模式:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." @@ -78066,39 +78275,42 @@ msgstr "" "**debug**: 带有C++调试符号的构建,支持运行时检查(执行检查和错误报告)同时不进" "行编译任何优化。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 +#, fuzzy msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" "**release_debug**: 不带C++调试符号和编译器优化,但保持运行时检查(执行检查和错" "误报告)。 官方发布的二进制文件就是使用这种配置进行构建的。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#, fuzzy msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" "**release**: 不带调试符号的构建,执行编译器优化,不支持有运行时检查。 该配置" "不能与``tools = yes``一起使用,因为这些工具需要一些调试功能和运行时检查才能运" "行。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 +#, fuzzy msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" "根据些选项的配置会在二进制文件名中附加 “.debug” 后缀(用于调试)或 “.tools”(用" "于启用工具的调试)。 当启用优化(发布版)时,它会附加“.opt”后缀。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "位 (bits)" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." @@ -78106,35 +78318,33 @@ msgstr "" "位选项控制的是构建结果的二进制文件指出的CPU或操作系统的版本。它是针对桌面平台" "的配置,在其他平台会被忽略掉。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +#, fuzzy +msgid "**32**: Build binaries for 32-bit platforms." msgstr "**32**: 构建支持32位系统的二进制文件。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#, fuzzy +msgid "**64**: Build binaries for 64-bit platforms." msgstr "**64**: 构建支持64位系统的二进制文件。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 -msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" -"**default**: 让构建系统选择构建它认为最合适的二进制文件。在Linux上,这取决于" -"您所使用的系统(如果不是交叉编译的话),在Mac上它默认为64位,在Windows上它默认" -"为32位。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 +#, fuzzy msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "这项配置会在构建结果的二进制文件名中添加 \".32\" 或 \".64\" 后缀。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "其他构建选项" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " @@ -78143,13 +78353,13 @@ msgstr "" "您还可以使用其他几个构建选项来配置Godot的构建方式(编译器,调试选项等)以及要包" "含/禁用的功能。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "检查``scons --help``的输出,了解您愿意编译的版本的每个选项的详细信息。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -78160,27 +78370,42 @@ msgstr "" "到。 此外,由于种种原因您可能想要自己构建您的导出模板(可能您想要构建未发布的" "新版本、您要使用模块(modules)、您不信任我们编译的包是否安全)。" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 +#, fuzzy msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" "如果您下载过官方的导出模板压缩包,解压后您会发现里面大多是各个平台通过编译优" "化二进制文件或者对应平台的软件包:" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 +#, fuzzy msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." msgstr "" "如要自己创建这些文件,只需按照该教程的各个平台的详细说明进行操作即可。 每个平" "台的教程都有介绍如何创建导出模板。" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." +msgstr "" + #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 +#, fuzzy msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up." @@ -87372,6 +87597,91 @@ msgstr "" "`Zeef Godot Engine:由Andre Schmitz撰写的精选资源目录 `_" +#~ msgid "A Godot 3.0 executable" +#~ msgstr "Godot 3.0可执行文件" + +#~ msgid "A C compiler" +#~ msgstr "一个C编译器" + +#~ msgid "" +#~ "A copy of this repository: https://github.com/GodotNativeTools/" +#~ "godot_headers" +#~ msgstr "此存储库的副本:https://github.com/GodotNativeTools/godot_headers" + +#~ msgid "" +#~ "The first two pretty much speak for themselves. On Linux, you'll likely " +#~ "have a C compiler, on macOS, it's easiest to install Xcode from the Mac " +#~ "App Store and, on Windows, we've tested this with both MSVC 2015 and 2017." +#~ msgstr "" +#~ "前两个几乎可以说明一切。 在Linux上,您可能有一个C编译器,在macOS上,最容易" +#~ "从Mac App Store安装Xcode,而在Windows上,我们已经用MSVC 2015和2017测试了" +#~ "它。" + +#~ msgid "" +#~ "The 3.0 branch of the ``godot_headers`` repository contains the GDNative " +#~ "class and structure definitions that will work with Godot 3.0. You can " +#~ "clone this branch by executing:" +#~ msgstr "" +#~ "``godot_headers``存储库的3.0分支包含可与Godot 3.0一起使用的GDNative类和结" +#~ "构定义。 您可以通过执行以下命令克隆此分支:" + +#~ msgid "Creating our GDNLIB file" +#~ msgstr "创建我们的DGNLIB文件" + +#~ msgid "" +#~ "With our module compiled we now need to create a gdnlib file for our " +#~ "module which we place alongside our dynamic libraries. This file tells " +#~ "Godot what dynamic libraries are part of our module and need to be loaded " +#~ "per platform. At the time of writing this tutorial work is still being " +#~ "done on making this configurable from within Godot so for now grab your " +#~ "favourite text editor, create a file called libsimple.gdnlib and add the " +#~ "following into this file:" +#~ msgstr "" +#~ "编译完模块后,我们现在需要为我们的模块创建一个gdnlib文件,我们将它们与动态" +#~ "库放在一起。 这个文件告诉Godot什么动态库是我们模块的一部分,需要按平台加" +#~ "载。 在撰写本教程时,仍然需要完成从Godot中进行配置的工作,现在抓住您喜欢的" +#~ "文本编辑器,创建一个名为libsimple.gdnlib的文件,并将以下内容添加到此文件" +#~ "中:" + +#~ msgid "This file contains 3 sections." +#~ msgstr "该文件包含3个部分。" + +#~ msgid "" +#~ "The **general** section contains some info that tells Godot how to use " +#~ "our module." +#~ msgstr "** general **部分包含一些信息,告诉Godot如何使用我们的模块。" + +#~ msgid "Putting it all together" +#~ msgstr "把它们放在一起" + +#~ msgid "" +#~ "Now that we should have a working GDNative library it is time to fire up " +#~ "Godot and use it. Open up the sample project if you haven't left it open " +#~ "after creating the project all the way at the beginning of this tutorial." +#~ msgstr "" +#~ "现在我们应该有一个有效的GDNative库,现在是时候启动Godot并使用它了。 如果在" +#~ "本教程开始时一直创建项目后没有将其打开,请打开示例项目。" + +#~ msgid "Creating our GDNS file" +#~ msgstr "创建我们的GDNS文件" + +#~ msgid "SCons is invoked by just calling ``scons``." +#~ msgstr "SCons 构建系统可通过调用 ``scons`` 命令来启动。" + +#~ msgid "" +#~ "However, this will do nothing except list the available platforms, for " +#~ "example:" +#~ msgstr "但是,除了列出可用的平台之外,这并不会执行任何构建任务。例如:" + +#~ msgid "" +#~ "**default**: Build whatever the build system feels is best. On Linux this " +#~ "depends on the host platform (if not cross compiling), on Mac it defaults " +#~ "to 64 bits and on Windows it defaults to 32 bits." +#~ msgstr "" +#~ "**default**: 让构建系统选择构建它认为最合适的二进制文件。在Linux上,这取决" +#~ "于您所使用的系统(如果不是交叉编译的话),在Mac上它默认为64位,在Windows上它" +#~ "默认为32位。" + #~ msgid "" #~ "This tutorial series aims to illustrate intended Godot workflows, i.e. " #~ "the \"best practices\" of defining one's game API. Godot allows for a " @@ -90989,13 +91299,6 @@ msgstr "" #~ "NativeScript 1.1的引入,它带来了许多改进。 我们将在正式发布后更新本教程," #~ "但整体结构仍然类似。" -#~ msgid "" -#~ "a copy of the `godot_headers repository `_," -#~ msgstr "" -#~ "`godot_headers repository `_ 的副本," - #~ msgid "" #~ "mkdir gdnative_cpp_example cd gdnative_cpp_example git clone --recursive -" #~ "b 3.0 https://github.com/GodotNativeTools/godot-cpp" diff --git a/weblate/zh_TW.po b/weblate/zh_TW.po index ef311547e8..412dd86044 100644 --- a/weblate/zh_TW.po +++ b/weblate/zh_TW.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-07-25 10:21+0200\n" +"POT-Creation-Date: 2019-07-29 21:34+0200\n" "PO-Revision-Date: 2019-04-29 11:44+0000\n" "Last-Translator: cnieFIT \n" "Language-Team: Chinese (Traditional) `_上的``#godotengine-doc`` 頻道和我們討論!" -#: ../../docs/index.rst:63 +#: ../../docs/index.rst:55 msgid "weblate_widget" msgstr "" -#: ../../docs/index.rst:66 +#: ../../docs/index.rst:56 msgid "" "The main documentation for the site is organized into the following sections:" msgstr "網站的主要文檔分為以下幾個部分:" -#: ../../docs/index.rst:68 +#: ../../docs/index.rst:58 msgid "General" msgstr "一般" -#: ../../docs/index.rst:76 +#: ../../docs/index.rst:66 msgid "Getting started" msgstr "入門" -#: ../../docs/index.rst:87 +#: ../../docs/index.rst:77 msgid "Tutorials" msgstr "教程" -#: ../../docs/index.rst:117 +#: ../../docs/index.rst:107 msgid "Development" msgstr "開發" -#: ../../docs/index.rst:127 +#: ../../docs/index.rst:117 msgid "Community" msgstr "社區" @@ -1128,7 +1128,7 @@ msgid "New tutorials since version 3.1" msgstr "" #: ../../docs/about/docs_changelog.rst:17 -#: ../../docs/about/docs_changelog.rst:103 +#: ../../docs/about/docs_changelog.rst:104 #: ../../docs/getting_started/workflow/index.rst:2 msgid "Project workflow" msgstr "" @@ -1138,7 +1138,7 @@ msgid ":ref:`doc_android_custom_build`" msgstr "" #: ../../docs/about/docs_changelog.rst:22 -#: ../../docs/about/docs_changelog.rst:118 ../../docs/tutorials/2d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:120 ../../docs/tutorials/2d/index.rst:2 msgid "2D" msgstr "" @@ -1190,341 +1190,341 @@ msgid ":ref:`doc_localization_using_gettext`" msgstr "" #: ../../docs/about/docs_changelog.rst:48 -#: ../../docs/about/docs_changelog.rst:154 +#: ../../docs/about/docs_changelog.rst:156 #: ../../docs/tutorials/shading/index.rst:2 msgid "Shading" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:50 msgid "Your First Shader Series:" msgstr "" -#: ../../docs/about/docs_changelog.rst:51 +#: ../../docs/about/docs_changelog.rst:52 msgid ":ref:`doc_what_are_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:52 +#: ../../docs/about/docs_changelog.rst:53 msgid ":ref:`doc_your_first_canvasitem_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:53 +#: ../../docs/about/docs_changelog.rst:54 msgid ":ref:`doc_your_first_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:54 +#: ../../docs/about/docs_changelog.rst:55 msgid ":ref:`doc_your_second_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:57 +#: ../../docs/about/docs_changelog.rst:58 #: ../../docs/tutorials/networking/index.rst:2 msgid "Networking" msgstr "" -#: ../../docs/about/docs_changelog.rst:59 +#: ../../docs/about/docs_changelog.rst:60 msgid ":ref:`doc_webrtc`" msgstr "" -#: ../../docs/about/docs_changelog.rst:62 -#: ../../docs/about/docs_changelog.rst:173 +#: ../../docs/about/docs_changelog.rst:63 +#: ../../docs/about/docs_changelog.rst:176 #: ../../docs/tutorials/plugins/index.rst:2 msgid "Plugins" msgstr "挿件" -#: ../../docs/about/docs_changelog.rst:64 +#: ../../docs/about/docs_changelog.rst:65 #, fuzzy msgid ":ref:`doc_android_plugin`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:65 +#: ../../docs/about/docs_changelog.rst:66 #, fuzzy msgid ":ref:`doc_inspector_plugins`" msgstr "Android" -#: ../../docs/about/docs_changelog.rst:68 -#: ../../docs/about/docs_changelog.rst:184 +#: ../../docs/about/docs_changelog.rst:69 +#: ../../docs/about/docs_changelog.rst:187 #: ../../docs/tutorials/threads/index.rst:2 msgid "Multi-threading" msgstr "" -#: ../../docs/about/docs_changelog.rst:70 +#: ../../docs/about/docs_changelog.rst:71 #, fuzzy msgid ":ref:`doc_using_multiple_threads`" msgstr "創建內容" -#: ../../docs/about/docs_changelog.rst:73 -#: ../../docs/about/docs_changelog.rst:189 +#: ../../docs/about/docs_changelog.rst:74 +#: ../../docs/about/docs_changelog.rst:192 #: ../../docs/tutorials/content/index.rst:2 #, fuzzy msgid "Creating content" msgstr "創建內容" -#: ../../docs/about/docs_changelog.rst:75 +#: ../../docs/about/docs_changelog.rst:76 msgid ":ref:`doc_procedural_geometry`" msgstr "" -#: ../../docs/about/docs_changelog.rst:78 +#: ../../docs/about/docs_changelog.rst:79 #: ../../docs/tutorials/optimization/index.rst:2 #, fuzzy msgid "Optimization" msgstr "動畫" -#: ../../docs/about/docs_changelog.rst:80 +#: ../../docs/about/docs_changelog.rst:81 msgid ":ref:`doc_using_multimesh`" msgstr "" -#: ../../docs/about/docs_changelog.rst:81 +#: ../../docs/about/docs_changelog.rst:82 msgid ":ref:`doc_using_servers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:84 +#: ../../docs/about/docs_changelog.rst:85 #: ../../docs/tutorials/legal/index.rst:2 msgid "Legal" msgstr "" -#: ../../docs/about/docs_changelog.rst:86 +#: ../../docs/about/docs_changelog.rst:87 msgid ":ref:`doc_complying_with_licenses`" msgstr "" -#: ../../docs/about/docs_changelog.rst:89 +#: ../../docs/about/docs_changelog.rst:90 msgid "New tutorials since version 3.0" msgstr "" -#: ../../docs/about/docs_changelog.rst:92 +#: ../../docs/about/docs_changelog.rst:93 #: ../../docs/getting_started/step_by_step/index.rst:2 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:108 msgid "Step by step" msgstr "" -#: ../../docs/about/docs_changelog.rst:94 +#: ../../docs/about/docs_changelog.rst:95 msgid ":ref:`doc_signals`" msgstr "" -#: ../../docs/about/docs_changelog.rst:95 +#: ../../docs/about/docs_changelog.rst:96 msgid ":ref:`doc_exporting`" msgstr "" -#: ../../docs/about/docs_changelog.rst:98 +#: ../../docs/about/docs_changelog.rst:99 #: ../../docs/getting_started/step_by_step/scripting.rst:4 #: ../../docs/getting_started/scripting/index.rst:2 #: ../../docs/tutorials/networking/http_request_class.rst:22 msgid "Scripting" msgstr "" -#: ../../docs/about/docs_changelog.rst:100 +#: ../../docs/about/docs_changelog.rst:101 msgid ":ref:`doc_gdscript_static_typing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:106 msgid "Best Practices:" msgstr "" -#: ../../docs/about/docs_changelog.rst:106 +#: ../../docs/about/docs_changelog.rst:108 msgid ":ref:`doc_introduction_best_practices`" msgstr "" -#: ../../docs/about/docs_changelog.rst:107 +#: ../../docs/about/docs_changelog.rst:109 msgid ":ref:`doc_what_are_godot_classes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:108 +#: ../../docs/about/docs_changelog.rst:110 msgid ":ref:`doc_scene_organization`" msgstr "" -#: ../../docs/about/docs_changelog.rst:109 +#: ../../docs/about/docs_changelog.rst:111 msgid ":ref:`doc_scenes_versus_scripts`" msgstr "" -#: ../../docs/about/docs_changelog.rst:110 +#: ../../docs/about/docs_changelog.rst:112 msgid ":ref:`doc_autoloads_versus_internal_nodes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:111 +#: ../../docs/about/docs_changelog.rst:113 msgid ":ref:`doc_node_alternatives`" msgstr "" -#: ../../docs/about/docs_changelog.rst:112 +#: ../../docs/about/docs_changelog.rst:114 msgid ":ref:`doc_godot_interfaces`" msgstr "" -#: ../../docs/about/docs_changelog.rst:113 +#: ../../docs/about/docs_changelog.rst:115 msgid ":ref:`doc_godot_notifications`" msgstr "" -#: ../../docs/about/docs_changelog.rst:114 +#: ../../docs/about/docs_changelog.rst:116 msgid ":ref:`doc_data_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:115 +#: ../../docs/about/docs_changelog.rst:117 msgid ":ref:`doc_logic_preferences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:120 +#: ../../docs/about/docs_changelog.rst:122 msgid ":ref:`doc_2d_lights_and_shadows`" msgstr "" -#: ../../docs/about/docs_changelog.rst:121 +#: ../../docs/about/docs_changelog.rst:123 msgid ":ref:`doc_2d_meshes`" msgstr "" -#: ../../docs/about/docs_changelog.rst:124 ../../docs/tutorials/3d/index.rst:2 +#: ../../docs/about/docs_changelog.rst:126 ../../docs/tutorials/3d/index.rst:2 msgid "3D" msgstr "" -#: ../../docs/about/docs_changelog.rst:126 +#: ../../docs/about/docs_changelog.rst:128 msgid ":ref:`doc_csg_tools`" msgstr "" -#: ../../docs/about/docs_changelog.rst:127 +#: ../../docs/about/docs_changelog.rst:129 msgid ":ref:`doc_animating_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:128 +#: ../../docs/about/docs_changelog.rst:130 msgid ":ref:`doc_controlling_thousands_of_fish`" msgstr "" -#: ../../docs/about/docs_changelog.rst:131 +#: ../../docs/about/docs_changelog.rst:133 #: ../../docs/tutorials/physics/index.rst:2 msgid "Physics" msgstr "" -#: ../../docs/about/docs_changelog.rst:133 +#: ../../docs/about/docs_changelog.rst:135 msgid ":ref:`doc_ragdoll_system`" msgstr "" -#: ../../docs/about/docs_changelog.rst:134 +#: ../../docs/about/docs_changelog.rst:136 msgid ":ref:`doc_soft_body`" msgstr "" -#: ../../docs/about/docs_changelog.rst:137 +#: ../../docs/about/docs_changelog.rst:139 #: ../../docs/getting_started/workflow/assets/escn_exporter/animation.rst:2 #: ../../docs/tutorials/animation/index.rst:2 #: ../../docs/development/file_formats/tscn.rst:375 msgid "Animation" msgstr "動畫" -#: ../../docs/about/docs_changelog.rst:139 +#: ../../docs/about/docs_changelog.rst:141 msgid ":ref:`doc_2d_skeletons`" msgstr "" -#: ../../docs/about/docs_changelog.rst:140 +#: ../../docs/about/docs_changelog.rst:142 msgid ":ref:`doc_animation_tree`" msgstr "" -#: ../../docs/about/docs_changelog.rst:143 ../../docs/tutorials/gui/index.rst:2 +#: ../../docs/about/docs_changelog.rst:145 ../../docs/tutorials/gui/index.rst:2 msgid "GUI" msgstr "" -#: ../../docs/about/docs_changelog.rst:145 +#: ../../docs/about/docs_changelog.rst:147 msgid ":ref:`doc_gui_containers`" msgstr "" -#: ../../docs/about/docs_changelog.rst:148 +#: ../../docs/about/docs_changelog.rst:150 #: ../../docs/tutorials/viewports/index.rst:2 #: ../../docs/tutorials/viewports/viewports.rst:4 msgid "Viewports" msgstr "" -#: ../../docs/about/docs_changelog.rst:150 +#: ../../docs/about/docs_changelog.rst:152 msgid ":ref:`doc_viewport_as_texture`" msgstr "" -#: ../../docs/about/docs_changelog.rst:151 +#: ../../docs/about/docs_changelog.rst:153 msgid ":ref:`doc_custom_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:156 +#: ../../docs/about/docs_changelog.rst:158 msgid ":ref:`doc_intro_to_shaders_water_workshop`" msgstr "" -#: ../../docs/about/docs_changelog.rst:157 +#: ../../docs/about/docs_changelog.rst:159 msgid ":ref:`doc_migrating_to_godot_shader_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:158 +#: ../../docs/about/docs_changelog.rst:160 msgid ":ref:`doc_advanced_postprocessing`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:162 msgid "Shading Reference:" msgstr "" -#: ../../docs/about/docs_changelog.rst:161 +#: ../../docs/about/docs_changelog.rst:164 msgid ":ref:`doc_shaders`" msgstr "" -#: ../../docs/about/docs_changelog.rst:162 +#: ../../docs/about/docs_changelog.rst:165 msgid ":ref:`doc_shading_language`" msgstr "" -#: ../../docs/about/docs_changelog.rst:163 +#: ../../docs/about/docs_changelog.rst:166 msgid ":ref:`doc_spatial_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:164 +#: ../../docs/about/docs_changelog.rst:167 msgid ":ref:`doc_canvas_item_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:165 +#: ../../docs/about/docs_changelog.rst:168 msgid ":ref:`doc_particle_shader`" msgstr "" -#: ../../docs/about/docs_changelog.rst:168 ../../docs/tutorials/vr/index.rst:2 +#: ../../docs/about/docs_changelog.rst:171 ../../docs/tutorials/vr/index.rst:2 msgid "VR" msgstr "" -#: ../../docs/about/docs_changelog.rst:170 +#: ../../docs/about/docs_changelog.rst:173 msgid ":ref:`doc_vr_starter_tutorial`" msgstr "" -#: ../../docs/about/docs_changelog.rst:175 +#: ../../docs/about/docs_changelog.rst:178 #, fuzzy msgid ":ref:`doc_making_main_screen_plugins`" msgstr "創建內容" -#: ../../docs/about/docs_changelog.rst:176 +#: ../../docs/about/docs_changelog.rst:179 msgid ":ref:`doc_spatial_gizmo_plugins`" msgstr "" -#: ../../docs/about/docs_changelog.rst:179 +#: ../../docs/about/docs_changelog.rst:182 #: ../../docs/tutorials/platform/index.rst:2 msgid "Platform-specific" msgstr "" -#: ../../docs/about/docs_changelog.rst:181 +#: ../../docs/about/docs_changelog.rst:184 msgid ":ref:`doc_customizing_html5_shell`" msgstr "" -#: ../../docs/about/docs_changelog.rst:186 +#: ../../docs/about/docs_changelog.rst:189 msgid ":ref:`doc_thread_safe_apis`" msgstr "" -#: ../../docs/about/docs_changelog.rst:191 +#: ../../docs/about/docs_changelog.rst:194 msgid ":ref:`doc_making_trees`" msgstr "" -#: ../../docs/about/docs_changelog.rst:194 +#: ../../docs/about/docs_changelog.rst:197 #: ../../docs/tutorials/misc/index.rst:2 msgid "Miscellaneous" msgstr "" -#: ../../docs/about/docs_changelog.rst:196 +#: ../../docs/about/docs_changelog.rst:199 msgid ":ref:`doc_jitter_stutter`" msgstr "" -#: ../../docs/about/docs_changelog.rst:197 +#: ../../docs/about/docs_changelog.rst:200 msgid ":ref:`doc_running_code_in_the_editor`" msgstr "" -#: ../../docs/about/docs_changelog.rst:198 +#: ../../docs/about/docs_changelog.rst:201 msgid ":ref:`doc_change_scenes_manually`" msgstr "" -#: ../../docs/about/docs_changelog.rst:199 +#: ../../docs/about/docs_changelog.rst:202 msgid ":ref:`doc_gles2_gles3_differences`" msgstr "" -#: ../../docs/about/docs_changelog.rst:202 -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:231 +#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:350 #: ../../docs/development/compiling/index.rst:2 #: ../../docs/development/compiling/compiling_for_windows.rst:72 #: ../../docs/development/compiling/compiling_for_x11.rst:79 @@ -1534,20 +1534,20 @@ msgstr "" msgid "Compiling" msgstr "" -#: ../../docs/about/docs_changelog.rst:204 +#: ../../docs/about/docs_changelog.rst:207 msgid ":ref:`doc_optimizing_for_size`" msgstr "" -#: ../../docs/about/docs_changelog.rst:205 +#: ../../docs/about/docs_changelog.rst:208 msgid ":ref:`doc_compiling_with_script_encryption_key`" msgstr "" -#: ../../docs/about/docs_changelog.rst:208 +#: ../../docs/about/docs_changelog.rst:211 #: ../../docs/development/cpp/index.rst:2 msgid "Engine development" msgstr "" -#: ../../docs/about/docs_changelog.rst:210 +#: ../../docs/about/docs_changelog.rst:213 msgid ":ref:`doc_binding_to_external_libraries`" msgstr "" @@ -1898,7 +1898,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/step_by_step/scenes_and_nodes.rst:29 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:90 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:110 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:46 #: ../../docs/development/file_formats/tscn.rst:26 msgid "Nodes" @@ -2843,7 +2843,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/scripting.rst:213 msgid "" "By default, the method name will contain the emitting node's name (\"Button" -"\" in this case), resulting in \"_on_[EmitterNode]_[signal_name]\". If you " +"\" in this case), resulting in ``_on_[EmitterNode]_[signal_name]``. If you " "do have the \"Make Function\" check button checked, then the editor will " "generate the function for you before setting up the connection." msgstr "" @@ -3200,7 +3200,7 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:1469 #: ../../docs/getting_started/scripting/gdscript/gdscript_styleguide.rst:196 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:164 -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:689 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:695 #: ../../docs/development/cpp/object_class.rst:211 msgid "Signals" msgstr "信號" @@ -4190,7 +4190,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:893 msgid "" -"Click on the ``ScoreLabel`` and type a number into the _Text_ field in the " +"Click on the ``ScoreLabel`` and type a number into the *Text* field in the " "Inspector. The default font for ``Control`` nodes is small and doesn't scale " "well. There is a font file included in the game assets called \"Xolonium-" "Regular.ttf\". To use this font, do the following for each of the three " @@ -4485,11 +4485,11 @@ msgstr "" #: ../../docs/getting_started/step_by_step/your_first_game.rst:1216 msgid "" -"In the ``HUD`` scene, select the ``StartButton`` and find its _Shortcut_ " +"In the ``HUD`` scene, select the ``StartButton`` and find its *Shortcut* " "property in the Inspector. Select \"New Shortcut\" and click on the " -"\"Shortcut\" item. A second _Shortcut_ property will appear. Select \"New " +"\"Shortcut\" item. A second *Shortcut* property will appear. Select \"New " "InputEventAction\" and click the new \"InputEvent\". Finally, in the " -"_Action_ property, type the name \"ui_select\". This is the default input " +"*Action* property, type the name ``ui_select``. This is the default input " "event associated with the spacebar." msgstr "" @@ -4588,7 +4588,7 @@ msgstr "" #: ../../docs/getting_started/step_by_step/exporting.rst:123 #: ../../docs/getting_started/workflow/export/exporting_projects.rst:92 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:198 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 #: ../../docs/development/compiling/compiling_with_mono.rst:158 msgid "Export templates" msgstr "" @@ -15588,7 +15588,7 @@ msgid "" msgstr "" #: ../../docs/getting_started/workflow/assets/escn_exporter/material.rst:2 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:135 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:160 #: ../../docs/tutorials/3d/using_gridmaps.rst:60 msgid "Materials" msgstr "" @@ -16947,7 +16947,7 @@ msgstr "" #: ../../docs/getting_started/workflow/assets/importing_scenes.rst:17 msgid "" -"GLTF 2.0. Both text and binary formats are supported. Godot has full support " +"glTF 2.0. Both text and binary formats are supported. Godot has full support " "for it, but the format is new and gaining traction." msgstr "" @@ -16957,24 +16957,28 @@ msgid "" "support for pivots, skeletons, etc)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:20 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:19 +msgid "ESCN, a Godot specific format that Blender can export with a plugin." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:21 msgid "" "Just copy the scene file together with the texture to the project " "repository, and Godot will do a full import." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:22 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:23 msgid "" "It is important that the mesh is not deformed by bones when exporting. Make " "sure that the skeleton is reset to its T-pose or default rest pose before " "exporting with your favorite 3D editor." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:26 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:27 msgid "Why not FBX?" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:28 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:29 msgid "" "Most game engines use the FBX format for importing 3D scenes, which is " "definitely one of the most standardized in the industry. However, this " @@ -16982,17 +16986,17 @@ msgid "" "distributed with more restrictive licensing terms than Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:33 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:34 msgid "" "The plan is, sometime in the future, to offer a binary plug-in using " "GDNative." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:36 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:37 msgid "Exporting DAE files from Maya and 3DS Max" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:38 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:39 msgid "" "Autodesk added built-in COLLADA support to Maya and 3DS Max, but it's broken " "by default and should not be used. The best way to export this format is by " @@ -17001,27 +17005,68 @@ msgid "" "up-to date with the latest version of the software." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:46 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:47 msgid "Exporting DAE files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:48 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:49 msgid "" "Blender has built-in COLLADA support too, but it's also broken and should " "not be used." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:51 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:52 msgid "" "Godot provides a `Python Plugin `__ that will do a much better job of exporting the scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:56 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:57 +msgid "Exporting glTF 2.0 files from Blender" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:59 +msgid "" +"There are three ways to export glTF files from Blender. As a glTF binary (``." +"glb`` file), glTF embedded (``.gltf`` file), and with textures (``gltf`` + " +"``.bin`` + textures)." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:62 +msgid "" +"glTF binary files are the smallest of the three options. They include the " +"mesh and textures set up in Blender. When brought into Godot the textures " +"are part of the object's material file." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:65 +msgid "" +"glTF embedded files function the same way as binary files. They don't " +"provide extra functionality in Godot, and shouldn't be used since they have " +"a larger file size." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:68 +msgid "" +"There are two reasons to use glTF with the textures separate. One is to have " +"the scene description in a text based format and the binary data in a " +"separate binary file. This can be useful for version control if you want to " +"review changes in a text based format. The second is you need the texture " +"files separate from the material file. If you don't need either of those " +"glTF binary files are fine." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +msgid "" +"Blender does not export emissive textures with the glTF file. If your model " +"uses one it must be brought in separately." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 msgid "Exporting ESCN files from Blender" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:58 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:78 msgid "" "The most powerful one, called `godot-blender-exporter `__. It uses a .escn file, which is kind " @@ -17029,135 +17074,143 @@ msgid "" "information as possible from a Blender scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:63 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 msgid "" "The ESCN exporter has a detailed `document `__ " "describing its functionality and usage." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:67 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:87 msgid "Import workflows" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:69 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:89 msgid "" "Godot scene importer allows different workflows regarding how data is " "imported. Depending on many options, it is possible to import a scene with:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:72 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:92 msgid "" "External materials (default): Where each material is saved to a file " "resource. Modifications to them are kept." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:73 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 msgid "" "External meshes: Where each mesh is saved to a different file. Many users " "prefer to deal with meshes directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:74 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:94 msgid "" "External animations: Allowing saved animations to be modified and merged " "when sources change." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:75 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 msgid "" "External scenes: Save each of the root nodes of the imported scenes as a " "separate scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:76 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:96 msgid "Single scene: A single scene file with everything built in." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:80 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 msgid "" "As different developers have different needs, this import process is highly " "customizable." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:83 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 msgid "Import options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:85 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 msgid "The importer has several options, which will be discussed below:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:93 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:113 msgid "Root Type" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:95 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:115 msgid "" "By default, the type of the root node in imported scenes is \"Spatial\", but " "this can be modified." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:98 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:118 msgid "Root Name" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:100 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 msgid "Allows setting a specific name to the generated root node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:103 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:123 +msgid "Root Scale" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 +msgid "The scale of the root node." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:128 msgid "Custom Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:105 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:130 msgid "" "A special script to process the whole scene after import can be provided. " "This is great for post processing, changing materials, doing funny stuff " "with the geometry etc." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:109 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:134 msgid "Create a script like this:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:120 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:145 msgid "" "The ``post_import`` function takes the imported scene as argument (the " "parameter is actually the root node of the scene). The scene that will " "finally be used must be returned. It can be a different one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:125 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:144 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:169 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:224 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 msgid "Storage" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:127 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:152 msgid "" "By default, Godot imports a single scene. This option allows specifying that " "nodes below the root will each be a separate scene and instanced into the " "imported one." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:131 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 msgid "" "Of course, instancing such imported scenes in other places manually works, " "too." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:138 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:163 msgid "Location" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:140 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:165 msgid "" "Godot supports materials in meshes or nodes. By default, materials will be " "put on each node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:146 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 msgid "" "Materials can be stored within the scene or in external files. By default, " "they are stored in external files so editing them is possible. This is " @@ -17165,117 +17218,117 @@ msgid "" "in Godot." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:150 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 msgid "" "When materials are built-in, they will be lost each time the source scene is " "modified and re-imported." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:154 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 msgid "Keep On Reimport" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:156 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:181 msgid "" "Once materials are edited to use Godot features, the importer will keep the " "edited ones and ignore the ones coming from the source scene. This option is " "only present if materials are saved as files." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:161 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:186 msgid "Meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:164 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:189 msgid "Compress" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:166 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 msgid "" "Makes meshes use less precise numbers for multiple aspects of the mesh in " "order to save space." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "These are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:170 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:195 msgid "" "Transform Matrix (Location, rotation, and scale) : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:171 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:196 msgid "" "Vertices : 32-bit float " "to 16-bit signed integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:172 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:197 msgid "" "Normals : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:173 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:198 msgid "" "Tangents : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:174 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:199 msgid "" "Vertex Colors : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:175 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:200 msgid "" "UV : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:176 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 msgid "" "UV2 : 32-bit float " "to 32-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:177 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:202 msgid "" "Vertex weights : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:178 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:203 msgid "" "Armature bones : 32-bit float " "to 16-bit unsigned integer." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:179 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 msgid "" "Array index : 32-bit or 16-" "bit unsigned integer based on how many elements there are." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "Additional info:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:182 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:207 msgid "" "UV2 = The second UV channel for detail textures and baked lightmap textures." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:183 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 msgid "" "Array index = An array of numbers that number each element of the arrays " "above; i.e. they number the vertices and normals." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:185 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 msgid "" "In some cases, this might lead to loss of precision, so disabling this " "option may be needed. For instance, if a mesh is very big or there are " @@ -17284,11 +17337,11 @@ msgid "" "exactly where they should be." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:191 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 msgid "Ensure Tangents" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:193 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:218 msgid "" "If textures with normal mapping are to be used, meshes need to have tangent " "arrays. This option ensures that these are generated if not present in the " @@ -17296,34 +17349,60 @@ msgid "" "them generated in the exporter." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:201 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 msgid "" "Meshes can be stored in separate files (resources) instead of built-in. This " "does not have much practical use unless one wants to build objects with them " "directly." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:204 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:229 msgid "" "This option is provided to help those who prefer working directly with " "meshes instead of scenes." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:208 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +msgid "Light Baking" +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +msgid "Whether or not the mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:237 +msgid "**Disabled:** The mesh is not used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:238 +msgid "**Enable:** The mesh is used in baked lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:239 +msgid "" +"**Gen Lightmaps:** The mesh is used in baked lightmaps, and unwraps a second " +"UV layer for lightmaps." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +msgid "For more information on light baking see :ref:`doc_baked_lightmaps`." +msgstr "" + +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:244 msgid "External Files" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:210 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:246 msgid "" "Generated meshes and materials can be optionally stored in a subdirectory " "with the name of the scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:214 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:250 msgid "Animation options" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:216 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:252 msgid "" "Godot provides many options regarding how animation data is dealt with. Some " "exporters (such as Blender) can generate many animations in a single file. " @@ -17331,15 +17410,15 @@ msgid "" "timeline or, at worst, put each animation in a separate file." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:223 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 msgid "Import of animations is enabled by default." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:226 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 msgid "FPS" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:228 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:264 msgid "" "Most 3D export formats store animation timeline in seconds instead of " "frames. To ensure animations are imported as faithfully as possible, please " @@ -17347,154 +17426,154 @@ msgid "" "result in shaky animations." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:233 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 msgid "Filter Script" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:235 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:271 msgid "" "It is possible to specify a filter script in a special syntax to decide " "which tracks from which animations should be kept. (@TODO this needs " "documentation)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:241 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 msgid "" "By default, animations are saved as built-in. It is possible to save them to " "a file instead. This allows adding custom tracks to the animations and " "keeping them after a reimport." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:245 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 msgid "Optimizer" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:247 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 msgid "" "When animations are imported, an optimizer is run, which reduces the size of " "the animation considerably. In general, this should always be turned on " "unless you suspect that an animation might be broken due to it being enabled." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:251 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:287 msgid "Clips" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:253 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:289 msgid "" "It is possible to specify multiple animations from a single timeline as " "clips. Specify from which frame to which frame each clip must be taken (and, " "of course, don't forget to specify the FPS option above)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:257 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:293 msgid "Scene inheritance" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:259 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:295 msgid "" "In many cases, it may be desired to make modifications to the imported " "scene. By default, this is not possible because if the source asset changes " -"(source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot " -"will re-import the whole scene." +"(source ``.dae``, ``.gltf``, ``.obj`` file re-exported from 3D modelling " +"app), Godot will re-import the whole scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:262 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:298 msgid "" "It is possible, however, to make local modifications by using *Scene " "Inheritance*. Try to open the imported scene and the following dialog will " "appear:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:267 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:303 msgid "In inherited scenes, the only limitations for modifications are:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:269 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:305 msgid "Nodes can't be removed (but can be added anywhere)." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:270 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 msgid "" "Sub-Resources can't be edited (save them externally as described above for " "this)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:272 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 msgid "Other than that, everything is allowed!" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:275 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:311 msgid "Import hints" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:277 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:313 msgid "" "Many times, when editing a scene, there are common tasks that need to be " "done after exporting:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:279 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 msgid "Adding collision detection to objects" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:280 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 msgid "Setting objects as navigation meshes" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:281 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 msgid "" "Deleting nodes that are not used in the game engine (like specific lights " "used for modelling)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:283 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:319 msgid "" "To simplify this workflow, Godot offers a few suffixes that can be added to " "the names of the objects in your 3D modelling software. When imported, Godot " "will detect them and perform actions automatically:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:288 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 msgid "Remove nodes (-noimp)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:290 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 msgid "" "Node names that have this suffix will be removed at import time, no matter " "what their type is. They will not appear in the imported scene." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:294 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 msgid "Create collisions (-col, -colonly, -convcolonly)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:296 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 msgid "" "Option \"-col\" will work only for Mesh nodes. If it is detected, a child " "static collision node will be added, using the same geometry as the mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:299 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 msgid "" "However, it is often the case that the visual geometry is too complex or too " "un-smooth for collisions, which ends up not working well." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:302 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:338 msgid "" "To solve this, the \"-colonly\" modifier exists, which will remove the mesh " "upon import and create a :ref:`class_staticbody` collision instead. This " "helps the visual mesh and actual collision to be separated." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:306 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 msgid "" "Option \"-convcolonly\" will create a :ref:`class_convexpolygonshape` " "instead of a :ref:`class_concavepolygonshape`." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:308 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:344 msgid "" "Option \"-colonly\" can also be used with Blender's empty objects. On " "import, it will create a :ref:`class_staticbody` with a collision node as a " @@ -17502,80 +17581,80 @@ msgid "" "depending on Blender's empty draw type:" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:315 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 msgid "Single arrow will create a :ref:`class_rayshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:316 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:352 msgid "Cube will create a :ref:`class_boxshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:317 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:353 msgid "Image will create a :ref:`class_planeshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:318 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:354 msgid "" "Sphere (and the others not listed) will create a :ref:`class_sphereshape`" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:320 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:356 msgid "" "For better visibility in Blender's editor, the user can set \"X-Ray\" option " "on collision empties and set some distinct color for them in User " "Preferences / Themes / 3D View / Empty." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:324 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:360 msgid "Create navigation (-navmesh)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:326 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:362 msgid "" "A mesh node with this suffix will be converted to a navigation mesh. " "Original Mesh node will be removed." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:330 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:366 msgid "Create a VehicleBody (-vehicle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:332 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:368 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleBody ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:335 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:371 msgid "Create a VehicleWheel (-wheel)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:337 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:373 msgid "" "A mesh node with this suffix will be imported as a child to a :ref:" "`VehicleWheel ` node." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:340 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:376 msgid "Rigid Body (-rigid)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:342 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:378 msgid "Creates a rigid body from this mesh." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:345 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:381 msgid "Animation loop (-loop, -cycle)" msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:347 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:383 msgid "" "Animation clips in the COLLADA document that start or end with the token " "\"loop\" or \"cycle\" will be imported as a Godot Animation with the loop " "flag set. This is case-sensitive and does not require a hyphen." msgstr "" -#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:351 +#: ../../docs/getting_started/workflow/assets/importing_scenes.rst:387 msgid "" "In Blender, this requires using the NLA Editor and naming the Action with " "the \"loop\" or \"cycle\" prefix or suffix." @@ -21214,8 +21293,8 @@ msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:68 msgid "" "A classic example is the :ref:`_init ` method in " -"Object. While it has no NOTIFICATION_* equivalent, the engine still calls " -"the method. Most languages (except C#) rely on it as a constructor." +"Object. While it has no ``NOTIFICATION_*`` equivalent, the engine still " +"calls the method. Most languages (except C#) rely on it as a constructor." msgstr "" #: ../../docs/getting_started/workflow/best_practices/godot_notifications.rst:73 @@ -23066,7 +23145,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 #: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/tutorials/shading/your_first_shader/your_first_canvasitem_shader.rst:21 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:40 msgid "Setup" msgstr "" @@ -23998,7 +24077,7 @@ msgid "Let's run again! This time, the rotation displays fine!" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:461 -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:133 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:126 msgid "Tools" msgstr "工具" @@ -59644,153 +59723,173 @@ msgstr "" msgid "GDNative C example" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:8 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:9 msgid "" "This tutorial will introduce you to the bare minimum required to create " "GDNative modules. This should be your starting point into the world of " -"GDNative, understanding the contents of this tutorial will help you in " +"GDNative. Understanding the contents of this tutorial will help you in " "understanding all that is to come after this." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:10 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:14 msgid "" -"Before we begin, you can download the source code to the example object " -"we'll be describing here by following this link: https://github.com/" -"GodotNativeTools/GDNative-demos/tree/master/c/SimpleDemo" +"Before we begin, you can download the source code to the example object we " +"describe below in the `GDNative-demos repository `_." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:13 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:18 msgid "" "This example project also contains a SConstruct file that makes compiling a " -"little easier but in this tutorial we'll be doing things by hand." +"little easier, but in this tutorial we'll be doing things by hand to " +"understand the process." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:15 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:22 msgid "" ":ref:`GDNative ` can be used to create several types of " -"additions to Godot, from PluginScript to ARVR interfaces. In this tutorial " -"we are going to look at creating a :ref:`NativeScript ` " -"module. NativeScript allows you to write logic in C or C++ in similar " -"fashion as you would write a GDScript file. We'll be creating the C " -"equivalent of this GDScript:" +"additions to Godot, using interfaces such as :ref:`PluginScript " +"` or :ref:`ARVRInterfaceGDNative " +"`. In this tutorial we are going to look at " +"creating a :ref:`NativeScript ` module. NativeScript " +"allows you to write logic in C or C++ in a similar fashion as you would " +"write a GDScript file. We'll be creating the C equivalent of this GDScript:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:29 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:43 msgid "" -"We'll be writing separate tutorials on the other types of GDNative modules " -"and explain what each of them is for as we go through them." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:32 -msgid "Prerequisites" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:33 -msgid "Before we start you'll need a few things." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:35 -msgid "A Godot 3.0 executable" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:36 -msgid "A C compiler" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:37 -msgid "" -"A copy of this repository: https://github.com/GodotNativeTools/godot_headers" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:39 -msgid "" -"The first two pretty much speak for themselves. On Linux, you'll likely have " -"a C compiler, on macOS, it's easiest to install Xcode from the Mac App Store " -"and, on Windows, we've tested this with both MSVC 2015 and 2017." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:41 -msgid "" -"For number 3, we suggest that you create a folder somewhere that you use to " -"store your code, open up a terminal and CD into that folder. Then execute:" +"Future tutorials will focus on the other types of GDNative modules and " +"explain when and how to use each of them." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:47 -msgid "This will download the required files into that folder." +msgid "Prerequisites" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:49 -msgid "" -"On this repository you will now find different branches. As Godot evolves, " -"so does GDNative. With the exception of one breaking change in ARVR between " -"3.0 and 3.1, GDNative modules build for older versions of Godot will work " -"with newer versions of Godot but not the other way around." +msgid "Before we start you'll need a few things:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:51 -msgid "" -"The master branch of the ``godot_headers`` repository is kept in line with " -"the master branch of Godot and thus contains the GDNative class and " -"structure definitions that will work with the latest Godot master." +msgid "A Godot executable for your target version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:53 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:52 msgid "" -"The 3.0 branch of the ``godot_headers`` repository contains the GDNative " -"class and structure definitions that will work with Godot 3.0. You can clone " -"this branch by executing:" +"A C compiler. On Linux, install ``gcc`` or ``clang`` from your package " +"manager. On macOS, you can install Xcode from the Mac App Store. On Windows, " +"you can use Visual Studio 2015 or later, or MinGW-w64." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:55 +msgid "" +"A Git clone of the `godot_headers repository `_: these are the C headers for Godot's " +"public API exposed to GDNative." msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:59 msgid "" +"For the latter, we suggest that you create a dedicated folder for this " +"GDNative example project, open a terminal in that folder and execute:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:66 +msgid "This will download the required files into that folder." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:70 +msgid "" +"If you plan to use Git for your GDNative project, you can also add " +"``godot_headers`` as a Git submodule." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:75 +msgid "" +"The ``godot_headers`` repository has different branches. As Godot evolves, " +"so does GDNative. While we try to preserve compatibility between version, " +"you should always build your GDNative module against headers matching the " +"Godot stable branch (e.g. ``3.1``) and ideally actual release (e.g. ``3.1.1-" +"stable``) that you use. GDNative modules built against older versions of the " +"Godot headers *may* work with newer versions of the engine, but not the " +"other way around." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +msgid "" +"The ``master`` branch of the ``godot_headers`` repository is kept in line " +"with the ``master`` branch of Godot and thus contains the GDNative class and " +"structure definitions that will work with the latest development builds." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +msgid "" +"If you want to write a GDNative module for a stable version of Godot, look " +"at the available Git tags (with ``git tags``) for the one matching your " +"engine version. In the ``godot_headers`` repository, such tags are prefixed " +"with ``godot-``, so you can e.g. checkout the ``godot-3.1.1-stable`` tag for " +"use with Godot 3.1.1. In your cloned repository, you can do:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:97 +msgid "" +"If a tag matching your stable release is missing for any reason, you can " +"fall back to the matching stable branch (e.g. ``3.1``), which you would also " +"check out with ``git checkout 3.1``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:101 +msgid "" "If you are building Godot from source with your own changes that impact " "GDNative, you can find the updated class and structure definition in " "``/modules/gdnative/include``" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:62 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 msgid "Our C source" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:63 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:108 msgid "" -"Let's start by writing our main code. Ideally, we want to end up with a file " -"structure that looks something like this:" +"Let's start by writing our main code. Eventually, we want to end up with a " +"file structure that looks along those lines:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:81 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:127 msgid "" -"Open up Godot and create a new project called simple. This will create the " -"``simple`` folder and ``project.godot`` file. Then manually create a ``bin`` " -"and ``src`` subfolder in this folder." +"Open up Godot and create a new project called \"simple\" alongside your " +"``godot_headers`` Git clone. This will create the ``simple`` folder and " +"``project.godot`` file. Then manually create ``bin`` and ``src`` subfolders " +"in this folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:83 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:132 msgid "" "We're going to start by having a look at what our ``simple.c`` file " "contains. Now, for our example here we're making a single C source file " "without a header to keep things simple. Once you start writing bigger " -"projects it is advisable you break your project up into multiple files. That " +"projects it is advisable to break your project up into multiple files. That " "however falls outside of the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:85 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:138 msgid "" "We'll be looking at the source code bit by bit so all the parts below should " -"all be put together into one big file. I'll explain each section as we add " -"it." +"all be put together into one big file. Each section will be explained as we " +"add it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:87 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 msgid "" -"The below code includes our header files that we need and then defines two " -"pointers to two different structs. GDNative supports a large collection for " +"The above code includes the GDNative API struct header and a standard header " +"that we will use further down for string operations. It then defines two " +"pointers to two different structs. GDNative supports a large collection of " "functions for calling back into the main Godot executable. In order for your " "module to have access to these functions, GDNative provides your application " "with a struct containing pointers to all these functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:90 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:157 msgid "" "To keep this implementation modular and easily extendable, the core " "functions are available directly through the \"core\" API struct, but " @@ -59798,13 +59897,13 @@ msgid "" "through extensions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:92 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:161 msgid "" "In our example, we access one of these extension to gain access to the " "functions specifically needed for NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:104 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:164 msgid "" "A NativeScript behaves like any other script in Godot. Because the " "NativeScript API is rather low level, it requires the library to specify " @@ -59814,30 +59913,30 @@ msgid "" "executed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:106 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:177 msgid "" "These are forward declarations for the functions we'll be implementing for " "our object. A constructor and destructor is needed. Additionally, the object " -"will have a single method called get_data." +"will have a single method called ``get_data``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 msgid "" "Next up is the first of the entry points Godot will call when our dynamic " -"library is loaded. These methods are all prefixed with Godot (you can change " -"this later on) followed by their name. ``gdnative_init`` is a function that " -"initialises our dynamic library. Godot will give it a pointer to a structure " -"that contains various bits of information we may find useful amongst which " -"the pointers to our API structures." +"library is loaded. These methods are all prefixed with ``godot_`` (you can " +"change this later on) followed by their name. ``gdnative_init`` is a " +"function that initializes our dynamic library. Godot will give it a pointer " +"to a structure that contains various bits of information we may find useful " +"among which the pointers to our API structures." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:117 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:188 msgid "" "For any additional API structures we need to loop through our extensions " "array and check the type of extension." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:135 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:207 msgid "" "Next up is ``gdnative_terminate`` which is called before the library is " "unloaded. Godot will unload the library when no object uses it anymore. " @@ -59845,57 +59944,59 @@ msgid "" "simply going to clear our API pointers." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:144 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:219 msgid "" "Finally we have ``nativescript_init`` which is the most important function " "we'll need today. This function will be called by Godot as part of loading a " -"GDNative library and communicates back to Godot what objects we make " -"available to Godot." +"GDNative library and communicates back to the engine what objects we make " +"available." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:146 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:244 msgid "" -"We first tell Godot which classes are implemented by calling " +"We first tell the engine which classes are implemented by calling " "``nativescript_register_class``. The first parameter here is the handle " "pointer given to us. The second is the name of our object class. The third " -"is the type of object in Godot that we 'inherit' from, this is not true " +"is the type of object in Godot that we 'inherit' from; this is not true " "inheritance but it's close enough. Finally, our fourth and fifth parameters " "are descriptions for our constructor and destructor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:251 msgid "" "We then tell Godot about our methods (well our one method in this case), by " "calling ``nativescript_register_method`` for each method of our class. In " "our case, that is just ``get_data``. Our first parameter is yet again our " "handle pointer. The second is again the name of the object class we're " "registering. The third is the name of our function as it will be known to " -"GDScript. The fourth is our attributes setting. The fifth and final " -"parameter is a description of which function to call when the method gets " -"called." +"GDScript. The fourth is our attributes setting (see " +"``godot_method_rpc_mode`` enum in ``godot_headers/nativescript/" +"godot_nativescript.h`` for possible values). The fifth and final parameter " +"is a description of which function to call when the method gets called." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:150 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 msgid "" -"The descriptions contain the function pointers to the functions themselves. " -"The other two fields in these structs are for specifying per-method " -"userdata. The value in the ``method_data`` field will be passed on every " -"function call as the ``p_method_data`` argument. This is useful to reuse one " -"function for different methods on possibly multiple different script-" -"classes. If the ``method_data`` value is a pointer to memory that needs to " -"be freed, the ``free_func`` field can contain a pointer to a function that " -"will free that memory. That free function gets called when the script itself " -"(not instance!) gets unloaded (so usually at library-unload time)." +"The description struct ``instance_method`` contains the function pointer to " +"the function itself as first field. The other two fields in these structs " +"are for specifying per-method userdata. The second is the ``method_data`` " +"field which is passed on every function call as the ``p_method_data`` " +"argument. This is useful to reuse one function for different methods on " +"possibly multiple different script-classes. If the ``method_data`` value is " +"a pointer to memory that needs to be freed, the third ``free_func`` field " +"can contain a pointer to a function that will free that memory. That free " +"function gets called when the script itself (not instance!) gets unloaded " +"(so usually at library-unload time)." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:173 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:271 msgid "" "Now, it's time to start working on the functions of our object. First, we " "define a structure that we use to store the member data of an instance of " "our GDNative class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:181 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:281 msgid "" "And then, we define our constructor. All we do in our constructor is " "allocate memory for our structure and fill it with some data. Note that we " @@ -59904,28 +60005,28 @@ msgid "" "identifier in case multiple objects are instantiated." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:183 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 msgid "" "This pointer will be passed to any of our functions related to our object as " "a parameter called ``p_user_data``, and can both be used to identify our " "instance and to access its member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:194 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:300 msgid "" "Our destructor is called when Godot is done with our object and we free our " "instances' member data." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:202 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 msgid "" -"And finally, we implement our get_data function. Data is always sent and " +"And finally, we implement our ``get_data`` function. Data is always sent and " "returned as variants so in order to return our data, which is a string, we " "first need to convert our C string to a Godot string object, and then copy " "that string object into the variant we are returning." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:204 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:330 msgid "" "Strings are heap-allocated in Godot, so they have a destructor which frees " "the memory. Destructors are named ``godot_TYPENAME_destroy``. When a Variant " @@ -59936,197 +60037,251 @@ msgid "" "automatically destroyed by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:206 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:339 msgid "" -"(In more complex operations it can be confusing the keep track of which " -"value needs to be deallocated and which does not. As a general rule: call " -"godot_XXX_destroy when a C++ destructor would be called instead. The String " -"destructor would be called in C++ after the Variant was created, so the same " -"is necessary in C)" +"In more complex operations it can be confusing the keep track of which value " +"needs to be deallocated and which does not. As a general rule: call " +"``godot_TYPENAME_destroy`` when a C++ destructor would be called instead. " +"The String destructor would be called in C++ after the Variant was created, " +"so the same is necessary in C." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:208 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:345 msgid "The variant we return is destroyed automatically by Godot." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:226 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 msgid "And that is the whole source code of our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:228 -msgid "" -"If you add a blank ``.gdignore`` file to the src folder, Godot will not try " -"to import the compiler-generated temporary files." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:352 msgid "" "We now need to compile our source code. As mentioned our example project on " -"GitHub contains a Scons configuration that does all the hard work for you " +"GitHub contains a SCons configuration that does all the hard work for you, " "but for our tutorial here we are going to call the compilers directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:234 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:356 msgid "" -"Assuming you are sticking to the folder structure suggested above it is best " -"to CD into the src subfolder in a terminal session and execute the commands " -"from there. Make sure to create the bin folder before you proceed." +"Assuming you are sticking to the folder structure suggested above, it is " +"best to open a terminal session in the ``src`` folder and execute the " +"commands from there. Make sure to create the ``bin`` folder before you " +"proceed." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:360 msgid "On Linux:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:243 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:367 msgid "On macOS:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:250 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:374 msgid "On Windows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:257 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:383 msgid "" -"on the Windows build you also end up with a libsimple.lib library. This is a " -"library that you can compile into a project to provide access to the DLL. We " -"get it as a bonus and we do not need it :) When exporting your game for " -"release this file will be ignored." +"On the Windows build you also end up with a ``libsimple.lib`` library. This " +"is a library that you can compile into a project to provide access to the " +"DLL. We get it as a byproduct and we do not need it :) When exporting your " +"game for release this file will be ignored." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:260 -msgid "Creating our GDNLIB file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:261 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:390 msgid "" -"With our module compiled we now need to create a gdnlib file for our module " -"which we place alongside our dynamic libraries. This file tells Godot what " -"dynamic libraries are part of our module and need to be loaded per platform. " -"At the time of writing this tutorial work is still being done on making this " -"configurable from within Godot so for now grab your favourite text editor, " -"create a file called libsimple.gdnlib and add the following into this file:" +"If you add a blank ``.gdignore`` file to the ``src`` folder, Godot will not " +"try to import the compiler-generated files. This is necessary on Windows " +"were compiled objects have the ``.obj`` extension, which is also a 3D model " +"format supported by the engine." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:283 -msgid "This file contains 3 sections." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:396 +msgid "Creating the GDNativeLibrary (``.gdnlib``) file" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:285 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:398 msgid "" -"The **general** section contains some info that tells Godot how to use our " -"module." +"With our module compiled, we now need to create a corresponding :ref:" +"`GDNativeLibrary ` resource with ``.gdnlib`` " +"extension which we place alongside our dynamic libraries. This file tells " +"Godot what dynamic libraries are part of our module and need to be loaded " +"per platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:287 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:404 msgid "" -"If singleton is true our library is automatically loaded and a function " -"called godot_singleton_init is called. We'll leave that for another tutorial." +"We can use Godot to generate this file, so open the \"simple\" project in " +"the editor." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:289 -msgid "" -"If load_once is true our library is loaded only once and each individual " -"script that uses our library will use the same data. Any variable you define " -"globally will be accessible from any instance of your object you create. If " -"load_once is false a new copy of the library is loaded into memory each time " -"a script access the library." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:291 -msgid "" -"The symbol_prefix is a prefix for our core functions. So the Godot in " -"godot_nativescript_init for instance. If you use multiple GDnative libraries " -"that you wish to statically link you'll have to use different prefixes. This " -"again is a subject to dive into deeper in a separate tutorial, it is only " -"needed at this time for deployment to iOS as this platform does not like " -"dynamic libraries." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:293 -msgid "" -"The **entry** section tells us for each platform and feature combination " -"which dynamic library has to be loaded. This also informs the exporter which " -"files need to be exported when exporting to a specific platform." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:295 -msgid "" -"The **dependencies** section tells Godot what other files need to be " -"exported for each platform in order for our library to work. Say that your " -"GDNative module uses another DLL to implement functionality from a 3rd party " -"library, this is where you list that DLL." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:298 -msgid "Putting it all together" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:299 -msgid "" -"Now that we should have a working GDNative library it is time to fire up " -"Godot and use it. Open up the sample project if you haven't left it open " -"after creating the project all the way at the beginning of this tutorial." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:302 -msgid "Creating our GDNS file" -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:303 -msgid "" -"With our GDNLIB file we've told Godot how to load our library, now we need " -"to tell it about our \"Simple\" object class. This we do by creating a GDNS " -"resource file." -msgstr "" - -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:305 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:407 msgid "Start by clicking the create resource button in the Inspector:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:309 -msgid "And select NativeScript:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:411 +msgid "And select ``GDNativeLibrary``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:313 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:415 msgid "" -"Press Create, now the inspector will show a few fields we need to enter. In " -"Class Name we enter \"SIMPLE\" which is the object class name we used in our " -"C source when calling godot_nativescript_register_class. We also need to " -"select our GDNLIB file by clicking on Library and selecting Load:" +"You should see a contextual editor appear in the bottom panel. Use the " +"\"Expand Bottom Panel\" button in the bottom right to expand it to full " +"height:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:317 -msgid "Finally click on the save icon and save this as bin/simple.gdns:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:421 +msgid "General properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:321 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:423 msgid "" -"Now it's time to build our scene. Add a control node to your scene as your " -"root and call it main. Then add a button and a label as subnodes. Place them " -"somewhere nice on screen and give your button a name." +"In the Inspector, you have various properties to control loading the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:325 -msgid "Select the control node and create a script for the control node:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:425 +msgid "" +"If *Load Once* is enabled, our library is loaded only once and each " +"individual script that uses our library will use the same data. Any variable " +"you define globally will be accessible from any instance of your object you " +"create. If *Load Once* is disabled, a new copy of the library is loaded into " +"memory each time a script accesses the library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:329 -msgid "Next link up the pressed signal on the button to your script:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:431 +msgid "" +"If *Singleton* is enabled, our library is automatically loaded and a " +"function called ``godot_singleton_init`` is called. We'll leave that for " +"another tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:333 -msgid "Don't forget to save your scene, call it main.tscn." +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:435 +msgid "" +"The *Symbol Prefix* is a prefix for our core functions, such as ``godot_`` " +"in ``godot_nativescript_init`` seen earlier. If you use multiple GDNative " +"libraries that you wish to statically link, you will have to use different " +"prefixes. This again is a subject to dive into deeper in a separate " +"tutorial, it is only needed at this time for deployment to iOS as this " +"platform does not like dynamic libraries." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:335 -msgid "Now we can implement our main.gd code:" +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:442 +msgid "" +"*Reloadable* defines whether the library should be reloaded when the editor " +"loses and gains focus, typically to pick up new or modified symbols from any " +"change made to the library externally." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:347 +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:447 +msgid "Platform libraries" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:449 +msgid "" +"The GDNativeLibrary editor plugin lets you configure two things for each " +"platform and architecture that you aim to support." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:452 +msgid "" +"The *Dynamic Library* column (``entry`` section in the saved file) tells us " +"for each platform and feature combination which dynamic library has to be " +"loaded. This also informs the exporter which files need to be exported when " +"exporting to a specific platform." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:457 +msgid "" +"The *Dependencies* column (also ``dependencies`` section) tells Godot what " +"other files need to be exported for each platform in order for our library " +"to work. Say that your GDNative module uses another DLL to implement " +"functionality from a 3rd party library, this is where you list that DLL." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:462 +msgid "" +"For our example, we only built libraries for Linux, macOS and/or Windows, so " +"you can link them in the relevant fields by clicking the folder button. If " +"you built all three libraries, you should have something like this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:469 +#, fuzzy +msgid "Saving the resource" +msgstr "創建內容" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:471 +msgid "" +"We can then save our GDNativeLibrary resource as ``bin/libsimple.gdnlib`` " +"with the Save button in the Inspector:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:476 +msgid "" +"The file is saved in a text-based format and should have contents similar to " +"this:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:503 +msgid "Creating the NativeScript (``.gdns``) file" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:505 +msgid "" +"With our ``.gdnlib`` file we've told Godot how to load our library, now we " +"need to tell it about our \"Simple\" object class. We do this by creating a :" +"ref:`NativeScript ` resource file with ``.gdns`` " +"extension." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:509 +msgid "" +"Like done for the GDNativeLibrary resource, click the button to create a new " +"resource in the Inspector and select ``NativeScript``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:514 +msgid "" +"The inspector will show a few properties that we need to fill. As *Class " +"Name* we enter \"Simple\" which is the object class name that we declared in " +"our C source when calling ``godot_nativescript_register_class``. We also " +"need to select our ``.gdnlib`` file by clicking on *Library* and selecting " +"*Load*:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:521 +msgid "Finally click on the save icon and save this as ``bin/simple.gdns``:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:525 +msgid "" +"Now it's time to build our scene. Add a Control node to your scene as your " +"root and call it ``main``. Then add a Button and a Label as child nodes. " +"Place them somewhere nice on screen and give your button a name." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:531 +msgid "Select the control node and attach a script to it:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:535 +msgid "Next link up the ``pressed`` signal on the button to your script:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:539 +msgid "Don't forget to save your scene, call it ``main.tscn``." +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:541 +msgid "Now we can implement our ``main.gd`` code:" +msgstr "" + +#: ../../docs/tutorials/plugins/gdnative/gdnative-c-example.rst:553 msgid "" "After all that, our project should work. The first time you run it Godot " -"will ask you what your main scene is and you select your main.tscn file and " -"presto:" +"will ask you what your main scene is and you select your ``main.tscn`` file " +"and presto:" msgstr "" #: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:4 @@ -60147,7 +60302,7 @@ msgid "" "equivalent to writing scripts in GDScript, but in C++ instead." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:18 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:17 msgid "" "Godot 3.1 saw the introduction of the NativeScript 1.1 additions that " "enabled the GDNative team to build a nicer C++ bindings library. These " @@ -60157,48 +60312,48 @@ msgid "" "syntax. We'll be showing them side by side in this writeup." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:26 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:24 msgid "" "You can download the full example we'll be creating in this tutorial `on " -"GitHub `_." +"GitHub `__." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:28 msgid "Setting up the project" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:30 msgid "There are a few prerequisites you'll need:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:32 msgid "a Godot 3.x executable," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:33 msgid "a C++ compiler," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:36 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:34 msgid "SCons as a build tool," msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:37 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:35 #, fuzzy msgid "" "a copy of the `godot-cpp repository `_." +"godot-cpp>`__." msgstr "" "在這份文件之外,你可能也會想看看 `Godot 的 demo 專案 `_。" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:39 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:38 msgid "" "See also :ref:`Compiling ` as the build tools are " "identical to the ones you need to compile Godot from source." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:42 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:41 msgid "" "You can download these repositories from GitHub or let Git do the work for " "you. Note that these repositories now have different branches for different " @@ -60209,13 +60364,13 @@ msgid "" "generate the ``api.json`` with becomes your minimum version." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:52 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:49 msgid "" "If you are versioning your project using Git, it is a good idea to add them " "as Git submodules:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:74 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:71 msgid "" "If you decide to just download the repositories or clone them into your " "project folder, make sure to keep the folder layout identical to the one " @@ -60223,18 +60378,18 @@ msgid "" "project follows this layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:79 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:76 msgid "Do make sure you clone recursive to pull in both repositories:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:94 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:93 msgid "" "``godot-cpp`` now includes ``godot_headers`` as a nested submodule, if " "you've manually downloaded them please make sure to place ``godot_headers`` " "inside of the ``godot-cpp`` folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:96 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:97 msgid "" "You don't have to do it this way but we've found it easiest to manage. If " "you decide to just download the repositories or just clone them into your " @@ -60243,107 +60398,107 @@ msgid "" "layout." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:98 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:102 msgid "" "If you cloned the example from the link specified in the introduction, the " "submodules are not automatically initialized. You will need to execute the " "following commands:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:107 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:111 msgid "This will clone these two repositories into your project folder." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:110 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:114 msgid "Building the C++ bindings" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:112 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:116 msgid "" "Now that we've downloaded our prerequisites, it is time to build the C++ " "bindings." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:115 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:119 msgid "" "The repository contains a copy of the metadata for the current Godot " "release, but if you need to build these bindings for a newer version of " "Godot, simply call the Godot executable:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:123 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:127 msgid "" "Place the resulting ``api.json`` file in the project folder and add " "``use_custom_api_file=yes custom_api_file=../api.json`` to the scons command " "below." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:125 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:131 msgid "" "To generate and compile the bindings, use this command (replacing " "```` with ``windows``, ``x11`` or ``osx`` depending on your OS):" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:134 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 msgid "" "This step will take a while. When it is completed, you should have static " "libraries that can be compiled into your project stored in ``godot-cpp/bin/" "``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:137 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 msgid "" "At some point in the future, compiled binaries will be available, making " "this step optional." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:140 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 msgid "" "You may need to add ``bits=64`` to the command on Windows or Linux. We're " "still working on better auto detection." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:143 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:152 msgid "Creating a simple plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:145 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 msgid "" "Now it's time to build an actual plugin. We'll start by creating an empty " "Godot project in which we'll place a few files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:148 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 msgid "" "Open Godot and create a new project. For this example, we will place it in a " "folder called ``demo`` inside our GDNative module's folder structure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:151 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 msgid "" "In our demo project, we'll create a scene containing a Node called \"Main\" " "and we'll save it as ``main.tscn``. We'll come back to that later." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:154 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:163 msgid "" "Back in the top-level GDNative module folder, we're also going to create a " "subfolder called ``src`` in which we'll place our source files." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:157 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:166 msgid "" "You should now have ``demo``, ``godot-cpp``, ``godot_headers``, and ``src`` " "directories in your GDNative module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:160 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:169 msgid "" "In the ``src`` folder, we'll start with creating our header file for the " "GDNative node we'll be creating. We will name it ``gdexample.h``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:224 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:233 msgid "" "There are a few things of note to the above. We're including ``Godot.hpp`` " "which contains all our basic definitions. After that, we include ``Sprite." @@ -60351,31 +60506,31 @@ msgid "" "class in our module." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:229 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 msgid "" "We're using the namespace ``godot``, since everything in GDNative is defined " "within this namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:232 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:241 msgid "" "Then we have our class definition, which inherits from our Sprite through a " "container class. We'll see a few side effects of this later on. The " "``GODOT_CLASS`` macro sets up a few internal things for us." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:236 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:245 msgid "After that, we declare a single member variable called ``time_passed``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:238 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:247 msgid "" "In the next block we're defining our methods, we obviously have our " "constructor and destructor defined, but there are two other functions that " "will likely look familiar to some, and one new method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:242 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 msgid "" "The first is ``_register_methods``, which is a static function that Godot " "will call to find out which methods can be called on our NativeScript and " @@ -60386,11 +60541,11 @@ msgid "" "code in it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:251 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:258 msgid "Let's implement our functions by creating our ``gdexample.cpp`` file:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:311 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:318 msgid "" "This one should be straightforward. We're implementing each method of our " "class that we defined in our header file. Note that the ``register_method`` " @@ -60399,7 +60554,7 @@ msgid "" "destructor and ``_init`` functions." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:317 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:324 msgid "" "The other method of note is our ``_process`` function, which simply keeps " "track of how much time has passed and calculates a new position for our " @@ -60410,7 +60565,7 @@ msgid "" "``set_position`` can be called directly on our class." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:326 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:332 msgid "" "There is one more C++ file we need; we'll name it ``gdlibrary.cpp``. Our " "GDNative plugin can contain multiple NativeScripts, each with their own " @@ -60419,13 +60574,13 @@ msgid "" "NativeScripts in our GDNative plugin." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:350 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:356 msgid "" "Note that we are not using the ``godot`` namespace here, since the three " "functions implemented here need to be defined without a namespace." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:353 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 msgid "" "The ``godot_gdnative_init`` and ``godot_gdnative_terminate`` functions get " "called respectively when Godot loads our plugin and when it unloads it. All " @@ -60434,7 +60589,7 @@ msgid "" "needs." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:359 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 msgid "" "The important function is the third function called " "``godot_nativescript_init``. We first call a function in our bindings " @@ -60442,11 +60597,11 @@ msgid "" "``register_class`` for each of our classes in our library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:365 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:371 msgid "Compiling the plugin" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:367 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 msgid "" "We cannot easily write by hand a ``SConstruct`` file that SCons would use " "for building. For the purpose of this example, just use :download:`this " @@ -60455,49 +60610,49 @@ msgid "" "files in a subsequent tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:373 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:381 msgid "" "This ``SConstruct`` file was written to be used with the latest ``godot-" "cpp`` master, you may need to make small changes using it with older " "versions or refer to the ``SConstruct`` file in the Godot 3.0 documentation." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:378 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:385 msgid "" "Once you've downloaded the ``SConstruct`` file, place it in your GDNative " "module folder besides ``godot-cpp``, ``godot_headers`` and ``demo``, then " "run:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:386 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:392 msgid "You should now be able to find the module in ``demo/bin/``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:390 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:396 msgid "" "Here, we've compiled both godot-cpp and our gdexample library as debug " "builds. For optimized builds, you should compile them using the " "``target=release`` switch." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:395 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 msgid "Using the GDNative module" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:397 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:403 msgid "" "Before we jump back into Godot, we need to create two more files in ``demo/" "bin/``. Both can be created using the Godot editor, but it may be faster to " "create them directly." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:401 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:407 msgid "" "The first one is a file that lets Godot know what dynamic libraries should " "be loaded for each platform and is called ``gdexample.gdnlib``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:425 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:431 msgid "" "This file contains a ``general`` section that controls how the module is " "loaded. It also contains a prefix section which should be left on ``godot_`` " @@ -60507,7 +60662,7 @@ msgid "" "linked statically." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:432 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:437 msgid "" "The ``entry`` section is the important bit: it tells Godot the location of " "the dynamic library in the project's filesystem for each supported platform. " @@ -60516,7 +60671,7 @@ msgid "" "incompatible with the target platform." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:438 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 msgid "" "Finally, the ``dependencies`` section allows you to name additional dynamic " "libraries that should be included as well. This is important when your " @@ -60524,20 +60679,20 @@ msgid "" "a third-party dynamic library with your project." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:443 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 msgid "" "If you double click on the ``gdexample.gdnlib`` file within Godot, you'll " "see there are far more options to set:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:448 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:453 msgid "" "The second file we need to create is a file used by each NativeScript we've " "added to our plugin. We'll name it ``gdexample.gdns`` for our gdexample " "NativeScript." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:465 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:470 msgid "" "This is a standard Godot resource; you could just create it directly in your " "scene, but saving it to a file makes it much easier to reuse it in other " @@ -60547,28 +60702,28 @@ msgid "" "use." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:472 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:476 msgid "" "Time to jump back into Godot. We load up the main scene we created way back " "in the beginning and now add a Sprite to our scene:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:477 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:481 msgid "" "We're going to assign the Godot logo to this sprite as our texture, disable " "the ``centered`` property and drag our ``gdexample.gdns`` file onto the " "``script`` property of the sprite:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:483 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:487 msgid "We're finally ready to run the project:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:488 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:492 msgid "Adding properties" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:490 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:494 msgid "" "GDScript allows you to add properties to your script using the ``export`` " "keyword. In GDNative you have to register the properties and there are two " @@ -60576,32 +60731,32 @@ msgid "" "and getter function." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:496 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:501 msgid "" "There is a third option, just like in GDScript you can directly implement " "the ``_get_property_list``, ``_get`` and ``_set`` methods of an object but " "that goes far beyond the scope of this tutorial." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:500 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:505 msgid "" "We'll examine both starting with the direct bind. Lets add a property that " "allows us to control the amplitude of our wave." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:503 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:508 msgid "" "In our ``gdexample.h`` file we simply need to add a member variable like so:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:513 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:518 msgid "" "In our ``gdexample.cpp`` file we need to make a number of changes, we will " "only show the methods we end up changing, don't remove the lines we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:565 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:570 msgid "" "Once you compile the module with these changes in place you will see that a " "property has been added to our interface. You can now change this property " @@ -60609,41 +60764,41 @@ msgid "" "along a larger figure." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:571 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 msgid "" "The ``reloadable`` property in the ``gdexample.gdnlib`` file must be set to " "``true`` for the Godot editor to automatically pick up the newly added " "property." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:574 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:581 msgid "" "However, this setting should be used with care especially when tool classes " "are used, as the editor might hold objects then that have script instances " "attached to them that are managed by a GDNative library." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:577 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:585 msgid "" "Lets do the same but for the speed of our animation and use a setter and " "getter function. Our ``gdexample.h`` header file again only needs a few more " "lines of code:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:591 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:600 msgid "" "This requires a few more changes to our ``gdexample.cpp`` file, again we're " "only showing the methods that have changed so don't remove anything we're " "omitting:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:663 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:672 msgid "" "Now when the project is compiled we'll see another property called speed. " "Changing its value will make the animation go faster or slower." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:666 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:675 msgid "" "For this example there is no obvious advantage of using a setter and getter. " "It is just more code to write. For a simple example as this there may be a " @@ -60651,13 +60806,13 @@ msgid "" "but in many cases just binding the variable will be enough." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:671 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:680 msgid "" "Getters and setters become far more useful in more complex scenarios where " "you need to make additional choices based on the state of your object." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:677 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:685 msgid "" "For simplicity we've left out the optional parameters in the " "register_property method call. These parameters are " @@ -60665,14 +60820,14 @@ msgid "" "further configure how properties are displayed and set on the Godot side." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:683 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:690 msgid "" "Modern C++ compilers are able to infer the class and variable type and allow " "you to omit the ```` part of our ``register_property`` " -"method. we've had mixed experiences with this however." +"method. We've had mixed experiences with this however." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:691 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 msgid "" "Last but not least, signals fully work in GDNative as well. Having your " "module react to a signal given out by another object requires you to call " @@ -60680,17 +60835,17 @@ msgid "" "wobbling Godot icon, we would need to showcase a far more complete example." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:697 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:702 msgid "This however is the required syntax:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:708 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:713 msgid "" "Note that you can only call ``my_method`` if you've previously registered it " "in your ``_register_methods`` method." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:711 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 msgid "" "Having your object sending out signals is far more common. For our wobbling " "Godot icon we'll do something silly just to show how it works. We're going " @@ -60698,26 +60853,26 @@ msgid "" "along." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:716 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:720 msgid "" "In our ``gdexample.h`` header file we just need to define a new member " "``time_emit``:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:726 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:731 msgid "" "The changes in ``gdexample.cpp`` are a bit more elaborate this time. First " "you'll need to set ``time_emit = 0.0;`` in either our ``_init`` method or in " "our constructor. But the other two needed changes we'll look at one by one." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:730 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:735 msgid "" "In our ``_register_methods`` method we need to declare our signal and we do " "this as follows:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:757 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 msgid "" "Here we see a nice improvement in the latest version of godot-cpp where our " "``register_signal`` method can be a single call first taking the signals " @@ -60725,18 +60880,18 @@ msgid "" "of each parameter we'll send along with this signal." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:762 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:767 msgid "" "For NativeScript 1.0 we first build a dictionary in which we tell Godot " "about the types of arguments we will pass to our signal, and then register " "it." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:765 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:770 msgid "Next we'll need to change our ``_process`` method:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:811 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:816 msgid "" "After a second has passed we emit our signal and reset our counter. Again in " "the new version of godot-cpp we can add our parameter values directly to " @@ -60744,22 +60899,22 @@ msgid "" "then call ``emit_signal``." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:817 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:821 msgid "" "Once compiled we can go into Godot and select our sprite node. On our " "``Node`` tab we find our new signal and link it up by pressing connect. " "We've added a script on our main node and implemented our signal like this:" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:828 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 msgid "Every second we simply output our position to the console." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:832 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:835 msgid "NativeScript 1.1 vs NativeScript 1.0" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:834 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:837 msgid "" "So far in our example above there doesn't seem to be a lot of difference " "between the old and new syntax. The class is defined slightly differently " @@ -60767,7 +60922,7 @@ msgid "" "of our object. A lot of the improvements are hidden under the hood." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:839 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:842 msgid "" "This example only deals with simple variables and simple methods. Especially " "once you start passing references to other objects or when you start calling " @@ -60775,18 +60930,18 @@ msgid "" "show its benefits." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:845 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:848 msgid "Next steps" msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:847 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:850 msgid "" "The above is only a simple example, but we hope it shows you the basics. You " "can build upon this example to create full-fledged scripts to control nodes " "in Godot using C++." msgstr "" -#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:851 +#: ../../docs/tutorials/plugins/gdnative/gdnative-cpp-example.rst:854 msgid "" "You should be able to edit and recompile the plugin while the Godot editor " "remains open; just rerun the project after the library has finished building." @@ -65412,12 +65567,11 @@ msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:18 msgid "" -"Godot can be compiled for a dozen different platforms. All PC platforms, all " -"mobile platforms, many consoles, and many web-based platforms (such as HTML5 " -"and Chrome PNACL)." +"Godot can be compiled for a dozen different platforms: all PC platforms, all " +"mobile platforms, many consoles, and WebAssembly." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:21 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:20 msgid "" "Developers often need to compile for several of the platforms **at the same " "time**, or even different targets of the same platform. They can't afford " @@ -65425,14 +65579,14 @@ msgid "" "no sweat, without breaking the builds." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:25 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:24 msgid "" "SCons will *never* break a build no matter how many changes, configurations, " "additions, removals etc. You have more chances to die struck by lightning " "than needing to clean and rebuild in SCons." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:28 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:27 msgid "" "Godot build process is not simple. Several files are generated by code " "(binders), others are parsed (shaders), and others need to offer " @@ -65441,20 +65595,20 @@ msgid "" "mostly macro-based language only meant for building." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:33 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:32 msgid "" -"Godot build process makes heavy use of cross compiling tools. Each platform " +"Godot build process makes heavy use of cross-compiling tools. Each platform " "has a specific detection process, and all these must be handled as specific " "cases with special code written for each." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:37 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:36 msgid "" "So, please try to keep an open mind and get at least a little familiar with " "it if you are planning to build Godot yourself." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:43 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:42 msgid "" "Please refer to the documentation for :ref:`doc_compiling_for_android`, :ref:" "`doc_compiling_for_ios`, :ref:`doc_compiling_for_osx`, :ref:" @@ -65462,18 +65616,18 @@ msgid "" "`doc_compiling_for_windows` and :ref:`doc_compiling_for_x11`." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:45 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:47 msgid "" "Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross " "Tools Command Prompt for VS 2017`` or similar, depending on your install, " "instead of the standard Windows command prompt to enter the commands below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:48 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:52 msgid "Platform selection" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:50 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:54 msgid "" "Godot's build system will begin by detecting the platforms it can build for. " "If not detected, the platform will simply not appear on the list of " @@ -65481,164 +65635,163 @@ msgid "" "in the rest of this tutorial section." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:55 -msgid "SCons is invoked by just calling ``scons``." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:57 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:59 msgid "" -"However, this will do nothing except list the available platforms, for " -"example:" +"SCons is invoked by just calling ``scons``. If no platform is specified, " +"SCons will detect the target platform automatically based on the host " +"platform. It will then start building for the target platform right away." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:78 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:63 +msgid "To list the available target platforms, use ``scons platform=list``::" +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:77 msgid "" "To build for a platform (for example, x11), run with the ``platform=`` (or " -"just ``p=`` to make it short) argument:" +"``p=`` to make it short) argument:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:85 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:84 msgid "" "This will start the build process, which will take a while. If you want " -"scons to build faster, use the ``-j `` parameter to specify how many " -"cores will be used for the build. Or just leave it using one core, so you " -"can use your computer for something else :)" +"SCons to build faster, use the ``-j `` parameter to specify how many " +"cores will be used for the build. Or leave it using one core, so you can use " +"your computer for something else :)" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:90 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:89 msgid "Example for using 4 cores:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:97 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:96 msgid "Resulting binary" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:99 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:98 msgid "" -"The resulting binaries will be placed in the bin/ subdirectory, generally " -"with this naming convention:" +"The resulting binaries will be placed in the ``bin/`` subdirectory, " +"generally with this naming convention::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:106 -msgid "For the previous build attempt the result would look like this:" +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:103 +msgid "For the previous build attempt, the result would look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:113 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:108 msgid "" "This means that the binary is for X11, is not optimized, has tools (the " "whole editor) compiled in, and is meant for 64 bits." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 -msgid "A Windows binary with the same configuration will look like this." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:111 +msgid "A Windows binary with the same configuration will look like this::" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:123 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:116 msgid "" -"Just copy that binary to wherever you like, as it contains the project " +"Copy that binary to any location you like, as it contains the project " "manager, editor and all means to execute the game. However, it lacks the " "data to export it to the different platforms. For that the export templates " "are needed (which can be either downloaded from `godotengine.org `__, or you can build them yourself)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:129 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:122 msgid "" "Aside from that, there are a few standard options that can be set in all " "build targets, and which will be explained below." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:135 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:128 msgid "" "Tools are enabled by default in all PC targets (Linux, Windows, macOS), " "disabled for everything else. Disabling tools produces a binary that can run " "projects but that does not include the editor or the project manager." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:145 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:138 msgid "Target" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:140 msgid "Target controls optimization and debug flags. Each mode means:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:149 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:142 msgid "" "**debug**: Build with C++ debugging symbols, runtime checks (performs checks " "and reports error) and none to little optimization." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:151 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:144 msgid "" "**release_debug**: Build without C++ debugging symbols and optimization, but " "keep the runtime checks (performs checks and reports errors). Official " -"binaries use this configuration." +"editor binaries use this configuration." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:154 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:147 msgid "" "**release**: Build without symbols, with optimization and with little to no " -"runtime checks. This target can't be used together with tools=yes, as the " -"tools require some debug functionality and run-time checks to run." +"runtime checks. This target can't be used together with ``tools=yes``, as " +"the editor requires some debug functionality and run-time checks to run." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:156 msgid "" -"This flag appends the \".debug\" suffix (for debug), or \".tools\" (for " -"debug with tools enabled). When optimization is enabled (release) it appends " -"the \".opt\" suffix." +"This flag appends the ``.debug`` suffix (for debug), or ``.tools`` (for " +"debug with tools enabled). When optimization is enabled (release), it " +"appends the ``.opt`` suffix." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:161 msgid "Bits" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:170 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:163 msgid "" "Bits is meant to control the CPU or OS version intended to run the binaries. " "It is focused mostly on desktop platforms and ignored everywhere else." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:174 -msgid "**32**: Build binaries for 32 bits platform." +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:167 +msgid "**32**: Build binaries for 32-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:168 +msgid "**64**: Build binaries for 64-bit platforms." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:169 +msgid "**default**: Build for the architecture that matches the host platform." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:175 -msgid "**64**: Build binaries for 64 bits platform." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:176 msgid "" -"**default**: Build whatever the build system feels is best. On Linux this " -"depends on the host platform (if not cross compiling), on Mac it defaults to " -"64 bits and on Windows it defaults to 32 bits." +"This flag appends ``.32`` or ``.64`` suffixes to resulting binaries when " +"relevant. If ``bits=default`` is used, the suffix will match the detected " +"architecture." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:184 -msgid "" -"This flag appends \".32\" or \".64\" suffixes to resulting binaries when " -"relevant." -msgstr "" - -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:188 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:180 msgid "Other build options" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:190 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:182 msgid "" "There are several other build options that you can use to configure the way " "Godot should be built (compiler, debug options, etc.) as well as the " "features to include/disable." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:194 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:186 msgid "" "Check the output of ``scons --help`` for details about each option for the " "version you are willing to compile." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:200 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:192 msgid "" "Official export templates are downloaded from the Godot Engine site: " "`godotengine.org `__. However, you might want to " @@ -65646,23 +65799,35 @@ msgid "" "modules, or simply don't trust your own shadow)." msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:205 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:197 msgid "" "If you download the official export templates package and unzip it, you will " -"notice that most are just optimized binaries or packages for each platform:" +"notice that most files are optimized binaries or packages for each platform:" msgstr "" -#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:228 +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:220 msgid "" -"To create those yourself, just follow the instructions detailed for each " -"platform in this same tutorial section. Each platform explains how to create " -"its own template." +"To create those yourself, follow the instructions detailed for each platform " +"in this same tutorial section. Each platform explains how to create its own " +"template." +msgstr "" + +#: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:224 +msgid "" +"The ``version.txt`` file should contain the corresponding Godot version " +"identifier. This file is used to install export templates in a version-" +"specific directory to avoid conflicts. For instance, if you are building " +"export templates for Godot 3.1.1, ``version.txt`` should contain ``3.1.1." +"stable`` on the first line (and nothing else). This version identifier is " +"based on the ``major``, ``minor``, ``patch`` (if present) and ``status`` " +"lines of the `version.py file in the Godot Git repository `__." msgstr "" #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:232 msgid "" "If you are developing for multiple platforms, macOS is definitely the most " -"convenient host platform for cross compilation, since you can cross-compile " +"convenient host platform for cross-compilation, since you can cross-compile " "for almost every target (except for UWP). Linux and Windows come in second " "place, but Linux has the advantage of being the easier platform to set this " "up."