summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ISSUE_TEMPLATE.md14
-rw-r--r--SConstruct15
-rw-r--r--core/class_db.cpp9
-rw-r--r--core/dictionary.cpp2
-rw-r--r--core/dictionary.h2
-rw-r--r--core/global_constants.cpp37
-rw-r--r--core/hash_map.h17
-rw-r--r--core/image.cpp37
-rw-r--r--core/image.h3
-rw-r--r--core/io/packet_peer.cpp10
-rw-r--r--core/io/packet_peer.h12
-rw-r--r--core/io/resource_loader.cpp44
-rw-r--r--core/math/a_star.cpp2
-rw-r--r--core/math/math_2d.cpp63
-rw-r--r--core/math/math_2d.h67
-rw-r--r--core/math/matrix3.cpp9
-rw-r--r--core/math/matrix3.h3
-rw-r--r--core/os/file_access.cpp86
-rw-r--r--core/os/file_access.h1
-rw-r--r--core/os/input_event.cpp18
-rw-r--r--core/os/input_event.h4
-rw-r--r--core/os/os.cpp15
-rw-r--r--core/os/os.h20
-rw-r--r--core/os/threaded_array_processor.cpp2
-rw-r--r--core/os/threaded_array_processor.h80
-rw-r--r--core/script_language.cpp2
-rw-r--r--core/ustring.cpp173
-rw-r--r--core/ustring.h35
-rw-r--r--core/variant_call.cpp6
-rw-r--r--doc/classes/ARVRController.xml5
-rw-r--r--doc/classes/ARVRServer.xml11
-rw-r--r--doc/classes/Animation.xml2
-rw-r--r--doc/classes/AnimationPlayer.xml1
-rw-r--r--doc/classes/BakedLightmap.xml83
-rw-r--r--doc/classes/BakedLightmapData.xml115
-rw-r--r--doc/classes/Camera.xml182
-rw-r--r--doc/classes/ColorPickerButton.xml4
-rw-r--r--doc/classes/Curve.xml2
-rw-r--r--doc/classes/Dictionary.xml6
-rw-r--r--doc/classes/HTTPClient.xml3
-rw-r--r--doc/classes/Light.xml8
-rw-r--r--doc/classes/LineEdit.xml7
-rw-r--r--doc/classes/MenuButton.xml2
-rw-r--r--doc/classes/Mutex.xml6
-rw-r--r--doc/classes/Navigation.xml2
-rw-r--r--doc/classes/Navigation2D.xml2
-rw-r--r--doc/classes/OptionButton.xml7
-rw-r--r--doc/classes/PacketPeer.xml4
-rw-r--r--doc/classes/Physics2DDirectSpaceState.xml67
-rw-r--r--doc/classes/PhysicsDirectSpaceState.xml28
-rw-r--r--doc/classes/SceneState.xml8
-rw-r--r--doc/classes/SceneTree.xml14
-rw-r--r--doc/classes/Script.xml12
-rw-r--r--doc/classes/ScriptEditor.xml10
-rw-r--r--doc/classes/Semaphore.xml6
-rw-r--r--doc/classes/SpatialMaterial.xml10
-rw-r--r--doc/classes/String.xml3
-rw-r--r--doc/classes/TextEdit.xml24
-rw-r--r--doc/classes/TileMap.xml18
-rw-r--r--doc/classes/Transform2D.xml30
-rw-r--r--doc/classes/VisualServer.xml4
-rw-r--r--drivers/gles3/rasterizer_canvas_gles3.cpp21
-rw-r--r--drivers/gles3/rasterizer_gles3.cpp37
-rw-r--r--drivers/gles3/rasterizer_scene_gles3.cpp24
-rw-r--r--drivers/gles3/rasterizer_storage_gles3.cpp9
-rw-r--r--drivers/gles3/rasterizer_storage_gles3.h1
-rw-r--r--drivers/gles3/shader_compiler_gles3.cpp3
-rw-r--r--drivers/gles3/shader_gles3.cpp31
-rw-r--r--drivers/gles3/shaders/canvas.glsl2
-rw-r--r--drivers/gles3/shaders/scene.glsl96
-rw-r--r--drivers/unix/packet_peer_udp_posix.cpp2
-rw-r--r--drivers/unix/packet_peer_udp_posix.h12
-rw-r--r--drivers/windows/packet_peer_udp_winsock.cpp (renamed from platform/windows/packet_peer_udp_winsock.cpp)6
-rw-r--r--drivers/windows/packet_peer_udp_winsock.h (renamed from platform/windows/packet_peer_udp_winsock.h)16
-rw-r--r--drivers/windows/stream_peer_tcp_winsock.cpp (renamed from platform/windows/stream_peer_winsock.cpp)52
-rw-r--r--drivers/windows/stream_peer_tcp_winsock.h (renamed from platform/windows/stream_peer_winsock.h)12
-rw-r--r--drivers/windows/tcp_server_winsock.cpp (renamed from platform/windows/tcp_server_winsock.cpp)8
-rw-r--r--drivers/windows/tcp_server_winsock.h (renamed from platform/windows/tcp_server_winsock.h)4
-rw-r--r--editor/create_dialog.cpp27
-rw-r--r--editor/editor_about.cpp2
-rw-r--r--editor/editor_autoload_settings.cpp28
-rw-r--r--editor/editor_data.cpp9
-rw-r--r--editor/editor_data.h1
-rw-r--r--editor/editor_export.cpp37
-rw-r--r--editor/editor_export.h8
-rw-r--r--editor/editor_file_dialog.cpp68
-rw-r--r--editor/editor_file_dialog.h1
-rw-r--r--editor/editor_file_system.cpp46
-rw-r--r--editor/editor_fonts.cpp15
-rw-r--r--editor/editor_help.cpp350
-rw-r--r--editor/editor_help.h12
-rw-r--r--editor/editor_node.cpp18
-rw-r--r--editor/editor_settings.cpp5
-rw-r--r--editor/editor_sub_scene.cpp95
-rw-r--r--editor/editor_sub_scene.h5
-rw-r--r--editor/editor_themes.cpp12
-rw-r--r--editor/export_template_manager.cpp35
-rw-r--r--editor/export_template_manager.h2
-rw-r--r--editor/filesystem_dock.cpp73
-rw-r--r--editor/filesystem_dock.h1
-rw-r--r--editor/icons/SCsub3
-rw-r--r--editor/icons/icon_GUI_visibility_hidden.svg2
-rw-r--r--editor/icons/icon_a_a_b_b.svg (renamed from editor/icons/icon_mini_aabb.svg)0
-rw-r--r--editor/icons/icon_array.svg (renamed from editor/icons/icon_mini_array.svg)0
-rw-r--r--editor/icons/icon_basis.svg4
-rw-r--r--editor/icons/icon_bool.svg3
-rw-r--r--editor/icons/icon_color.svg7
-rw-r--r--editor/icons/icon_dictionary.svg3
-rw-r--r--editor/icons/icon_float.svg3
-rw-r--r--editor/icons/icon_int.svg3
-rw-r--r--editor/icons/icon_kinematic_body.svg4
-rw-r--r--editor/icons/icon_kinematic_body_2d.svg6
-rw-r--r--editor/icons/icon_match_case.svg3
-rw-r--r--editor/icons/icon_member_constant.svg3
-rw-r--r--editor/icons/icon_member_method.svg3
-rw-r--r--editor/icons/icon_member_property.svg3
-rw-r--r--editor/icons/icon_member_signal.svg3
-rw-r--r--editor/icons/icon_member_theme.svg6
-rw-r--r--editor/icons/icon_mini_basis.svg6
-rw-r--r--editor/icons/icon_mini_boolean.svg5
-rw-r--r--editor/icons/icon_mini_color.svg7
-rw-r--r--editor/icons/icon_mini_color_array.svg14
-rw-r--r--editor/icons/icon_mini_dictionary.svg5
-rw-r--r--editor/icons/icon_mini_float.svg5
-rw-r--r--editor/icons/icon_mini_float_array.svg7
-rw-r--r--editor/icons/icon_mini_int_array.svg7
-rw-r--r--editor/icons/icon_mini_integer.svg5
-rw-r--r--editor/icons/icon_mini_object.svg4
-rw-r--r--editor/icons/icon_mini_path.svg5
-rw-r--r--editor/icons/icon_mini_plane.svg5
-rw-r--r--editor/icons/icon_mini_quat.svg7
-rw-r--r--editor/icons/icon_mini_raw_array.svg7
-rw-r--r--editor/icons/icon_mini_rect2.svg5
-rw-r--r--editor/icons/icon_mini_string.svg5
-rw-r--r--editor/icons/icon_mini_string_array.svg7
-rw-r--r--editor/icons/icon_mini_transform.svg6
-rw-r--r--editor/icons/icon_mini_transform2D.svg6
-rw-r--r--editor/icons/icon_mini_variant.svg5
-rw-r--r--editor/icons/icon_mini_vector2.svg6
-rw-r--r--editor/icons/icon_mini_vector2_array.svg7
-rw-r--r--editor/icons/icon_mini_vector3.svg6
-rw-r--r--editor/icons/icon_mini_vector3_array.svg7
-rw-r--r--editor/icons/icon_nil.svg3
-rw-r--r--editor/icons/icon_node_path.svg3
-rw-r--r--editor/icons/icon_plane.svg6
-rw-r--r--editor/icons/icon_pool_byte_array.svg5
-rw-r--r--editor/icons/icon_pool_color_array.svg8
-rw-r--r--editor/icons/icon_pool_int_array.svg5
-rw-r--r--editor/icons/icon_pool_real_array.svg5
-rw-r--r--editor/icons/icon_pool_string_array.svg5
-rw-r--r--editor/icons/icon_pool_vector2_array.svg5
-rw-r--r--editor/icons/icon_pool_vector3_array.svg5
-rw-r--r--editor/icons/icon_quat.svg8
-rw-r--r--editor/icons/icon_r_i_d.svg (renamed from editor/icons/icon_mini_rid.svg)0
-rw-r--r--editor/icons/icon_range.svg5
-rw-r--r--editor/icons/icon_rect2.svg3
-rw-r--r--editor/icons/icon_scroll_bar.svg5
-rw-r--r--editor/icons/icon_string.svg3
-rw-r--r--editor/icons/icon_theme.svg16
-rw-r--r--editor/icons/icon_transform.svg4
-rw-r--r--editor/icons/icon_transform_2_D.svg4
-rw-r--r--editor/icons/icon_variant.svg17
-rw-r--r--editor/icons/icon_vector2.svg4
-rw-r--r--editor/icons/icon_vector3.svg4
-rw-r--r--editor/import/resource_importer_scene.cpp138
-rw-r--r--editor/plugins/animation_player_editor_plugin.cpp6
-rw-r--r--editor/plugins/animation_tree_editor_plugin.cpp2
-rw-r--r--editor/plugins/canvas_item_editor_plugin.cpp8
-rw-r--r--editor/plugins/mesh_instance_editor_plugin.h4
-rw-r--r--editor/plugins/resource_preloader_editor_plugin.cpp2
-rw-r--r--editor/plugins/script_editor_plugin.cpp66
-rw-r--r--editor/plugins/script_editor_plugin.h1
-rw-r--r--editor/plugins/script_text_editor.cpp125
-rw-r--r--editor/plugins/shader_editor_plugin.cpp64
-rw-r--r--editor/plugins/spatial_editor_plugin.cpp397
-rw-r--r--editor/plugins/spatial_editor_plugin.h41
-rw-r--r--editor/plugins/sprite_frames_editor_plugin.cpp2
-rw-r--r--editor/plugins/style_box_editor_plugin.cpp2
-rw-r--r--editor/plugins/theme_editor_plugin.cpp2
-rw-r--r--editor/plugins/tile_set_editor_plugin.cpp18
-rw-r--r--editor/progress_dialog.cpp3
-rw-r--r--editor/project_export.cpp4
-rw-r--r--editor/project_manager.cpp6
-rw-r--r--editor/project_settings_editor.cpp10
-rw-r--r--editor/property_editor.cpp66
-rw-r--r--editor/property_editor.h4
-rw-r--r--editor/scene_tree_dock.cpp127
-rw-r--r--editor/scene_tree_dock.h1
-rw-r--r--editor/scene_tree_editor.cpp8
-rw-r--r--editor/script_create_dialog.cpp14
-rw-r--r--editor/script_create_dialog.h1
-rw-r--r--editor/settings_config_dialog.cpp76
-rw-r--r--editor/settings_config_dialog.h6
-rw-r--r--editor/spatial_editor_gizmos.cpp851
-rw-r--r--editor/spatial_editor_gizmos.h51
-rw-r--r--editor/translations/af.po364
-rw-r--r--editor/translations/ar.po501
-rw-r--r--editor/translations/bg.po355
-rw-r--r--editor/translations/bn.po404
-rw-r--r--editor/translations/ca.po798
-rw-r--r--editor/translations/cs.po515
-rw-r--r--editor/translations/da.po841
-rw-r--r--editor/translations/de.po468
-rw-r--r--editor/translations/de_CH.po363
-rw-r--r--editor/translations/editor.pot327
-rw-r--r--editor/translations/el.po450
-rw-r--r--editor/translations/es.po489
-rw-r--r--editor/translations/es_AR.po460
-rw-r--r--editor/translations/fa.po365
-rw-r--r--editor/translations/fi.po1062
-rw-r--r--editor/translations/fr.po476
-rw-r--r--editor/translations/he.po334
-rw-r--r--editor/translations/hi.po350
-rw-r--r--editor/translations/hu.po371
-rw-r--r--editor/translations/id.po387
-rw-r--r--editor/translations/is.po7791
-rw-r--r--editor/translations/it.po618
-rw-r--r--editor/translations/ja.po1031
-rw-r--r--editor/translations/ko.po503
-rw-r--r--editor/translations/lt.po343
-rw-r--r--editor/translations/nb.po1816
-rw-r--r--editor/translations/nl.po461
-rw-r--r--editor/translations/pl.po527
-rw-r--r--editor/translations/pr.po343
-rw-r--r--editor/translations/pt_BR.po456
-rw-r--r--editor/translations/pt_PT.po3227
-rw-r--r--editor/translations/ru.po456
-rw-r--r--editor/translations/sk.po347
-rw-r--r--editor/translations/sl.po383
-rw-r--r--editor/translations/sr_Cyrl.po956
-rw-r--r--editor/translations/sv.po381
-rw-r--r--editor/translations/ta.po7791
-rw-r--r--editor/translations/th.po454
-rw-r--r--editor/translations/tr.po761
-rw-r--r--editor/translations/uk.po1867
-rw-r--r--editor/translations/ur_PK.po340
-rw-r--r--editor/translations/vi.po334
-rw-r--r--editor/translations/zh_CN.po475
-rw-r--r--editor/translations/zh_HK.po363
-rw-r--r--editor/translations/zh_TW.po353
-rw-r--r--main/SCsub24
-rw-r--r--main/main.cpp11
-rw-r--r--main/splash_editor.png (renamed from main/splash_sponsors.png)bin39571 -> 39571 bytes
-rw-r--r--methods.py18
-rw-r--r--modules/bullet/godot_result_callbacks.cpp5
-rw-r--r--modules/bullet/rigid_body_bullet.cpp39
-rw-r--r--modules/bullet/rigid_body_bullet.h1
-rw-r--r--modules/enet/networked_multiplayer_enet.cpp4
-rw-r--r--modules/enet/networked_multiplayer_enet.h8
-rw-r--r--modules/gdnative/SCsub4
-rw-r--r--modules/gdnative/gdnative/gdnative.cpp4
-rw-r--r--modules/gdnative/gdnative_api.json6
-rw-r--r--modules/gdnative/gdnative_library_editor_plugin.cpp423
-rw-r--r--modules/gdnative/gdnative_library_editor_plugin.h113
-rw-r--r--modules/gdnative/gdnative_library_singleton_editor.cpp (renamed from modules/gdnative/gd_native_library_editor.cpp)19
-rw-r--r--modules/gdnative/gdnative_library_singleton_editor.h (renamed from modules/gdnative/gd_native_library_editor.h)6
-rw-r--r--modules/gdnative/include/gdnative/gdnative.h4
-rw-r--r--modules/gdnative/register_types.cpp7
-rw-r--r--modules/gdscript/gdscript_function.cpp2
-rw-r--r--modules/gdscript/gdscript_parser.cpp42
-rw-r--r--modules/gridmap/doc_classes/GridMap.xml30
-rw-r--r--modules/gridmap/grid_map.cpp255
-rw-r--r--modules/gridmap/grid_map.h16
-rw-r--r--modules/mono/csharp_script.cpp2
-rw-r--r--modules/mono/editor/bindings_generator.cpp818
-rw-r--r--modules/mono/editor/bindings_generator.h162
-rw-r--r--modules/mono/editor/csharp_project.cpp6
-rw-r--r--modules/mono/editor/godotsharp_builds.cpp2
-rw-r--r--modules/mono/editor/godotsharp_editor.cpp18
-rw-r--r--modules/mono/editor/mono_bottom_panel.cpp6
-rw-r--r--modules/mono/glue/cs_files/Error.cs47
-rw-r--r--modules/mono/glue/cs_files/ExportAttribute.cs8
-rw-r--r--modules/mono/glue/cs_files/GD.cs4
-rw-r--r--modules/mono/glue/cs_files/Rect2.cs12
-rw-r--r--modules/mono/mono_gd/gd_mono_field.cpp2
-rw-r--r--modules/mono/mono_gd/gd_mono_log.cpp4
-rw-r--r--modules/mono/mono_gd/gd_mono_marshal.cpp5
-rw-r--r--modules/mono/mono_gd/gd_mono_marshal.h9
-rw-r--r--modules/mono/mono_gd/gd_mono_utils.cpp4
-rw-r--r--modules/mono/mono_gd/gd_mono_utils.h2
-rw-r--r--modules/opus/register_types.cpp15
-rw-r--r--modules/stb_vorbis/audio_stream_ogg_vorbis.cpp16
-rw-r--r--modules/thekla_unwrap/register_types.cpp2
-rw-r--r--modules/visual_script/visual_script_editor.cpp110
-rw-r--r--modules/visual_script/visual_script_flow_control.cpp915
-rw-r--r--modules/visual_script/visual_script_flow_control.h34
-rw-r--r--platform/android/detect.py2
-rw-r--r--platform/android/export/export.cpp5
-rw-r--r--platform/android/godot_android.cpp2
-rw-r--r--platform/android/java_glue.cpp9
-rw-r--r--platform/iphone/export/export.cpp2
-rw-r--r--platform/javascript/export/export.cpp4
-rw-r--r--platform/osx/detect.py3
-rw-r--r--platform/osx/export/export.cpp2
-rw-r--r--platform/osx/os_osx.h4
-rw-r--r--platform/osx/os_osx.mm6
-rw-r--r--platform/uwp/SCsub3
-rw-r--r--platform/uwp/export/export.cpp2
-rw-r--r--platform/uwp/os_uwp.cpp8
-rw-r--r--platform/windows/SCsub7
-rw-r--r--platform/windows/detect.py8
-rw-r--r--platform/windows/os_windows.cpp16
-rw-r--r--platform/windows/os_windows.h4
-rw-r--r--platform/x11/SCsub4
-rw-r--r--platform/x11/detect.py4
-rw-r--r--platform/x11/export/export.cpp3
-rw-r--r--platform/x11/os_x11.cpp10
-rw-r--r--platform/x11/os_x11.h4
-rw-r--r--scene/2d/navigation2d.cpp4
-rw-r--r--scene/2d/navigation2d.h2
-rw-r--r--scene/2d/navigation_polygon.cpp6
-rw-r--r--scene/2d/particles_2d.cpp7
-rw-r--r--scene/2d/particles_2d.h1
-rw-r--r--scene/2d/tile_map.cpp25
-rw-r--r--scene/2d/tile_map.h1
-rw-r--r--scene/3d/arvr_nodes.cpp10
-rw-r--r--scene/3d/baked_lightmap.cpp165
-rw-r--r--scene/3d/baked_lightmap.h29
-rw-r--r--scene/3d/camera.cpp191
-rw-r--r--scene/3d/camera.h11
-rw-r--r--scene/3d/navigation.cpp4
-rw-r--r--scene/3d/navigation.h2
-rw-r--r--scene/3d/navigation_mesh.cpp6
-rw-r--r--scene/3d/particles.cpp41
-rw-r--r--scene/3d/particles.h1
-rw-r--r--scene/3d/portal.h3
-rw-r--r--scene/3d/room_instance.h2
-rw-r--r--scene/3d/skeleton.cpp7
-rw-r--r--scene/3d/spatial.cpp8
-rw-r--r--scene/3d/sprite_3d.cpp1
-rw-r--r--scene/3d/voxel_light_baker.cpp257
-rw-r--r--scene/3d/voxel_light_baker.h36
-rw-r--r--scene/animation/animation_tree_player.cpp21
-rw-r--r--scene/animation/animation_tree_player.h1
-rw-r--r--scene/gui/base_button.cpp8
-rw-r--r--scene/gui/button.h3
-rw-r--r--scene/gui/color_picker.cpp18
-rw-r--r--scene/gui/color_picker.h4
-rw-r--r--scene/gui/control.cpp2
-rw-r--r--scene/gui/dialogs.cpp13
-rw-r--r--scene/gui/label.cpp2
-rw-r--r--scene/gui/line_edit.cpp33
-rw-r--r--scene/gui/line_edit.h5
-rw-r--r--scene/gui/menu_button.cpp28
-rw-r--r--scene/gui/menu_button.h5
-rw-r--r--scene/gui/option_button.cpp77
-rw-r--r--scene/gui/option_button.h2
-rw-r--r--scene/gui/popup_menu.cpp64
-rw-r--r--scene/gui/rich_text_label.cpp11
-rw-r--r--scene/gui/split_container.cpp66
-rw-r--r--scene/gui/split_container.h4
-rw-r--r--scene/gui/text_edit.cpp122
-rw-r--r--scene/gui/text_edit.h10
-rw-r--r--scene/gui/tree.cpp66
-rw-r--r--scene/gui/tree.h8
-rw-r--r--scene/main/node.cpp45
-rw-r--r--scene/main/scene_tree.cpp42
-rw-r--r--scene/main/scene_tree.h14
-rw-r--r--scene/main/viewport.cpp38
-rw-r--r--scene/main/viewport.h1
-rw-r--r--scene/register_scene_types.cpp26
-rw-r--r--scene/resources/dynamic_font.cpp86
-rw-r--r--scene/resources/dynamic_font.h24
-rw-r--r--scene/resources/font.cpp4
-rw-r--r--scene/resources/material.cpp2
-rw-r--r--scene/resources/mesh.cpp7
-rw-r--r--scene/resources/packed_scene.cpp23
-rw-r--r--scene/resources/packed_scene.h6
-rw-r--r--scene/resources/room.h2
-rw-r--r--scene/resources/scene_format_text.cpp11
-rw-r--r--scene/resources/shader.cpp77
-rw-r--r--scene/resources/shader.h17
-rw-r--r--scene/resources/texture.cpp2
-rw-r--r--scene/resources/tile_set.cpp4
-rw-r--r--servers/arvr/arvr_positional_tracker.cpp23
-rw-r--r--servers/arvr_server.cpp21
-rw-r--r--servers/arvr_server.h14
-rw-r--r--servers/audio/audio_stream.cpp9
-rw-r--r--servers/physics_2d_server.cpp4
-rw-r--r--servers/visual/rasterizer.h2
-rw-r--r--servers/visual/shader_language.cpp137
-rw-r--r--servers/visual/shader_language.h25
-rw-r--r--servers/visual/shader_types.cpp142
-rw-r--r--servers/visual/visual_server_canvas.cpp60
-rw-r--r--servers/visual/visual_server_raster.cpp4
-rw-r--r--servers/visual/visual_server_raster.h3
-rw-r--r--servers/visual/visual_server_scene.h28
-rw-r--r--servers/visual/visual_server_wrap_mt.cpp10
-rw-r--r--servers/visual/visual_server_wrap_mt.h7
-rw-r--r--servers/visual_server.cpp2
-rw-r--r--servers/visual_server.h4
-rw-r--r--thirdparty/README.md8
-rw-r--r--thirdparty/squish/Add-Decompress-Bc5-to-Squish.patch143
-rw-r--r--thirdparty/squish/colourblock.cpp85
-rw-r--r--thirdparty/squish/colourblock.h3
-rw-r--r--thirdparty/squish/squish.cpp8
-rw-r--r--thirdparty/thekla_atlas/nvcore/Debug.cpp9
-rw-r--r--thirdparty/thekla_atlas/nvmath/ftoi.h5
-rw-r--r--thirdparty/thekla_atlas/nvmath/nvmath.h17
-rw-r--r--thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.cpp30
-rw-r--r--thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.h4
-rw-r--r--thirdparty/thekla_atlas/thekla/thekla_atlas.cpp23
402 files changed, 39820 insertions, 13344 deletions
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
index 2a3c298633..ddddc3a1a9 100644
--- a/ISSUE_TEMPLATE.md
+++ b/ISSUE_TEMPLATE.md
@@ -1,4 +1,9 @@
-**Operating system or device, Godot version, GPU Model and driver (if graphics related):**
+**Godot version:**
+<!-- If thirdparty or self-compiled, specify the build date or commit hash. -->
+
+
+**OS/device including version:**
+<!-- If graphics related, specify also GPU model and drivers. -->
**Issue description:**
@@ -8,5 +13,8 @@
**Steps to reproduce:**
-**Link to minimal example project:**
-<!-- Optional but very welcome. You can drag and drop a zip archive to upload it. -->
+**Minimal reproduction project:**
+<!-- Optional but greatly speeds up debugging. You can drag and drop a zip archive to upload it. -->
+
+
+- [ ] I searched the existing [GitHub issues](https://github.com/godotengine/godot/issues?utf8=%E2%9C%93&q=is%3Aissue+) for potential duplicates.
diff --git a/SConstruct b/SConstruct
index af1ffb544e..88b29695cb 100644
--- a/SConstruct
+++ b/SConstruct
@@ -168,7 +168,6 @@ opts.Add(BoolVariable('vsproj', "Generate Visual Studio Project.", False))
opts.Add(EnumVariable('warnings', "Set the level of warnings emitted during compilation", 'no', ('extra', 'all', 'moderate', 'no')))
opts.Add(BoolVariable('progress', "Show a progress indicator during build", True))
opts.Add(BoolVariable('dev', "If yes, alias for verbose=yes warnings=all", False))
-opts.Add(BoolVariable('openmp', "If yes, enable OpenMP", True))
opts.Add(EnumVariable('macports_clang', "Build using clang from MacPorts", 'no', ('no', '5.0', 'devel')))
# Thirdparty libraries
@@ -188,6 +187,7 @@ opts.Add(BoolVariable('builtin_squish', "Use the builtin squish library", True))
opts.Add(BoolVariable('builtin_thekla_atlas', "Use the builtin thekla_altas library", True))
opts.Add(BoolVariable('builtin_zlib', "Use the builtin zlib library", True))
opts.Add(BoolVariable('builtin_zstd', "Use the builtin zstd library", True))
+opts.Add(BoolVariable('no_editor_splash', "Don't use the custom splash screen for the editor", False))
# Environment setup
opts.Add("CXX", "C++ compiler")
@@ -239,6 +239,9 @@ if (env_base['target'] == 'debug'):
env_base.Append(CPPFLAGS=['-DDEBUG_MEMORY_ALLOC'])
env_base.Append(CPPFLAGS=['-DSCI_NAMESPACE'])
+if (env_base['no_editor_splash']):
+ env_base.Append(CPPFLAGS=['-DNO_EDITOR_SPLASH'])
+
if not env_base['deprecated']:
env_base.Append(CPPFLAGS=['-DDISABLE_DEPRECATED'])
@@ -407,9 +410,7 @@ if selected_platform in platform_list:
methods.update_version(env.module_version_string)
- suffix += env.module_version_string
-
- env["PROGSUFFIX"] = suffix + env["PROGSUFFIX"]
+ env["PROGSUFFIX"] = suffix + env.module_version_string + env["PROGSUFFIX"]
env["OBJSUFFIX"] = suffix + env["OBJSUFFIX"]
env["LIBSUFFIX"] = suffix + env["LIBSUFFIX"]
env["SHLIBSUFFIX"] = suffix + env["SHLIBSUFFIX"]
@@ -553,9 +554,9 @@ class cache_progress:
# decay since the ctime, and return a list with the entries
# (filename, size, weight).
current_time = time.time()
- file_stat = [(x[0], x[1][0], x[1][0] * math.exp(self.exponent_scale * (x[1][1] - current_time))) for x in file_stat]
- # Sort by highest weight (most sensible to keep) first
- file_stat.sort(key=lambda x: x[2], reverse=True)
+ file_stat = [(x[0], x[1][0], (current_time - x[1][1])) for x in file_stat]
+ # Sort by the most resently accessed files (most sensible to keep) first
+ file_stat.sort(key=lambda x: x[2])
# Search for the first entry where the storage limit is
# reached
sum, mark = 0, None
diff --git a/core/class_db.cpp b/core/class_db.cpp
index edd49fe95f..b18e3d2b65 100644
--- a/core/class_db.cpp
+++ b/core/class_db.cpp
@@ -348,10 +348,11 @@ uint64_t ClassDB::get_api_hash(APIType p_api) {
hash = hash_djb2_one_64(mb->get_argument_type(-1), hash); //return
for (int i = 0; i < mb->get_argument_count(); i++) {
- hash = hash_djb2_one_64(mb->get_argument_info(i).type, hash);
- hash = hash_djb2_one_64(mb->get_argument_info(i).name.hash(), hash);
- hash = hash_djb2_one_64(mb->get_argument_info(i).hint, hash);
- hash = hash_djb2_one_64(mb->get_argument_info(i).hint_string.hash(), hash);
+ const PropertyInfo info = mb->get_argument_info(i);
+ hash = hash_djb2_one_64(info.type, hash);
+ hash = hash_djb2_one_64(info.name.hash(), hash);
+ hash = hash_djb2_one_64(info.hint, hash);
+ hash = hash_djb2_one_64(info.hint_string.hash(), hash);
}
hash = hash_djb2_one_64(mb->get_default_argument_count(), hash);
diff --git a/core/dictionary.cpp b/core/dictionary.cpp
index 44fce2474f..66af6a1a9a 100644
--- a/core/dictionary.cpp
+++ b/core/dictionary.cpp
@@ -215,7 +215,7 @@ const Variant *Dictionary::next(const Variant *p_key) const {
return NULL;
}
-Dictionary Dictionary::copy() const {
+Dictionary Dictionary::duplicate() const {
Dictionary n;
diff --git a/core/dictionary.h b/core/dictionary.h
index c8177d5648..1d8ca0023e 100644
--- a/core/dictionary.h
+++ b/core/dictionary.h
@@ -74,7 +74,7 @@ public:
Array keys() const;
Array values() const;
- Dictionary copy() const;
+ Dictionary duplicate() const;
Dictionary(const Dictionary &p_from);
Dictionary();
diff --git a/core/global_constants.cpp b/core/global_constants.cpp
index a8f6e4da6c..b390590cf2 100644
--- a/core/global_constants.cpp
+++ b/core/global_constants.cpp
@@ -98,6 +98,11 @@ void register_global_constants() {
BIND_GLOBAL_ENUM_CONSTANT(MARGIN_RIGHT);
BIND_GLOBAL_ENUM_CONSTANT(MARGIN_BOTTOM);
+ BIND_GLOBAL_ENUM_CONSTANT(CORNER_TOP_LEFT);
+ BIND_GLOBAL_ENUM_CONSTANT(CORNER_TOP_RIGHT);
+ BIND_GLOBAL_ENUM_CONSTANT(CORNER_BOTTOM_RIGHT);
+ BIND_GLOBAL_ENUM_CONSTANT(CORNER_BOTTOM_LEFT);
+
BIND_GLOBAL_ENUM_CONSTANT(VERTICAL);
BIND_GLOBAL_ENUM_CONSTANT(HORIZONTAL);
@@ -573,6 +578,38 @@ void register_global_constants() {
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_VECTOR3_ARRAY", Variant::POOL_VECTOR3_ARRAY);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_COLOR_ARRAY", Variant::POOL_COLOR_ARRAY);
BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("TYPE_MAX", Variant::VARIANT_MAX);
+
+ //comparation
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_EQUAL", Variant::OP_EQUAL);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_NOT_EQUAL", Variant::OP_NOT_EQUAL);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_LESS", Variant::OP_LESS);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_LESS_EQUAL", Variant::OP_LESS_EQUAL);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_GREATER", Variant::OP_GREATER);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_GREATER_EQUAL", Variant::OP_GREATER_EQUAL);
+ //mathematic
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_ADD", Variant::OP_ADD);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_SUBTRACT", Variant::OP_SUBTRACT);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_MULTIPLY", Variant::OP_MULTIPLY);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_DIVIDE", Variant::OP_DIVIDE);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_NEGATE", Variant::OP_NEGATE);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_POSITIVE", Variant::OP_POSITIVE);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_MODULE", Variant::OP_MODULE);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_STRING_CONCAT", Variant::OP_STRING_CONCAT);
+ //bitwise
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_SHIFT_LEFT", Variant::OP_SHIFT_LEFT);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_SHIFT_RIGHT", Variant::OP_SHIFT_RIGHT);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_BIT_AND", Variant::OP_BIT_AND);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_BIT_OR", Variant::OP_BIT_OR);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_BIT_XOR", Variant::OP_BIT_XOR);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_BIT_NEGATE", Variant::OP_BIT_NEGATE);
+ //logic
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_AND", Variant::OP_AND);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_OR", Variant::OP_OR);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_XOR", Variant::OP_XOR);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_NOT", Variant::OP_NOT);
+ //containment
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_IN", Variant::OP_IN);
+ BIND_GLOBAL_ENUM_CONSTANT_CUSTOM("OP_MAX", Variant::OP_MAX);
}
void unregister_global_constants() {
diff --git a/core/hash_map.h b/core/hash_map.h
index a53cb53c84..3ec3961d73 100644
--- a/core/hash_map.h
+++ b/core/hash_map.h
@@ -313,7 +313,7 @@ public:
_FORCE_INLINE_ TData *getptr(const TKey &p_key) {
- if (!hash_table)
+ if (unlikely(!hash_table))
return NULL;
Element *e = const_cast<Element *>(get_element(p_key));
@@ -326,7 +326,7 @@ public:
_FORCE_INLINE_ const TData *getptr(const TKey &p_key) const {
- if (!hash_table)
+ if (unlikely(!hash_table))
return NULL;
const Element *e = const_cast<Element *>(get_element(p_key));
@@ -345,7 +345,7 @@ public:
template <class C>
_FORCE_INLINE_ TData *custom_getptr(C p_custom_key, uint32_t p_custom_hash) {
- if (!hash_table)
+ if (unlikely(!hash_table))
return NULL;
uint32_t hash = p_custom_hash;
@@ -371,7 +371,7 @@ public:
template <class C>
_FORCE_INLINE_ const TData *custom_getptr(C p_custom_key, uint32_t p_custom_hash) const {
- if (!hash_table)
+ if (unlikely(!hash_table))
return NULL;
uint32_t hash = p_custom_hash;
@@ -400,7 +400,7 @@ public:
bool erase(const TKey &p_key) {
- if (!hash_table)
+ if (unlikely(!hash_table))
return false;
uint32_t hash = Hasher::hash(p_key);
@@ -478,7 +478,8 @@ public:
*/
const TKey *next(const TKey *p_key) const {
- if (!hash_table) return NULL;
+ if (unlikely(!hash_table))
+ return NULL;
if (!p_key) { /* get the first key */
@@ -559,7 +560,7 @@ public:
}
void get_key_value_ptr_array(const Pair **p_pairs) const {
- if (!hash_table)
+ if (unlikely(!hash_table))
return;
for (int i = 0; i < (1 << hash_table_power); i++) {
@@ -573,7 +574,7 @@ public:
}
void get_key_list(List<TKey> *p_keys) const {
- if (!hash_table)
+ if (unlikely(!hash_table))
return;
for (int i = 0; i < (1 << hash_table_power); i++) {
diff --git a/core/image.cpp b/core/image.cpp
index 422c0e407b..ba6848eecf 100644
--- a/core/image.cpp
+++ b/core/image.cpp
@@ -2287,6 +2287,9 @@ void Image::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_pixel", "x", "y", "color"), &Image::set_pixel);
ClassDB::bind_method(D_METHOD("get_pixel", "x", "y"), &Image::get_pixel);
+ ClassDB::bind_method(D_METHOD("load_png_from_buffer", "buffer"), &Image::load_png_from_buffer);
+ ClassDB::bind_method(D_METHOD("load_jpg_from_buffer", "buffer"), &Image::load_jpg_from_buffer);
+
ADD_PROPERTY(PropertyInfo(Variant::DICTIONARY, "data", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE), "_set_data", "_get_data");
BIND_ENUM_CONSTANT(FORMAT_L8); //luminance
@@ -2505,6 +2508,40 @@ String Image::get_format_name(Format p_format) {
return format_names[p_format];
}
+Error Image::load_png_from_buffer(const PoolVector<uint8_t> &p_array) {
+
+ int buffer_size = p_array.size();
+
+ ERR_FAIL_COND_V(buffer_size == 0, ERR_INVALID_PARAMETER);
+ ERR_FAIL_COND_V(!_png_mem_loader_func, ERR_INVALID_PARAMETER);
+
+ PoolVector<uint8_t>::Read r = p_array.read();
+
+ Ref<Image> image = _png_mem_loader_func(r.ptr(), buffer_size);
+ ERR_FAIL_COND_V(!image.is_valid(), ERR_PARSE_ERROR);
+
+ copy_internals_from(image);
+
+ return OK;
+}
+
+Error Image::load_jpg_from_buffer(const PoolVector<uint8_t> &p_array) {
+
+ int buffer_size = p_array.size();
+
+ ERR_FAIL_COND_V(buffer_size == 0, ERR_INVALID_PARAMETER);
+ ERR_FAIL_COND_V(!_jpg_mem_loader_func, ERR_INVALID_PARAMETER);
+
+ PoolVector<uint8_t>::Read r = p_array.read();
+
+ Ref<Image> image = _jpg_mem_loader_func(r.ptr(), buffer_size);
+ ERR_FAIL_COND_V(!image.is_valid(), ERR_PARSE_ERROR);
+
+ copy_internals_from(image);
+
+ return OK;
+}
+
Image::Image(const uint8_t *p_mem_png_jpg, int p_len) {
width = 0;
diff --git a/core/image.h b/core/image.h
index 24693aa706..cf7632a1f1 100644
--- a/core/image.h
+++ b/core/image.h
@@ -296,6 +296,9 @@ public:
static void set_compress_bc_func(void (*p_compress_func)(Image *, CompressSource));
static String get_format_name(Format p_format);
+ Error load_png_from_buffer(const PoolVector<uint8_t> &p_array);
+ Error load_jpg_from_buffer(const PoolVector<uint8_t> &p_array);
+
Image(const uint8_t *p_mem_png_jpg, int p_len = -1);
Image(const char **p_xpm);
diff --git a/core/io/packet_peer.cpp b/core/io/packet_peer.cpp
index 16c73c26e7..c6b12f73ae 100644
--- a/core/io/packet_peer.cpp
+++ b/core/io/packet_peer.cpp
@@ -49,7 +49,7 @@ bool PacketPeer::is_object_decoding_allowed() const {
return allow_object_decoding;
}
-Error PacketPeer::get_packet_buffer(PoolVector<uint8_t> &r_buffer) const {
+Error PacketPeer::get_packet_buffer(PoolVector<uint8_t> &r_buffer) {
const uint8_t *buffer;
int buffer_size;
@@ -78,7 +78,7 @@ Error PacketPeer::put_packet_buffer(const PoolVector<uint8_t> &p_buffer) {
return put_packet(&r[0], len);
}
-Error PacketPeer::get_var(Variant &r_variant) const {
+Error PacketPeer::get_var(Variant &r_variant) {
const uint8_t *buffer;
int buffer_size;
@@ -107,7 +107,7 @@ Error PacketPeer::put_var(const Variant &p_packet) {
return put_packet(buf, len);
}
-Variant PacketPeer::_bnd_get_var() const {
+Variant PacketPeer::_bnd_get_var() {
Variant var;
get_var(var);
@@ -117,7 +117,7 @@ Variant PacketPeer::_bnd_get_var() const {
Error PacketPeer::_put_packet(const PoolVector<uint8_t> &p_buffer) {
return put_packet_buffer(p_buffer);
}
-PoolVector<uint8_t> PacketPeer::_get_packet() const {
+PoolVector<uint8_t> PacketPeer::_get_packet() {
PoolVector<uint8_t> raw;
last_get_error = get_packet_buffer(raw);
@@ -202,7 +202,7 @@ int PacketPeerStream::get_available_packet_count() const {
return count;
}
-Error PacketPeerStream::get_packet(const uint8_t **r_buffer, int &r_buffer_size) const {
+Error PacketPeerStream::get_packet(const uint8_t **r_buffer, int &r_buffer_size) {
ERR_FAIL_COND_V(peer.is_null(), ERR_UNCONFIGURED);
_poll_buffer();
diff --git a/core/io/packet_peer.h b/core/io/packet_peer.h
index b08d44ad8a..a6d363ec12 100644
--- a/core/io/packet_peer.h
+++ b/core/io/packet_peer.h
@@ -37,13 +37,13 @@ class PacketPeer : public Reference {
GDCLASS(PacketPeer, Reference);
- Variant _bnd_get_var() const;
+ Variant _bnd_get_var();
void _bnd_put_var(const Variant &p_var);
static void _bind_methods();
Error _put_packet(const PoolVector<uint8_t> &p_buffer);
- PoolVector<uint8_t> _get_packet() const;
+ PoolVector<uint8_t> _get_packet();
Error _get_packet_error() const;
mutable Error last_get_error;
@@ -52,17 +52,17 @@ class PacketPeer : public Reference {
public:
virtual int get_available_packet_count() const = 0;
- virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size) const = 0; ///< buffer is GONE after next get_packet
+ virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size) = 0; ///< buffer is GONE after next get_packet
virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size) = 0;
virtual int get_max_packet_size() const = 0;
/* helpers / binders */
- virtual Error get_packet_buffer(PoolVector<uint8_t> &r_buffer) const;
+ virtual Error get_packet_buffer(PoolVector<uint8_t> &r_buffer);
virtual Error put_packet_buffer(const PoolVector<uint8_t> &p_buffer);
- virtual Error get_var(Variant &r_variant) const;
+ virtual Error get_var(Variant &r_variant);
virtual Error put_var(const Variant &p_packet);
void set_allow_object_decoding(bool p_enable);
@@ -91,7 +91,7 @@ protected:
public:
virtual int get_available_packet_count() const;
- virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size) const;
+ virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size);
virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size);
virtual int get_max_packet_size() const;
diff --git a/core/io/resource_loader.cpp b/core/io/resource_loader.cpp
index d2aad1d63a..dea9f38634 100644
--- a/core/io/resource_loader.cpp
+++ b/core/io/resource_loader.cpp
@@ -35,6 +35,7 @@
#include "print_string.h"
#include "project_settings.h"
#include "translation.h"
+#include "variant_parser.h"
ResourceFormatLoader *ResourceLoader::loader[MAX_LOADERS];
int ResourceLoader::loader_count = 0;
@@ -454,6 +455,49 @@ String ResourceLoader::_path_remap(const String &p_path, bool *r_translation_rem
if (path_remaps.has(new_path)) {
new_path = path_remaps[new_path];
}
+
+ if (new_path == p_path) { //did not remap
+ //try file remap
+ Error err;
+ FileAccess *f = FileAccess::open(p_path + ".remap", FileAccess::READ, &err);
+
+ if (f) {
+
+ VariantParser::StreamFile stream;
+ stream.f = f;
+
+ String assign;
+ Variant value;
+ VariantParser::Tag next_tag;
+
+ int lines = 0;
+ String error_text;
+ while (true) {
+
+ assign = Variant();
+ next_tag.fields.clear();
+ next_tag.name = String();
+
+ err = VariantParser::parse_tag_assign_eof(&stream, lines, error_text, next_tag, assign, value, NULL, true);
+ if (err == ERR_FILE_EOF) {
+ break;
+ } else if (err != OK) {
+ ERR_PRINTS("Parse error: " + p_path + ".remap:" + itos(lines) + " error: " + error_text);
+ break;
+ }
+
+ if (assign == "path") {
+ new_path = value;
+ break;
+ } else if (next_tag.name != "remap") {
+ break;
+ }
+ }
+
+ memdelete(f);
+ }
+ }
+
return new_path;
}
diff --git a/core/math/a_star.cpp b/core/math/a_star.cpp
index 4498efeb41..7c5dbc895a 100644
--- a/core/math/a_star.cpp
+++ b/core/math/a_star.cpp
@@ -459,7 +459,7 @@ void AStar::_bind_methods() {
ClassDB::bind_method(D_METHOD("has_point", "id"), &AStar::has_point);
ClassDB::bind_method(D_METHOD("get_points"), &AStar::get_points);
- ClassDB::bind_method(D_METHOD("get_point_connections"), &AStar::get_point_connections);
+ ClassDB::bind_method(D_METHOD("get_point_connections", "id"), &AStar::get_point_connections);
ClassDB::bind_method(D_METHOD("connect_points", "id", "to_id", "bidirectional"), &AStar::connect_points, DEFVAL(true));
ClassDB::bind_method(D_METHOD("disconnect_points", "id", "to_id"), &AStar::disconnect_points);
diff --git a/core/math/math_2d.cpp b/core/math/math_2d.cpp
index 11003c1cd5..8ad164d4dc 100644
--- a/core/math/math_2d.cpp
+++ b/core/math/math_2d.cpp
@@ -102,69 +102,6 @@ Vector2 Vector2::cross(real_t p_other) const {
return Vector2(p_other * y, -p_other * x);
}
-Vector2 Vector2::operator+(const Vector2 &p_v) const {
-
- return Vector2(x + p_v.x, y + p_v.y);
-}
-void Vector2::operator+=(const Vector2 &p_v) {
-
- x += p_v.x;
- y += p_v.y;
-}
-Vector2 Vector2::operator-(const Vector2 &p_v) const {
-
- return Vector2(x - p_v.x, y - p_v.y);
-}
-void Vector2::operator-=(const Vector2 &p_v) {
-
- x -= p_v.x;
- y -= p_v.y;
-}
-
-Vector2 Vector2::operator*(const Vector2 &p_v1) const {
-
- return Vector2(x * p_v1.x, y * p_v1.y);
-};
-
-Vector2 Vector2::operator*(const real_t &rvalue) const {
-
- return Vector2(x * rvalue, y * rvalue);
-};
-void Vector2::operator*=(const real_t &rvalue) {
-
- x *= rvalue;
- y *= rvalue;
-};
-
-Vector2 Vector2::operator/(const Vector2 &p_v1) const {
-
- return Vector2(x / p_v1.x, y / p_v1.y);
-};
-
-Vector2 Vector2::operator/(const real_t &rvalue) const {
-
- return Vector2(x / rvalue, y / rvalue);
-};
-
-void Vector2::operator/=(const real_t &rvalue) {
-
- x /= rvalue;
- y /= rvalue;
-};
-
-Vector2 Vector2::operator-() const {
-
- return Vector2(-x, -y);
-}
-
-bool Vector2::operator==(const Vector2 &p_vec2) const {
-
- return x == p_vec2.x && y == p_vec2.y;
-}
-bool Vector2::operator!=(const Vector2 &p_vec2) const {
-
- return x != p_vec2.x || y != p_vec2.y;
-}
Vector2 Vector2::floor() const {
return Vector2(Math::floor(x), Math::floor(y));
diff --git a/core/math/math_2d.h b/core/math/math_2d.h
index 60351445c0..4635a4da55 100644
--- a/core/math/math_2d.h
+++ b/core/math/math_2d.h
@@ -187,6 +187,70 @@ _FORCE_INLINE_ Vector2 operator*(real_t p_scalar, const Vector2 &p_vec) {
return p_vec * p_scalar;
}
+_FORCE_INLINE_ Vector2 Vector2::operator+(const Vector2 &p_v) const {
+
+ return Vector2(x + p_v.x, y + p_v.y);
+}
+_FORCE_INLINE_ void Vector2::operator+=(const Vector2 &p_v) {
+
+ x += p_v.x;
+ y += p_v.y;
+}
+_FORCE_INLINE_ Vector2 Vector2::operator-(const Vector2 &p_v) const {
+
+ return Vector2(x - p_v.x, y - p_v.y);
+}
+_FORCE_INLINE_ void Vector2::operator-=(const Vector2 &p_v) {
+
+ x -= p_v.x;
+ y -= p_v.y;
+}
+
+_FORCE_INLINE_ Vector2 Vector2::operator*(const Vector2 &p_v1) const {
+
+ return Vector2(x * p_v1.x, y * p_v1.y);
+};
+
+_FORCE_INLINE_ Vector2 Vector2::operator*(const real_t &rvalue) const {
+
+ return Vector2(x * rvalue, y * rvalue);
+};
+_FORCE_INLINE_ void Vector2::operator*=(const real_t &rvalue) {
+
+ x *= rvalue;
+ y *= rvalue;
+};
+
+_FORCE_INLINE_ Vector2 Vector2::operator/(const Vector2 &p_v1) const {
+
+ return Vector2(x / p_v1.x, y / p_v1.y);
+};
+
+_FORCE_INLINE_ Vector2 Vector2::operator/(const real_t &rvalue) const {
+
+ return Vector2(x / rvalue, y / rvalue);
+};
+
+_FORCE_INLINE_ void Vector2::operator/=(const real_t &rvalue) {
+
+ x /= rvalue;
+ y /= rvalue;
+};
+
+_FORCE_INLINE_ Vector2 Vector2::operator-() const {
+
+ return Vector2(-x, -y);
+}
+
+_FORCE_INLINE_ bool Vector2::operator==(const Vector2 &p_vec2) const {
+
+ return x == p_vec2.x && y == p_vec2.y;
+}
+_FORCE_INLINE_ bool Vector2::operator!=(const Vector2 &p_vec2) const {
+
+ return x != p_vec2.x || y != p_vec2.y;
+}
+
Vector2 Vector2::linear_interpolate(const Vector2 &p_b, real_t p_t) const {
Vector2 res = *this;
@@ -336,9 +400,10 @@ struct Rect2 {
g.size.height += p_by * 2;
return g;
}
+
inline Rect2 grow_margin(Margin p_margin, real_t p_amount) const {
Rect2 g = *this;
- g.grow_individual((MARGIN_LEFT == p_margin) ? p_amount : 0,
+ g = g.grow_individual((MARGIN_LEFT == p_margin) ? p_amount : 0,
(MARGIN_TOP == p_margin) ? p_amount : 0,
(MARGIN_RIGHT == p_margin) ? p_amount : 0,
(MARGIN_BOTTOM == p_margin) ? p_amount : 0);
diff --git a/core/math/matrix3.cpp b/core/math/matrix3.cpp
index ab3bca79ae..5346141470 100644
--- a/core/math/matrix3.cpp
+++ b/core/math/matrix3.cpp
@@ -311,6 +311,15 @@ void Basis::rotate(const Vector3 &p_axis, real_t p_phi) {
*this = rotated(p_axis, p_phi);
}
+void Basis::rotate_local(const Vector3 &p_axis, real_t p_phi) {
+
+ *this = rotated_local(p_axis, p_phi);
+}
+Basis Basis::rotated_local(const Vector3 &p_axis, real_t p_phi) const {
+
+ return (*this) * Basis(p_axis, p_phi);
+}
+
Basis Basis::rotated(const Vector3 &p_euler) const {
return Basis(p_euler) * (*this);
}
diff --git a/core/math/matrix3.h b/core/math/matrix3.h
index 9a33b8203d..9a75308f08 100644
--- a/core/math/matrix3.h
+++ b/core/math/matrix3.h
@@ -75,6 +75,9 @@ public:
void rotate(const Vector3 &p_axis, real_t p_phi);
Basis rotated(const Vector3 &p_axis, real_t p_phi) const;
+ void rotate_local(const Vector3 &p_axis, real_t p_phi);
+ Basis rotated_local(const Vector3 &p_axis, real_t p_phi) const;
+
void rotate(const Vector3 &p_euler);
Basis rotated(const Vector3 &p_euler) const;
diff --git a/core/os/file_access.cpp b/core/os/file_access.cpp
index 7b2062936b..133c70b671 100644
--- a/core/os/file_access.cpp
+++ b/core/os/file_access.cpp
@@ -273,9 +273,62 @@ String FileAccess::get_token() const {
return String::utf8(token.get_data());
}
+class CharBuffer {
+ Vector<char> vector;
+ char stack_buffer[256];
+
+ char *buffer;
+ int capacity;
+ int written;
+
+ bool grow() {
+
+ if (vector.resize(next_power_of_2(1 + written)) != OK) {
+
+ return false;
+ }
+
+ if (buffer == stack_buffer) { // first chunk?
+
+ for (int i = 0; i < written; i++) {
+
+ vector[i] = stack_buffer[i];
+ }
+ }
+
+ buffer = vector.ptrw();
+ capacity = vector.size();
+ ERR_FAIL_COND_V(written >= capacity, false);
+
+ return true;
+ }
+
+public:
+ _FORCE_INLINE_ CharBuffer() :
+ buffer(stack_buffer),
+ capacity(sizeof(stack_buffer) / sizeof(char)),
+ written(0) {
+ }
+
+ _FORCE_INLINE_ void push_back(char c) {
+
+ if (written >= capacity) {
+
+ ERR_FAIL_COND(!grow());
+ }
+
+ buffer[written++] = c;
+ }
+
+ _FORCE_INLINE_ const char *get_data() const {
+
+ return buffer;
+ }
+};
+
String FileAccess::get_line() const {
- CharString line;
+ CharBuffer line;
CharType c = get_8();
@@ -516,6 +569,37 @@ String FileAccess::get_md5(const String &p_file) {
return ret;
}
+String FileAccess::get_multiple_md5(const Vector<String> &p_file) {
+
+ MD5_CTX md5;
+ MD5Init(&md5);
+
+ for (int i = 0; i < p_file.size(); i++) {
+ FileAccess *f = FileAccess::open(p_file[i], READ);
+ ERR_CONTINUE(!f);
+
+ unsigned char step[32768];
+
+ while (true) {
+
+ int br = f->get_buffer(step, 32768);
+ if (br > 0) {
+
+ MD5Update(&md5, step, br);
+ }
+ if (br < 4096)
+ break;
+ }
+ memdelete(f);
+ }
+
+ MD5Final(&md5);
+
+ String ret = String::md5(md5.digest);
+
+ return ret;
+}
+
String FileAccess::get_sha256(const String &p_file) {
FileAccess *f = FileAccess::open(p_file, READ);
diff --git a/core/os/file_access.h b/core/os/file_access.h
index 6fda3d9668..548d7b71f1 100644
--- a/core/os/file_access.h
+++ b/core/os/file_access.h
@@ -155,6 +155,7 @@ public:
static String get_md5(const String &p_file);
static String get_sha256(const String &p_file);
+ static String get_multiple_md5(const Vector<String> &p_file);
static Vector<uint8_t> get_file_as_array(const String &p_path);
diff --git a/core/os/input_event.cpp b/core/os/input_event.cpp
index 9b2bd30868..0cab8c10ef 100644
--- a/core/os/input_event.cpp
+++ b/core/os/input_event.cpp
@@ -32,14 +32,6 @@
#include "input_map.h"
#include "os/keyboard.h"
-void InputEvent::set_id(uint32_t p_id) {
- id = p_id;
-}
-
-uint32_t InputEvent::get_id() const {
- return id;
-}
-
void InputEvent::set_device(int p_device) {
device = p_device;
}
@@ -99,9 +91,6 @@ bool InputEvent::is_action_type() const {
void InputEvent::_bind_methods() {
- ClassDB::bind_method(D_METHOD("set_id", "id"), &InputEvent::set_id);
- ClassDB::bind_method(D_METHOD("get_id"), &InputEvent::get_id);
-
ClassDB::bind_method(D_METHOD("set_device", "device"), &InputEvent::set_device);
ClassDB::bind_method(D_METHOD("get_device"), &InputEvent::get_device);
@@ -125,7 +114,6 @@ void InputEvent::_bind_methods() {
InputEvent::InputEvent() {
- id = 0;
device = 0;
}
@@ -441,7 +429,6 @@ Ref<InputEvent> InputEventMouseButton::xformed_by(const Transform2D &p_xform, co
Ref<InputEventMouseButton> mb;
mb.instance();
- mb->set_id(get_id());
mb->set_device(get_device());
mb->set_modifiers_from_event(this);
@@ -557,7 +544,6 @@ Ref<InputEvent> InputEventMouseMotion::xformed_by(const Transform2D &p_xform, co
Ref<InputEventMouseMotion> mm;
mm.instance();
- mm->set_id(get_id());
mm->set_device(get_device());
mm->set_modifiers_from_event(this);
@@ -764,7 +750,6 @@ Ref<InputEvent> InputEventScreenTouch::xformed_by(const Transform2D &p_xform, co
Ref<InputEventScreenTouch> st;
st.instance();
- st->set_id(get_id());
st->set_device(get_device());
st->set_index(index);
st->set_position(p_xform.xform(pos + p_local_ofs));
@@ -845,7 +830,6 @@ Ref<InputEvent> InputEventScreenDrag::xformed_by(const Transform2D &p_xform, con
sd.instance();
- sd->set_id(get_id());
sd->set_device(get_device());
sd->set_index(index);
@@ -968,7 +952,6 @@ Ref<InputEvent> InputEventMagnifyGesture::xformed_by(const Transform2D &p_xform,
Ref<InputEventMagnifyGesture> ev;
ev.instance();
- ev->set_id(get_id());
ev->set_device(get_device());
ev->set_modifiers_from_event(this);
@@ -1006,7 +989,6 @@ Ref<InputEvent> InputEventPanGesture::xformed_by(const Transform2D &p_xform, con
Ref<InputEventPanGesture> ev;
ev.instance();
- ev->set_id(get_id());
ev->set_device(get_device());
ev->set_modifiers_from_event(this);
diff --git a/core/os/input_event.h b/core/os/input_event.h
index 614a3289ba..9b1a2736b1 100644
--- a/core/os/input_event.h
+++ b/core/os/input_event.h
@@ -144,16 +144,12 @@ enum JoystickList {
class InputEvent : public Resource {
GDCLASS(InputEvent, Resource)
- uint32_t id;
int device;
protected:
static void _bind_methods();
public:
- void set_id(uint32_t p_id);
- uint32_t get_id() const;
-
void set_device(int p_device);
int get_device() const;
diff --git a/core/os/os.cpp b/core/os/os.cpp
index 8088a6fa74..7010d44930 100644
--- a/core/os/os.cpp
+++ b/core/os/os.cpp
@@ -536,12 +536,21 @@ String OS::get_joy_guid(int p_device) const {
void OS::set_context(int p_context) {
}
+
+OS::SwitchVSyncCallbackInThread OS::switch_vsync_function = NULL;
+
void OS::set_use_vsync(bool p_enable) {
+ _use_vsync = p_enable;
+ if (switch_vsync_function) { //if a function was set, use function
+ switch_vsync_function(p_enable);
+ } else { //otherwise just call here
+ _set_use_vsync(p_enable);
+ }
}
bool OS::is_vsync_enabled() const {
- return true;
+ return _use_vsync;
}
OS::PowerState OS::get_power_state() {
@@ -606,10 +615,6 @@ bool OS::has_feature(const String &p_feature) {
return false;
}
-void *OS::get_stack_bottom() const {
- return _stack_bottom;
-}
-
OS::OS() {
void *volatile stack_bottom;
diff --git a/core/os/os.h b/core/os/os.h
index 41500acd93..2faaa6ab8f 100644
--- a/core/os/os.h
+++ b/core/os/os.h
@@ -58,6 +58,7 @@ class OS {
int _exit_code;
int _orientation;
bool _allow_hidpi;
+ bool _use_vsync;
char *last_error;
@@ -435,8 +436,16 @@ public:
virtual void set_context(int p_context);
- virtual void set_use_vsync(bool p_enable);
- virtual bool is_vsync_enabled() const;
+ //amazing hack because OpenGL needs this to be set on a separate thread..
+ //also core can't access servers, so a callback must be used
+ typedef void (*SwitchVSyncCallbackInThread)(bool);
+
+ static SwitchVSyncCallbackInThread switch_vsync_function;
+ void set_use_vsync(bool p_enable);
+ bool is_vsync_enabled() const;
+
+ //real, actual overridable function to switch vsync, which needs to be called from graphics thread if needed
+ virtual void _set_use_vsync(bool p_enable) {}
virtual OS::PowerState get_power_state();
virtual int get_power_seconds_left();
@@ -445,13 +454,6 @@ public:
virtual void force_process_input(){};
bool has_feature(const String &p_feature);
- /**
- * Returns the stack bottom of the main thread of the application.
- * This may be of use when integrating languages with garbage collectors that
- * need to check whether a pointer is on the stack.
- */
- virtual void *get_stack_bottom() const;
-
bool is_hidpi_allowed() const { return _allow_hidpi; }
OS();
virtual ~OS();
diff --git a/core/os/threaded_array_processor.cpp b/core/os/threaded_array_processor.cpp
new file mode 100644
index 0000000000..8e92508ea5
--- /dev/null
+++ b/core/os/threaded_array_processor.cpp
@@ -0,0 +1,2 @@
+#include "threaded_array_processor.h"
+
diff --git a/core/os/threaded_array_processor.h b/core/os/threaded_array_processor.h
new file mode 100644
index 0000000000..e584fbb193
--- /dev/null
+++ b/core/os/threaded_array_processor.h
@@ -0,0 +1,80 @@
+#ifndef THREADED_ARRAY_PROCESSOR_H
+#define THREADED_ARRAY_PROCESSOR_H
+
+#include "os/mutex.h"
+#include "os/os.h"
+#include "os/thread.h"
+#include "safe_refcount.h"
+#include "thread_safe.h"
+
+template <class C, class U>
+struct ThreadArrayProcessData {
+ uint32_t elements;
+ uint32_t index;
+ C *instance;
+ U userdata;
+ void (C::*method)(uint32_t, U);
+
+ void process(uint32_t p_index) {
+ (instance->*method)(p_index, userdata);
+ }
+};
+
+#ifndef NO_THREADS
+
+template <class T>
+void process_array_thread(void *ud) {
+
+ T &data = *(T *)ud;
+ while (true) {
+ uint32_t index = atomic_increment(&data.index);
+ if (index >= data.elements)
+ break;
+ data.process(index);
+ }
+}
+
+template <class C, class M, class U>
+void thread_process_array(uint32_t p_elements, C *p_instance, M p_method, U p_userdata) {
+
+ ThreadArrayProcessData<C, U> data;
+ data.method = p_method;
+ data.instance = p_instance;
+ data.userdata = p_userdata;
+ data.index = 0;
+ data.elements = p_elements;
+ data.process(data.index); //process first, let threads increment for next
+
+ Vector<Thread *> threads;
+
+ threads.resize(OS::get_singleton()->get_processor_count());
+
+ for (int i = 0; i < threads.size(); i++) {
+ threads[i] = Thread::create(process_array_thread<ThreadArrayProcessData<C, U> >, &data);
+ }
+
+ for (int i = 0; i < threads.size(); i++) {
+ Thread::wait_to_finish(threads[i]);
+ memdelete(threads[i]);
+ }
+}
+
+#else
+
+template <class C, class M, class U>
+void thread_process_array(uint32_t p_elements, C *p_instance, M p_method, U p_userdata) {
+
+ ThreadArrayProcessData<C, U> data;
+ data.method = p_method;
+ data.instance = p_instance;
+ data.userdata = p_userdata;
+ data.index = 0;
+ data.elements = p_elements;
+ for (uint32_t i = 0; i < p_elements; i++) {
+ data.process(i);
+ }
+}
+
+#endif
+
+#endif // THREADED_ARRAY_PROCESSOR_H
diff --git a/core/script_language.cpp b/core/script_language.cpp
index c1e9d55872..2c32054e77 100644
--- a/core/script_language.cpp
+++ b/core/script_language.cpp
@@ -54,6 +54,8 @@ void Script::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_source_code"), &Script::get_source_code);
ClassDB::bind_method(D_METHOD("set_source_code", "source"), &Script::set_source_code);
ClassDB::bind_method(D_METHOD("reload", "keep_state"), &Script::reload, DEFVAL(false));
+ ClassDB::bind_method(D_METHOD("get_base_script"), &Script::get_base_script);
+ ClassDB::bind_method(D_METHOD("get_instance_base_type"), &Script::get_instance_base_type);
ClassDB::bind_method(D_METHOD("has_script_signal", "signal_name"), &Script::has_script_signal);
diff --git a/core/ustring.cpp b/core/ustring.cpp
index 9cd94ac919..261cc0778c 100644
--- a/core/ustring.cpp
+++ b/core/ustring.cpp
@@ -356,7 +356,7 @@ bool String::operator<(const CharType *p_str) const {
return is_str_less(c_str(), p_str);
}
-bool String::operator<=(String p_str) const {
+bool String::operator<=(const String &p_str) const {
return (*this < p_str) || (*this == p_str);
}
@@ -371,7 +371,7 @@ bool String::operator<(const char *p_str) const {
return is_str_less(c_str(), p_str);
}
-bool String::operator<(String p_str) const {
+bool String::operator<(const String &p_str) const {
return operator<(p_str.c_str());
}
@@ -679,7 +679,7 @@ Vector<String> String::split_spaces() const {
return ret;
}
-Vector<String> String::split(const String &p_splitter, bool p_allow_empty) const {
+Vector<String> String::split(const String &p_splitter, bool p_allow_empty, int p_maxsplit) const {
Vector<String> ret;
int from = 0;
@@ -690,8 +690,21 @@ Vector<String> String::split(const String &p_splitter, bool p_allow_empty) const
int end = find(p_splitter, from);
if (end < 0)
end = len;
- if (p_allow_empty || (end > from))
- ret.push_back(substr(from, end - from));
+ if (p_allow_empty || (end > from)) {
+ if (p_maxsplit <= 0)
+ ret.push_back(substr(from, end - from));
+ else if (p_maxsplit > 0) {
+
+ // Put rest of the string and leave cycle.
+ if (p_maxsplit == ret.size()) {
+ ret.push_back(substr(from, len));
+ break;
+ }
+
+ // Otherwise, push items until positive limit is reached.
+ ret.push_back(substr(from, end - from));
+ }
+ }
if (end == len)
break;
@@ -834,7 +847,10 @@ String String::to_upper() const {
for (int i = 0; i < upper.size(); i++) {
- upper[i] = _find_upper(upper[i]);
+ const char s = upper[i];
+ const char t = _find_upper(s);
+ if (s != t) // avoid copy on write
+ upper[i] = t;
}
return upper;
@@ -842,20 +858,17 @@ String String::to_upper() const {
String String::to_lower() const {
- String upper = *this;
+ String lower = *this;
- for (int i = 0; i < upper.size(); i++) {
+ for (int i = 0; i < lower.size(); i++) {
- upper[i] = _find_lower(upper[i]);
+ const char s = lower[i];
+ const char t = _find_lower(s);
+ if (s != t) // avoid copy on write
+ lower[i] = t;
}
- return upper;
-}
-
-int String::length() const {
-
- int s = size();
- return s ? (s - 1) : 0; // length does not include zero
+ return lower;
}
const CharType *String::c_str() const {
@@ -2107,7 +2120,7 @@ Vector<uint8_t> String::sha256_buffer() const {
return ret;
}
-String String::insert(int p_at_pos, String p_string) const {
+String String::insert(int p_at_pos, const String &p_string) const {
if (p_at_pos < 0)
return *this;
@@ -2135,10 +2148,15 @@ String String::substr(int p_from, int p_chars) const {
p_chars = length() - p_from;
}
+ if (p_from == 0 && p_chars >= length()) {
+
+ return String(*this);
+ }
+
return String(&c_str()[p_from], p_chars);
}
-int String::find_last(String p_str) const {
+int String::find_last(const String &p_str) const {
int pos = -1;
int findfrom = 0;
@@ -2151,19 +2169,21 @@ int String::find_last(String p_str) const {
return pos;
}
-int String::find(String p_str, int p_from) const {
+
+int String::find(const String &p_str, int p_from) const {
if (p_from < 0)
return -1;
- int src_len = p_str.length();
+ const int src_len = p_str.length();
- int len = length();
+ const int len = length();
if (src_len == 0 || len == 0)
return -1; //wont find anything!
const CharType *src = c_str();
+ const CharType *str = p_str.c_str();
for (int i = p_from; i <= (len - src_len); i++) {
@@ -2178,7 +2198,7 @@ int String::find(String p_str, int p_from) const {
return -1;
};
- if (src[read_pos] != p_str[j]) {
+ if (src[read_pos] != str[j]) {
found = false;
break;
}
@@ -2191,6 +2211,62 @@ int String::find(String p_str, int p_from) const {
return -1;
}
+int String::find(const char *p_str, int p_from) const {
+
+ if (p_from < 0)
+ return -1;
+
+ const int len = length();
+
+ if (len == 0)
+ return -1; //wont find anything!
+
+ const CharType *src = c_str();
+
+ int src_len = 0;
+ while (p_str[src_len] != '\0')
+ src_len++;
+
+ if (src_len == 1) {
+
+ const char needle = p_str[0];
+
+ for (int i = p_from; i < len; i++) {
+
+ if (src[i] == needle) {
+ return i;
+ }
+ }
+
+ } else {
+
+ for (int i = p_from; i <= (len - src_len); i++) {
+
+ bool found = true;
+ for (int j = 0; j < src_len; j++) {
+
+ int read_pos = i + j;
+
+ if (read_pos >= len) {
+
+ ERR_PRINT("read_pos>=len");
+ return -1;
+ };
+
+ if (src[read_pos] != p_str[j]) {
+ found = false;
+ break;
+ }
+ }
+
+ if (found)
+ return i;
+ }
+ }
+
+ return -1;
+}
+
int String::findmk(const Vector<String> &p_keys, int p_from, int *r_key) const {
if (p_from < 0)
@@ -2245,7 +2321,7 @@ int String::findmk(const Vector<String> &p_keys, int p_from, int *r_key) const {
return -1;
}
-int String::findn(String p_str, int p_from) const {
+int String::findn(const String &p_str, int p_from) const {
if (p_from < 0)
return -1;
@@ -2286,7 +2362,7 @@ int String::findn(String p_str, int p_from) const {
return -1;
}
-int String::rfind(String p_str, int p_from) const {
+int String::rfind(const String &p_str, int p_from) const {
// establish a limit
int limit = length() - p_str.length();
@@ -2332,7 +2408,7 @@ int String::rfind(String p_str, int p_from) const {
return -1;
}
-int String::rfindn(String p_str, int p_from) const {
+int String::rfindn(const String &p_str, int p_from) const {
// establish a limit
int limit = length() - p_str.length();
@@ -2632,7 +2708,7 @@ String String::format(const Variant &values, String placeholder) const {
return new_string;
}
-String String::replace(String p_key, String p_with) const {
+String String::replace(const String &p_key, const String &p_with) const {
String new_string;
int search_from = 0;
@@ -2645,12 +2721,43 @@ String String::replace(String p_key, String p_with) const {
search_from = result + p_key.length();
}
+ if (search_from == 0) {
+
+ return *this;
+ }
+
new_string += substr(search_from, length() - search_from);
return new_string;
}
-String String::replace_first(String p_key, String p_with) const {
+String String::replace(const char *p_key, const char *p_with) const {
+
+ String new_string;
+ int search_from = 0;
+ int result = 0;
+
+ while ((result = find(p_key, search_from)) >= 0) {
+
+ new_string += substr(search_from, result - search_from);
+ new_string += p_with;
+ int k = 0;
+ while (p_key[k] != '\0')
+ k++;
+ search_from = result + k;
+ }
+
+ if (search_from == 0) {
+
+ return *this;
+ }
+
+ new_string += substr(search_from, length() - search_from);
+
+ return new_string;
+}
+
+String String::replace_first(const String &p_key, const String &p_with) const {
String new_string;
int search_from = 0;
@@ -2664,11 +2771,16 @@ String String::replace_first(String p_key, String p_with) const {
break;
}
+ if (search_from == 0) {
+
+ return *this;
+ }
+
new_string += substr(search_from, length() - search_from);
return new_string;
}
-String String::replacen(String p_key, String p_with) const {
+String String::replacen(const String &p_key, const String &p_with) const {
String new_string;
int search_from = 0;
@@ -2681,6 +2793,11 @@ String String::replacen(String p_key, String p_with) const {
search_from = result + p_key.length();
}
+ if (search_from == 0) {
+
+ return *this;
+ }
+
new_string += substr(search_from, length() - search_from);
return new_string;
}
diff --git a/core/ustring.h b/core/ustring.h
index a56c90544a..1bb4719b85 100644
--- a/core/ustring.h
+++ b/core/ustring.h
@@ -93,8 +93,8 @@ public:
bool operator!=(const CharType *p_str) const;
bool operator<(const CharType *p_str) const;
bool operator<(const char *p_str) const;
- bool operator<(String p_str) const;
- bool operator<=(String p_str) const;
+ bool operator<(const String &p_str) const;
+ bool operator<=(const String &p_str) const;
signed char casecmp_to(const String &p_str) const;
signed char nocasecmp_to(const String &p_str) const;
@@ -103,15 +103,19 @@ public:
const CharType *c_str() const;
/* standard size stuff */
- int length() const;
+ _FORCE_INLINE_ int length() const {
+ int s = size();
+ return s ? (s - 1) : 0; // length does not include zero
+ }
/* complex helpers */
String substr(int p_from, int p_chars) const;
- int find(String p_str, int p_from = 0) const; ///< return <0 if failed
- int find_last(String p_str) const; ///< return <0 if failed
- int findn(String p_str, int p_from = 0) const; ///< return <0 if failed, case insensitive
- int rfind(String p_str, int p_from = -1) const; ///< return <0 if failed
- int rfindn(String p_str, int p_from = -1) const; ///< return <0 if failed, case insensitive
+ int find(const String &p_str, int p_from = 0) const; ///< return <0 if failed
+ int find(const char *p_str, int p_from) const; ///< return <0 if failed
+ int find_last(const String &p_str) const; ///< return <0 if failed
+ int findn(const String &p_str, int p_from = 0) const; ///< return <0 if failed, case insensitive
+ int rfind(const String &p_str, int p_from = -1) const; ///< return <0 if failed
+ int rfindn(const String &p_str, int p_from = -1) const; ///< return <0 if failed, case insensitive
int findmk(const Vector<String> &p_keys, int p_from = 0, int *r_key = NULL) const; ///< return <0 if failed
bool match(const String &p_wildcard) const;
bool matchn(const String &p_wildcard) const;
@@ -125,10 +129,11 @@ public:
Vector<String> bigrams() const;
float similarity(const String &p_string) const;
String format(const Variant &values, String placeholder = "{_}") const;
- String replace_first(String p_key, String p_with) const;
- String replace(String p_key, String p_with) const;
- String replacen(String p_key, String p_with) const;
- String insert(int p_at_pos, String p_string) const;
+ String replace_first(const String &p_key, const String &p_with) const;
+ String replace(const String &p_key, const String &p_with) const;
+ String replace(const char *p_key, const char *p_with) const;
+ String replacen(const String &p_key, const String &p_with) const;
+ String insert(int p_at_pos, const String &p_string) const;
String pad_decimals(int p_digits) const;
String pad_zeros(int p_digits) const;
String lpad(int min_length, const String &character = " ") const;
@@ -162,7 +167,7 @@ public:
String get_slice(String p_splitter, int p_slice) const;
String get_slicec(CharType p_splitter, int p_slice) const;
- Vector<String> split(const String &p_splitter, bool p_allow_empty = true) const;
+ Vector<String> split(const String &p_splitter, bool p_allow_empty = true, int p_maxsplit = 0) const;
Vector<String> split_spaces() const;
Vector<float> split_floats(const String &p_splitter, bool p_allow_empty = true) const;
Vector<float> split_floats_mk(const Vector<String> &p_splitters, bool p_allow_empty = true) const;
@@ -204,7 +209,7 @@ public:
Vector<uint8_t> md5_buffer() const;
Vector<uint8_t> sha256_buffer() const;
- inline bool empty() const { return length() == 0; }
+ _FORCE_INLINE_ bool empty() const { return length() == 0; }
// path functions
bool is_abs_path() const;
@@ -242,6 +247,8 @@ public:
*/
/* String(CharType p_char);*/
inline String() {}
+ inline String(const String &p_str) :
+ Vector(p_str) {}
String(const char *p_str);
String(const CharType *p_str, int p_clip_to_len = -1);
String(const StrRange &p_range);
diff --git a/core/variant_call.cpp b/core/variant_call.cpp
index f66cce85c9..0284c4d866 100644
--- a/core/variant_call.cpp
+++ b/core/variant_call.cpp
@@ -254,7 +254,7 @@ struct _VariantCall {
VCALL_LOCALMEM2R(String, replacen);
VCALL_LOCALMEM2R(String, insert);
VCALL_LOCALMEM0R(String, capitalize);
- VCALL_LOCALMEM2R(String, split);
+ VCALL_LOCALMEM3R(String, split);
VCALL_LOCALMEM2R(String, split_floats);
VCALL_LOCALMEM0R(String, to_upper);
VCALL_LOCALMEM0R(String, to_lower);
@@ -462,6 +462,7 @@ struct _VariantCall {
VCALL_LOCALMEM0R(Dictionary, hash);
VCALL_LOCALMEM0R(Dictionary, keys);
VCALL_LOCALMEM0R(Dictionary, values);
+ VCALL_LOCALMEM0R(Dictionary, duplicate);
VCALL_LOCALMEM2(Array, set);
VCALL_LOCALMEM1R(Array, get);
@@ -1446,7 +1447,7 @@ void register_variant_methods() {
ADDFUNC2R(STRING, STRING, String, replacen, STRING, "what", STRING, "forwhat", varray());
ADDFUNC2R(STRING, STRING, String, insert, INT, "position", STRING, "what", varray());
ADDFUNC0R(STRING, STRING, String, capitalize, varray());
- ADDFUNC2R(STRING, POOL_STRING_ARRAY, String, split, STRING, "divisor", BOOL, "allow_empty", varray(true));
+ ADDFUNC3R(STRING, POOL_STRING_ARRAY, String, split, STRING, "divisor", BOOL, "allow_empty", INT, "maxsplit", varray(true, 0));
ADDFUNC2R(STRING, POOL_REAL_ARRAY, String, split_floats, STRING, "divisor", BOOL, "allow_empty", varray(true));
ADDFUNC0R(STRING, STRING, String, to_upper, varray());
@@ -1607,6 +1608,7 @@ void register_variant_methods() {
ADDFUNC0R(DICTIONARY, INT, Dictionary, hash, varray());
ADDFUNC0R(DICTIONARY, ARRAY, Dictionary, keys, varray());
ADDFUNC0R(DICTIONARY, ARRAY, Dictionary, values, varray());
+ ADDFUNC0R(DICTIONARY, DICTIONARY, Dictionary, duplicate, varray());
ADDFUNC0R(ARRAY, INT, Array, size, varray());
ADDFUNC0R(ARRAY, BOOL, Array, empty, varray());
diff --git a/doc/classes/ARVRController.xml b/doc/classes/ARVRController.xml
index 47a9341643..2adc073ebe 100644
--- a/doc/classes/ARVRController.xml
+++ b/doc/classes/ARVRController.xml
@@ -62,7 +62,10 @@
</methods>
<members>
<member name="controller_id" type="int" setter="set_controller_id" getter="get_controller_id">
- The controller's id. The first controller that the [ARVRServer] detects will have id 1, the second id 2, the third id 3, etc. When a controller is turned off, it's slot is freed. This ensures controllers will keep the same id even when controllers with lower ids are turned off.
+ The controller's id.
+ A controller id of 0 is unbound and will always result in an inactive node. Controller id 1 is reserved for the first controller that identifies itself as the left hand controller and id 2 is reserved for the first controller that identifies itself as the right hand controller.
+ For any other controller that the [ARVRServer] detects we continue with controller id 3.
+ When a controller is turned off, its slot is freed. This ensures controllers will keep the same id even when controllers with lower ids are turned off.
</member>
<member name="rumble" type="float" setter="set_rumble" getter="get_rumble">
The degree to which the tracker rumbles. Ranges from [code]0.0[/code] to [code]1.0[/code] with precision [code].01[/code]. If changed, updates [member ARVRPositionalTracker.rumble] accordingly.
diff --git a/doc/classes/ARVRServer.xml b/doc/classes/ARVRServer.xml
index 17202c8c2c..ffe6c35240 100644
--- a/doc/classes/ARVRServer.xml
+++ b/doc/classes/ARVRServer.xml
@@ -14,7 +14,7 @@
<method name="center_on_hmd">
<return type="void">
</return>
- <argument index="0" name="ignore_tilt" type="bool">
+ <argument index="0" name="rotation_mode" type="bool">
</argument>
<argument index="1" name="keep_height" type="bool">
</argument>
@@ -154,5 +154,14 @@
<constant name="TRACKER_ANY" value="255" enum="TrackerType">
Used internally to select all trackers.
</constant>
+ <constant name="RESET_FULL_ROTATION" value="0" enum="RotationMode">
+ Fully reset the orientation of the HMD. Regardless of what direction the user is looking to in the real world. The user will look dead ahead in the virtual world.
+ </constant>
+ <constant name="RESET_BUT_KEEP_TILT" value="1" enum="RotationMode">
+ Resets the orientation but keeps the tilt of the device. So if we're looking down, we keep looking down but heading will be reset.
+ </constant>
+ <constant name="DONT_RESET_ROTATION" value="2" enum="RotationMode">
+ Does not reset the orientation of the HMD, only the position of the player gets centered.
+ </constant>
</constants>
</class>
diff --git a/doc/classes/Animation.xml b/doc/classes/Animation.xml
index dd248d18f7..f78b39eadb 100644
--- a/doc/classes/Animation.xml
+++ b/doc/classes/Animation.xml
@@ -321,7 +321,7 @@
<argument index="1" name="enabled" type="bool">
</argument>
<description>
- Enables/disables the given track. Tracks are enabled by default.
+ Enables/disables the given track. Tracks are enabled by default.
</description>
</method>
<method name="track_set_imported">
diff --git a/doc/classes/AnimationPlayer.xml b/doc/classes/AnimationPlayer.xml
index 570f5e9741..a244788020 100644
--- a/doc/classes/AnimationPlayer.xml
+++ b/doc/classes/AnimationPlayer.xml
@@ -133,6 +133,7 @@
<return type="float">
</return>
<description>
+ Returns the speed scaling ratio of the current animation channel. For instance, if this value is 1 then the animation plays at normal speed. If it's 0.5 then it plays at half speed. If it's 2 then it plays at double speed.
</description>
</method>
<method name="has_animation" qualifiers="const">
diff --git a/doc/classes/BakedLightmap.xml b/doc/classes/BakedLightmap.xml
new file mode 100644
index 0000000000..b351aeac05
--- /dev/null
+++ b/doc/classes/BakedLightmap.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="BakedLightmap" inherits="VisualInstance" category="Core" version="3.0-beta">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <demos>
+ </demos>
+ <methods>
+ <method name="bake">
+ <return type="int" enum="BakedLightmap.BakeError">
+ </return>
+ <argument index="0" name="from_node" type="Node" default="null">
+ </argument>
+ <argument index="1" name="create_visual_debug" type="bool" default="false">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="debug_bake">
+ <return type="void">
+ </return>
+ <description>
+ </description>
+ </method>
+ </methods>
+ <members>
+ <member name="bake_mode" type="int" setter="set_bake_mode" getter="get_bake_mode" enum="BakedLightmap.BakeMode">
+ </member>
+ <member name="bake_quality" type="int" setter="set_bake_quality" getter="get_bake_quality" enum="BakedLightmap.BakeQuality">
+ </member>
+ <member name="bake_subdiv" type="int" setter="set_bake_subdiv" getter="get_bake_subdiv" enum="BakedLightmap.Subdiv">
+ </member>
+ <member name="capture_subdiv" type="int" setter="set_capture_subdiv" getter="get_capture_subdiv" enum="BakedLightmap.Subdiv">
+ </member>
+ <member name="energy" type="float" setter="set_energy" getter="get_energy">
+ </member>
+ <member name="extents" type="Vector3" setter="set_extents" getter="get_extents">
+ </member>
+ <member name="hdr" type="bool" setter="set_hdr" getter="is_hdr">
+ </member>
+ <member name="image_path" type="String" setter="set_image_path" getter="get_image_path">
+ </member>
+ <member name="light_data" type="BakedLightmapData" setter="set_light_data" getter="get_light_data">
+ </member>
+ <member name="propagation" type="float" setter="set_propagation" getter="get_propagation">
+ </member>
+ </members>
+ <constants>
+ <constant name="SUBDIV_128" value="0" enum="Subdiv">
+ </constant>
+ <constant name="SUBDIV_256" value="1" enum="Subdiv">
+ </constant>
+ <constant name="SUBDIV_512" value="2" enum="Subdiv">
+ </constant>
+ <constant name="SUBDIV_1024" value="3" enum="Subdiv">
+ </constant>
+ <constant name="SUBDIV_MAX" value="4" enum="Subdiv">
+ </constant>
+ <constant name="BAKE_QUALITY_LOW" value="0" enum="BakeQuality">
+ </constant>
+ <constant name="BAKE_QUALITY_MEDIUM" value="1" enum="BakeQuality">
+ </constant>
+ <constant name="BAKE_QUALITY_HIGH" value="2" enum="BakeQuality">
+ </constant>
+ <constant name="BAKE_MODE_CONE_TRACE" value="0" enum="BakeMode">
+ </constant>
+ <constant name="BAKE_MODE_RAY_TRACE" value="1" enum="BakeMode">
+ </constant>
+ <constant name="BAKE_ERROR_OK" value="0" enum="BakeError">
+ </constant>
+ <constant name="BAKE_ERROR_NO_SAVE_PATH" value="1" enum="BakeError">
+ </constant>
+ <constant name="BAKE_ERROR_NO_MESHES" value="2" enum="BakeError">
+ </constant>
+ <constant name="BAKE_ERROR_CANT_CREATE_IMAGE" value="3" enum="BakeError">
+ </constant>
+ <constant name="BAKE_ERROR_USER_ABORTED" value="4" enum="BakeError">
+ </constant>
+ </constants>
+</class>
diff --git a/doc/classes/BakedLightmapData.xml b/doc/classes/BakedLightmapData.xml
new file mode 100644
index 0000000000..2b95cff136
--- /dev/null
+++ b/doc/classes/BakedLightmapData.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="BakedLightmapData" inherits="Resource" category="Core" version="3.0-beta">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <demos>
+ </demos>
+ <methods>
+ <method name="add_user">
+ <return type="void">
+ </return>
+ <argument index="0" name="path" type="NodePath">
+ </argument>
+ <argument index="1" name="lightmap" type="Texture">
+ </argument>
+ <argument index="2" name="instance" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="clear_users">
+ <return type="void">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_bounds" qualifiers="const">
+ <return type="AABB">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_cell_space_transform" qualifiers="const">
+ <return type="Transform">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_cell_subdiv" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_octree" qualifiers="const">
+ <return type="PoolByteArray">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_user_count" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_user_lightmap" qualifiers="const">
+ <return type="Texture">
+ </return>
+ <argument index="0" name="user_idx" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="get_user_path" qualifiers="const">
+ <return type="NodePath">
+ </return>
+ <argument index="0" name="user_idx" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="set_bounds">
+ <return type="void">
+ </return>
+ <argument index="0" name="bounds" type="AABB">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="set_cell_space_transform">
+ <return type="void">
+ </return>
+ <argument index="0" name="xform" type="Transform">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="set_cell_subdiv">
+ <return type="void">
+ </return>
+ <argument index="0" name="cell_subdiv" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="set_octree">
+ <return type="void">
+ </return>
+ <argument index="0" name="octree" type="PoolByteArray">
+ </argument>
+ <description>
+ </description>
+ </method>
+ </methods>
+ <members>
+ <member name="energy" type="float" setter="set_energy" getter="get_energy">
+ </member>
+ </members>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/Camera.xml b/doc/classes/Camera.xml
index 5d6c13498c..91c9ecc774 100644
--- a/doc/classes/Camera.xml
+++ b/doc/classes/Camera.xml
@@ -25,88 +25,6 @@
Get the camera transform. Subclassed cameras (such as CharacterCamera) may provide different transforms than the [Node] transform.
</description>
</method>
- <method name="get_cull_mask" qualifiers="const">
- <return type="int">
- </return>
- <description>
- Returns the culling mask, describing which 3D render layers are rendered by this Camera.
- </description>
- </method>
- <method name="get_doppler_tracking" qualifiers="const">
- <return type="int" enum="Camera.DopplerTracking">
- </return>
- <description>
- </description>
- </method>
- <method name="get_environment" qualifiers="const">
- <return type="Environment">
- </return>
- <description>
- Returns the [Environment] used by this Camera.
- </description>
- </method>
- <method name="get_fov" qualifiers="const">
- <return type="float">
- </return>
- <description>
- Returns the [i]FOV[/i] Y angle in degrees (FOV means Field of View).
- </description>
- </method>
- <method name="get_h_offset" qualifiers="const">
- <return type="float">
- </return>
- <description>
- Returns the horizontal (X) offset of the Camera viewport.
- </description>
- </method>
- <method name="get_keep_aspect_mode" qualifiers="const">
- <return type="int" enum="Camera.KeepAspect">
- </return>
- <description>
- Returns the current mode for keeping the aspect ratio. See [code]KEEP_*[/code] constants.
- </description>
- </method>
- <method name="get_projection" qualifiers="const">
- <return type="int" enum="Camera.Projection">
- </return>
- <description>
- Returns the Camera's projection. See PROJECTION_* constants.
- </description>
- </method>
- <method name="get_size" qualifiers="const">
- <return type="float">
- </return>
- <description>
- </description>
- </method>
- <method name="get_v_offset" qualifiers="const">
- <return type="float">
- </return>
- <description>
- Returns the vertical (Y) offset of the Camera viewport.
- </description>
- </method>
- <method name="get_zfar" qualifiers="const">
- <return type="float">
- </return>
- <description>
- Returns the far clip plane in world space units.
- </description>
- </method>
- <method name="get_znear" qualifiers="const">
- <return type="float">
- </return>
- <description>
- Returns the near clip plane in world space units.
- </description>
- </method>
- <method name="is_current" qualifiers="const">
- <return type="bool">
- </return>
- <description>
- Returns [code]true[/code] if the Camera is the current one in the [Viewport], or plans to become current (if outside the scene tree).
- </description>
- </method>
<method name="is_position_behind" qualifiers="const">
<return type="bool">
</return>
@@ -129,6 +47,7 @@
<argument index="0" name="screen_point" type="Vector2">
</argument>
<description>
+ Returns a normal vector from the screen point location directed along the camera. Orthogonal cameras are normalized. Perspective cameras account for perspective, screen width/height, etc.
</description>
</method>
<method name="project_position" qualifiers="const">
@@ -158,51 +77,6 @@
Returns a 3D position in worldspace, that is the result of projecting a point on the [Viewport] rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking.
</description>
</method>
- <method name="set_cull_mask">
- <return type="void">
- </return>
- <argument index="0" name="mask" type="int">
- </argument>
- <description>
- Sets the cull mask, describing which 3D render layers are rendered by this Camera.
- </description>
- </method>
- <method name="set_doppler_tracking">
- <return type="void">
- </return>
- <argument index="0" name="mode" type="int" enum="Camera.DopplerTracking">
- </argument>
- <description>
- Changes Doppler effect tracking. See [code]DOPPLER_*[/code] constants.
- </description>
- </method>
- <method name="set_environment">
- <return type="void">
- </return>
- <argument index="0" name="env" type="Environment">
- </argument>
- <description>
- Sets the [Environment] to use for this Camera.
- </description>
- </method>
- <method name="set_h_offset">
- <return type="void">
- </return>
- <argument index="0" name="ofs" type="float">
- </argument>
- <description>
- Sets the horizontal (X) offset of the Camera viewport.
- </description>
- </method>
- <method name="set_keep_aspect_mode">
- <return type="void">
- </return>
- <argument index="0" name="mode" type="int" enum="Camera.KeepAspect">
- </argument>
- <description>
- Sets the mode for keeping the aspect ratio. See [code]KEEP_*[/code] constants.
- </description>
- </method>
<method name="set_orthogonal">
<return type="void">
</return>
@@ -229,15 +103,6 @@
Set the camera projection to perspective mode, by specifying a [i]FOV[/i] Y angle in degrees (FOV means Field of View), and the [i]near[/i] and [i]far[/i] clip planes in worldspace units.
</description>
</method>
- <method name="set_v_offset">
- <return type="void">
- </return>
- <argument index="0" name="ofs" type="float">
- </argument>
- <description>
- Sets the vertical (Y) offset of the Camera viewport.
- </description>
- </method>
<method name="unproject_position" qualifiers="const">
<return type="Vector2">
</return>
@@ -248,6 +113,47 @@
</description>
</method>
</methods>
+ <members>
+ <member name="cull_mask" type="int" setter="set_cull_mask" getter="get_cull_mask">
+ The culling mask that describes which 3D render layers are rendered by this camera.
+ </member>
+ <member name="current" type="bool" setter="set_current" getter="is_current">
+ If [code]true[/code] the ancestor [Viewport] is currently using this Camera. Default value: [code]false[/code].
+ </member>
+ <member name="doppler_tracking" type="int" setter="set_doppler_tracking" getter="get_doppler_tracking" enum="Camera.DopplerTracking">
+ If not [code]DOPPLER_TRACKING_DISABLED[/code] this Camera will simulate the Doppler effect for objects changed in particular [code]_process[/code] methods. Default value: [code]DOPPLER_TRACKING_DISABLED[/code].
+ </member>
+ <member name="environment" type="Environment" setter="set_environment" getter="get_environment">
+ Set the [Environment] to use for this Camera.
+ </member>
+ <member name="far" type="float" setter="set_zfar" getter="get_zfar">
+ The distance to the far culling boundary for this Camera relative to its local z-axis.
+ </member>
+ <member name="fov" type="float" setter="set_fov" getter="get_fov">
+ The camera's field of view angle (in degrees). Only applicable in perspective mode. Since [member keep_aspect] locks one axis, [code]fov[/code] sets the other axis' field of view angle.
+ </member>
+ <member name="h_offset" type="float" setter="set_h_offset" getter="get_h_offset">
+ The horizontal (X) offset of the Camear viewport.
+ </member>
+ <member name="keep_aspect" type="int" setter="set_keep_aspect_mode" getter="get_keep_aspect_mode" enum="Camera.KeepAspect">
+ The axis to lock during [member fov]/[member size] adjustments.
+ </member>
+ <member name="near" type="float" setter="set_znear" getter="get_znear">
+ The distance to the near culling boundary for this Camera relative to its local z-axis.
+ </member>
+ <member name="projection" type="int" setter="set_projection" getter="get_projection" enum="Camera.Projection">
+ The camera's projection mode. In [code]PROJECTION_PERSPECTIVE[/code] mode, objects' z-distance from the camera's local space scales their perceived size.
+ </member>
+ <member name="size" type="float" setter="set_size" getter="get_size">
+ The camera's size measured as 1/2 the width or height. Only applicable in orthogonal mode. Since [member keep_aspect] locks on axis, [code]size[/code] sets the other axis' size length.
+ </member>
+ <member name="v_offset" type="float" setter="set_v_offset" getter="get_v_offset">
+ The horizontal (Y) offset of the Camear viewport.
+ </member>
+ <member name="vaspect" type="bool" setter="set_vaspect" getter="get_vaspect">
+ A boolean representation of [member keep_aspect] in which [code]true[/code] is equivalent to [code]KEEP_WIDTH[/code].
+ </member>
+ </members>
<constants>
<constant name="PROJECTION_PERSPECTIVE" value="0" enum="Projection">
Perspective Projection (object's size on the screen becomes smaller when far away).
@@ -256,10 +162,10 @@
Orthogonal Projection (objects remain the same size on the screen no matter how far away they are).
</constant>
<constant name="KEEP_WIDTH" value="0" enum="KeepAspect">
- Try to keep the aspect ratio when scaling the Camera's viewport to the screen. If not possible, preserve the viewport's width by changing the height. Height is [code]sizey[/code] for orthographic projection, [code]fovy[/code] for perspective projection.
+ Preserves the horizontal aspect ratio.
</constant>
<constant name="KEEP_HEIGHT" value="1" enum="KeepAspect">
- Try to keep the aspect ratio when scaling the Camera's viewport to the screen. If not possible, preserve the viewport's height by changing the width. Width is [code]sizex[/code] for orthographic projection, [code]fovx[/code] for perspective projection.
+ Preserves the vertical aspect ratio.
</constant>
<constant name="DOPPLER_TRACKING_DISABLED" value="0" enum="DopplerTracking">
Disable Doppler effect simulation (default).
diff --git a/doc/classes/ColorPickerButton.xml b/doc/classes/ColorPickerButton.xml
index 185460eef2..87d00b7600 100644
--- a/doc/classes/ColorPickerButton.xml
+++ b/doc/classes/ColorPickerButton.xml
@@ -11,14 +11,14 @@
<demos>
</demos>
<methods>
- <method name="get_picker">
+ <method name="get_picker" qualifiers="const">
<return type="ColorPicker">
</return>
<description>
Returns the [code]ColorPicker[/code] that this [code]ColorPickerButton[/code] toggles.
</description>
</method>
- <method name="get_popup">
+ <method name="get_popup" qualifiers="const">
<return type="PopupPanel">
</return>
<description>
diff --git a/doc/classes/Curve.xml b/doc/classes/Curve.xml
index f7ef9a182c..8a007cc5cc 100644
--- a/doc/classes/Curve.xml
+++ b/doc/classes/Curve.xml
@@ -107,9 +107,9 @@
<return type="float">
</return>
<argument index="0" name="offset" type="float">
- Returns the y value for the point that would exist at x-position [code]offset[/code] along the curve using the baked cache. Bakes the curve's points if not already baked.
</argument>
<description>
+ Returns the y value for the point that would exist at x-position [code]offset[/code] along the curve using the baked cache. Bakes the curve's points if not already baked.
</description>
</method>
<method name="remove_point">
diff --git a/doc/classes/Dictionary.xml b/doc/classes/Dictionary.xml
index 40b60f00cf..08c01c1d85 100644
--- a/doc/classes/Dictionary.xml
+++ b/doc/classes/Dictionary.xml
@@ -16,6 +16,12 @@
Clear the dictionary, removing all key/value pairs.
</description>
</method>
+ <method name="duplicate">
+ <return type="Dictionary">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="empty">
<return type="bool">
</return>
diff --git a/doc/classes/HTTPClient.xml b/doc/classes/HTTPClient.xml
index 9d4b45a8d7..80f6966e12 100644
--- a/doc/classes/HTTPClient.xml
+++ b/doc/classes/HTTPClient.xml
@@ -26,7 +26,7 @@
</return>
<argument index="0" name="host" type="String">
</argument>
- <argument index="1" name="port" type="int">
+ <argument index="1" name="port" type="int" default="-1">
</argument>
<argument index="2" name="use_ssl" type="bool" default="false">
</argument>
@@ -35,6 +35,7 @@
<description>
Connect to a host. This needs to be done before any requests are sent.
The host should not have http:// prepended but will strip the protocol identifier if provided.
+ If no [code]port[/code] is specified (or [code]-1[/code] is used), it is automatically set to 80 for HTTP and 443 for HTTPS (if [code]use_ssl[/code] is enabled).
[code]verify_host[/code] will check the SSL identity of the host if set to [code]true[/code].
</description>
</method>
diff --git a/doc/classes/Light.xml b/doc/classes/Light.xml
index e4f92cc9b3..4aa39ffff6 100644
--- a/doc/classes/Light.xml
+++ b/doc/classes/Light.xml
@@ -15,6 +15,8 @@
<members>
<member name="editor_only" type="bool" setter="set_editor_only" getter="is_editor_only">
</member>
+ <member name="light_bake_mode" type="int" setter="set_bake_mode" getter="get_bake_mode" enum="Light.BakeMode">
+ </member>
<member name="light_color" type="Color" setter="set_color" getter="get_color">
</member>
<member name="light_cull_mask" type="int" setter="set_cull_mask" getter="get_cull_mask">
@@ -71,5 +73,11 @@
</constant>
<constant name="PARAM_MAX" value="15" enum="Param">
</constant>
+ <constant name="BAKE_DISABLED" value="0" enum="BakeMode">
+ </constant>
+ <constant name="BAKE_INDIRECT" value="1" enum="BakeMode">
+ </constant>
+ <constant name="BAKE_ALL" value="2" enum="BakeMode">
+ </constant>
</constants>
</class>
diff --git a/doc/classes/LineEdit.xml b/doc/classes/LineEdit.xml
index 9a03d4e0c1..4434a7b7e2 100644
--- a/doc/classes/LineEdit.xml
+++ b/doc/classes/LineEdit.xml
@@ -27,6 +27,13 @@
Erases the [LineEdit] text.
</description>
</method>
+ <method name="deselect">
+ <return type="void">
+ </return>
+ <description>
+ Clears the current selection.
+ </description>
+ </method>
<method name="get_cursor_position" qualifiers="const">
<return type="int">
</return>
diff --git a/doc/classes/MenuButton.xml b/doc/classes/MenuButton.xml
index c41c86d693..22231cfdf3 100644
--- a/doc/classes/MenuButton.xml
+++ b/doc/classes/MenuButton.xml
@@ -11,7 +11,7 @@
<demos>
</demos>
<methods>
- <method name="get_popup">
+ <method name="get_popup" qualifiers="const">
<return type="PopupMenu">
</return>
<description>
diff --git a/doc/classes/Mutex.xml b/doc/classes/Mutex.xml
index 4b845c05ad..74d59b2dd3 100644
--- a/doc/classes/Mutex.xml
+++ b/doc/classes/Mutex.xml
@@ -4,7 +4,7 @@
A synchronization Mutex.
</brief_description>
<description>
- A synchronization Mutex. Element used in multi-threadding. Basically a binary [Semaphore]. Guarantees that only one thread has this lock, can be used to protect a critical section.
+ A synchronization Mutex. Element used to synchronize multiple [Thread]s. Basically a binary [Semaphore]. Guarantees that only one thread can ever acquire this lock at a time. Can be used to protect a critical section. Be careful to avoid deadlocks.
</description>
<tutorials>
</tutorials>
@@ -22,14 +22,14 @@
<return type="int" enum="Error">
</return>
<description>
- Try locking this [code]Mutex[/code], does not block. Returns [OK] on success else [ERR_BUSY].
+ Try locking this [code]Mutex[/code], does not block. Returns [OK] on success, [ERR_BUSY] otherwise.
</description>
</method>
<method name="unlock">
<return type="void">
</return>
<description>
- Unlock this [code]Mutex[/code], leaving it to others threads.
+ Unlock this [code]Mutex[/code], leaving it to other threads.
</description>
</method>
</methods>
diff --git a/doc/classes/Navigation.xml b/doc/classes/Navigation.xml
index 995cb5b179..8fe520f853 100644
--- a/doc/classes/Navigation.xml
+++ b/doc/classes/Navigation.xml
@@ -64,7 +64,7 @@
Returns a path of points as a [code]PoolVector3Array[/code]. If [code]optimize[/code] is false the [code]NavigationMesh[/code] agent properties will be taken into account, otherwise it will return the nearest path and ignore agent radius, height, etc.
</description>
</method>
- <method name="navmesh_create">
+ <method name="navmesh_add">
<return type="int">
</return>
<argument index="0" name="mesh" type="NavigationMesh">
diff --git a/doc/classes/Navigation2D.xml b/doc/classes/Navigation2D.xml
index 8868348cf9..18c15a616a 100644
--- a/doc/classes/Navigation2D.xml
+++ b/doc/classes/Navigation2D.xml
@@ -37,7 +37,7 @@
<description>
</description>
</method>
- <method name="navpoly_create">
+ <method name="navpoly_add">
<return type="int">
</return>
<argument index="0" name="mesh" type="NavigationPolygon">
diff --git a/doc/classes/OptionButton.xml b/doc/classes/OptionButton.xml
index 76265e700a..ff3e513c79 100644
--- a/doc/classes/OptionButton.xml
+++ b/doc/classes/OptionButton.xml
@@ -91,6 +91,13 @@
Return the text of the item at index "idx".
</description>
</method>
+ <method name="get_popup" qualifiers="const">
+ <return type="PopupMenu">
+ </return>
+ <description>
+ Return the [PopupMenu] contained in this button.
+ </description>
+ </method>
<method name="get_selected_id" qualifiers="const">
<return type="int">
</return>
diff --git a/doc/classes/PacketPeer.xml b/doc/classes/PacketPeer.xml
index 891f0c9ffc..57d88d7ff8 100644
--- a/doc/classes/PacketPeer.xml
+++ b/doc/classes/PacketPeer.xml
@@ -18,7 +18,7 @@
Return the number of packets currently available in the ring-buffer.
</description>
</method>
- <method name="get_packet" qualifiers="const">
+ <method name="get_packet">
<return type="PoolByteArray">
</return>
<description>
@@ -32,7 +32,7 @@
Return the error state of the last packet received (via [method get_packet] and [method get_var]).
</description>
</method>
- <method name="get_var" qualifiers="const">
+ <method name="get_var">
<return type="Variant">
</return>
<description>
diff --git a/doc/classes/Physics2DDirectSpaceState.xml b/doc/classes/Physics2DDirectSpaceState.xml
index f63b8f17bc..2e2d8e95f9 100644
--- a/doc/classes/Physics2DDirectSpaceState.xml
+++ b/doc/classes/Physics2DDirectSpaceState.xml
@@ -17,8 +17,8 @@
<argument index="0" name="shape" type="Physics2DShapeQueryParameters">
</argument>
<description>
- Check whether the shape can travel to a point. If it can, the method will return an array with two floats: The first is the distance the shape can move in that direction without colliding, and the second is the distance at which it will collide.
- If the shape can not move, the array will be empty.
+ Checks how far the shape can travel toward a point. Note that both the shape and the motion are supplied through a [Physics2DShapeQueryParameters] object. The method will return an array with two floats between 0 and 1, both representing a fraction of [code]motion[/code]. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be [1, 1].
+ If the shape can not move, the array will be empty ([code]dir.empty()==true[/code]).
</description>
</method>
<method name="collide_shape">
@@ -29,7 +29,7 @@
<argument index="1" name="max_results" type="int" default="32">
</argument>
<description>
- Check the intersections of a shape, given through a [Physics2DShapeQueryParameters] object, against the space. The resulting array contains a list of points where the shape intersects another. Like with [method intersect_shape], the number of returned results can be limited to save processing time.
+ Checks the intersections of a shape, given through a [Physics2DShapeQueryParameters] object, against the space. The resulting array contains a list of points where the shape intersects another. Like with [method intersect_shape], the number of returned results can be limited to save processing time.
</description>
</method>
<method name="get_rest_info">
@@ -38,16 +38,15 @@
<argument index="0" name="shape" type="Physics2DShapeQueryParameters">
</argument>
<description>
- Check the intersections of a shape, given through a [Physics2DShapeQueryParameters] object, against the space. If it collides with more than a shape, the nearest one is selected. The returned object is a dictionary containing the following fields:
- pointo: Place where the shapes intersect.
- normal: Normal of the object at the point where the shapes intersect.
- shape: Shape index within the object against which the shape intersected.
- metadata: Metadata of the shape against which the shape intersected. This metadata is different from [method Object.get_meta], and is set with [method Physics2DServer.shape_set_data].
- collider_id: Id of the object against which the shape intersected.
- collider: Object against which the shape intersected.
- rid: [RID] of the object against which the shape intersected.
- linear_velocity: The movement vector of the object the shape intersected, if it was a body. If it was an area, it is (0,0).
- If the shape did not intersect anything, then an empty dictionary (dir.empty()==true) is returned instead.
+ Checks the intersections of a shape, given through a [Physics2DShapeQueryParameters] object, against the space. If it collides with more than one shape, the nearest one is selected. Note that this method does not take into account the [code]motion[/code] property of the object. The returned object is a dictionary containing the following fields:
+ [code]collider_id[/code]: The colliding object's ID.
+ [code]linear_velocity[/code]: The colliding object's velocity [Vector2]. If the object is an [Area2D], the result is [code](0, 0)[/code].
+ [code]metadata[/code]: The intersecting shape's metadata. This metadata is different from [method Object.get_meta], and is set with [method Physics2DServer.shape_set_data].
+ [code]normal[/code]: The object's surface normal at the intersection point.
+ [code]point[/code]: The intersection point.
+ [code]rid[/code]: The intersecting object's [RID].
+ [code]shape[/code]: The shape index of the colliding shape.
+ If the shape did not intersect anything, then an empty dictionary ([code]dir.empty()==true[/code]) is returned instead.
</description>
</method>
<method name="intersect_point">
@@ -62,12 +61,12 @@
<argument index="3" name="collision_layer" type="int" default="2147483647">
</argument>
<description>
- Check whether a point is inside any shape. The shapes the point is inside of are returned in an array containing dictionaries with the following fields:
- shape: Shape index within the object the point is in.
- metadata: Metadata of the shape the point is in. This metadata is different from [method Object.get_meta], and is set with [method Physics2DServer.shape_set_data].
- collider_id: Id of the object the point is in.
- collider: Object the point is inside of.
- rid: [RID] of the object the point is in.
+ Checks whether a point is inside any shape. The shapes the point is inside of are returned in an array containing dictionaries with the following fields:
+ [code]collider[/code]: The colliding object.
+ [code]collider_id[/code]: The colliding object's ID.
+ [code]metadata[/code]: The intersecting shape's metadata. This metadata is different from [method Object.get_meta], and is set with [method Physics2DServer.shape_set_data].
+ [code]rid[/code]: The intersecting object's [RID].
+ [code]shape[/code]: The shape index of the colliding shape.
Additionally, the method can take an array of objects or [RID]s that are to be excluded from collisions, or a bitmask representing the physics layers to check in.
</description>
</method>
@@ -83,15 +82,15 @@
<argument index="3" name="collision_layer" type="int" default="2147483647">
</argument>
<description>
- Intersect a ray in a given space. The returned object is a dictionary with the following fields:
- position: Place where ray is stopped.
- normal: Normal of the object at the point where the ray was stopped.
- shape: Shape index within the object against which the ray was stopped.
- metadata: Metadata of the shape against which the ray was stopped. This metadata is different from [method Object.get_meta], and is set with [method Physics2DServer.shape_set_data].
- collider_id: Id of the object against which the ray was stopped.
- collider: Object against which the ray was stopped.
- rid: [RID] of the object against which the ray was stopped.
- If the ray did not intersect anything, then an empty dictionary (dir.empty()==true) is returned instead.
+ Intersects a ray in a given space. The returned object is a dictionary with the following fields:
+ [code]collider[/code]: The colliding object.
+ [code]collider_id[/code]: The colliding object's ID.
+ [code]metadata[/code]: The intersecting shape's metadata. This metadata is different from [method Object.get_meta], and is set with [method Physics2DServer.shape_set_data].
+ [code]normal[/code]: The object's surface normal at the intersection point.
+ [code]position[/code]: The intersection point.
+ [code]rid[/code]: The intersecting object's [RID].
+ [code]shape[/code]: The shape index of the colliding shape.
+ If the ray did not intersect anything, then an empty dictionary ([code]dir.empty()==true[/code]) is returned instead.
Additionally, the method can take an array of objects or [RID]s that are to be excluded from collisions, or a bitmask representing the physics layers to check in.
</description>
</method>
@@ -103,12 +102,12 @@
<argument index="1" name="max_results" type="int" default="32">
</argument>
<description>
- Check the intersections of a shape, given through a [Physics2DShapeQueryParameters] object, against the space. The intersected shapes are returned in an array containing dictionaries with the following fields:
- shape: Shape index within the object the shape intersected.
- metadata: Metadata of the shape intersected by the shape given through the [Physics2DShapeQueryParameters]. This metadata is different from [method Object.get_meta], and is set with [method Physics2DServer.shape_set_data].
- collider_id: Id of the object the shape intersected.
- collider: Object the shape intersected.
- rid: [RID] of the object the shape intersected.
+ Checks the intersections of a shape, given through a [Physics2DShapeQueryParameters] object, against the space. Note that this method does not take into account the [code]motion[/code] property of the object. The intersected shapes are returned in an array containing dictionaries with the following fields:
+ [code]collider[/code]: The colliding object.
+ [code]collider_id[/code]: The colliding object's ID.
+ [code]metadata[/code]: The intersecting shape's metadata. This metadata is different from [method Object.get_meta], and is set with [method Physics2DServer.shape_set_data].
+ [code]rid[/code]: The intersecting object's [RID].
+ [code]shape[/code]: The shape index of the colliding shape.
The number of intersections can be limited with the second parameter, to reduce the processing time.
</description>
</method>
diff --git a/doc/classes/PhysicsDirectSpaceState.xml b/doc/classes/PhysicsDirectSpaceState.xml
index 21576646f9..d93550eb47 100644
--- a/doc/classes/PhysicsDirectSpaceState.xml
+++ b/doc/classes/PhysicsDirectSpaceState.xml
@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="PhysicsDirectSpaceState" inherits="Object" category="Core" version="3.0-beta">
<brief_description>
+ Direct access object to a space in the [PhysicsServer].
</brief_description>
<description>
+ Direct access object to a space in the [PhysicsServer]. It's used mainly to do queries against objects and areas residing in a given space.
</description>
<tutorials>
</tutorials>
@@ -17,6 +19,8 @@
<argument index="1" name="motion" type="Vector3">
</argument>
<description>
+ Checks whether the shape can travel to a point. The method will return an array with two floats between 0 and 1, both representing a fraction of [code]motion[/code]. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be [1, 1].
+ If the shape can not move, the array will be empty ([code]dir.empty()==true[/code]).
</description>
</method>
<method name="collide_shape">
@@ -27,6 +31,7 @@
<argument index="1" name="max_results" type="int" default="32">
</argument>
<description>
+ Checks the intersections of a shape, given through a [PhysicsShapeQueryParameters] object, against the space. The resulting array contains a list of points where the shape intersects another. Like with [method intersect_shape], the number of returned results can be limited to save processing time.
</description>
</method>
<method name="get_rest_info">
@@ -35,6 +40,14 @@
<argument index="0" name="shape" type="PhysicsShapeQueryParameters">
</argument>
<description>
+ Checks the intersections of a shape, given through a [PhysicsShapeQueryParameters] object, against the space. If it collides with more than a shape, the nearest one is selected. The returned object is a dictionary containing the following fields:
+ [code]collider_id[/code]: The colliding object's ID.
+ [code]linear_velocity[/code]: The colliding object's velocity [Vector3]. If the object is an [Area], the result is [code](0, 0, 0)[/code].
+ [code]normal[/code]: The object's surface normal at the intersection point.
+ [code]point[/code]: The intersection point.
+ [code]rid[/code]: The intersecting object's [RID].
+ [code]shape[/code]: The shape index of the colliding shape.
+ If the shape did not intersect anything, then an empty dictionary ([code]dir.empty()==true[/code]) is returned instead.
</description>
</method>
<method name="intersect_ray">
@@ -49,6 +62,15 @@
<argument index="3" name="collision_layer" type="int" default="2147483647">
</argument>
<description>
+ Intersects a ray in a given space. The returned object is a dictionary with the following fields:
+ [code]collider[/code]: The colliding object.
+ [code]collider_id[/code]: The colliding object's ID.
+ [code]normal[/code]: The object's surface normal at the intersection point.
+ [code]position[/code]: The intersection point.
+ [code]rid[/code]: The intersecting object's [RID].
+ [code]shape[/code]: The shape index of the colliding shape.
+ If the ray did not intersect anything, then an empty dictionary ([code]dir.empty()==true[/code]) is returned instead.
+ Additionally, the method can take an array of objects or [RID]s that are to be excluded from collisions, or a bitmask representing the physics layers to check in.
</description>
</method>
<method name="intersect_shape">
@@ -59,6 +81,12 @@
<argument index="1" name="max_results" type="int" default="32">
</argument>
<description>
+ Checks the intersections of a shape, given through a [PhysicsShapeQueryParameters] object, against the space. The intersected shapes are returned in an array containing dictionaries with the following fields:
+ [code]collider[/code]: The colliding object.
+ [code]collider_id[/code]: The colliding object's ID.
+ [code]rid[/code]: The intersecting object's [RID].
+ [code]shape[/code]: The shape index of the colliding shape.
+ The number of intersections can be limited with the second parameter, to reduce the processing time.
</description>
</method>
</methods>
diff --git a/doc/classes/SceneState.xml b/doc/classes/SceneState.xml
index 4fcaaa23dc..f5cf2dbee4 100644
--- a/doc/classes/SceneState.xml
+++ b/doc/classes/SceneState.xml
@@ -88,6 +88,14 @@
Returns the list of group names associated with the node at [code]idx[/code].
</description>
</method>
+ <method name="get_node_index" qualifiers="const">
+ <return type="int">
+ </return>
+ <argument index="0" name="idx" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="get_node_instance" qualifiers="const">
<return type="PackedScene">
</return>
diff --git a/doc/classes/SceneTree.xml b/doc/classes/SceneTree.xml
index f3dd953c6f..a78fe03cab 100644
--- a/doc/classes/SceneTree.xml
+++ b/doc/classes/SceneTree.xml
@@ -165,6 +165,12 @@
<description>
</description>
</method>
+ <method name="is_using_font_oversampling" qualifiers="const">
+ <return type="bool">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="notify_group">
<return type="void">
</return>
@@ -318,6 +324,14 @@
<description>
</description>
</method>
+ <method name="set_use_font_oversampling">
+ <return type="void">
+ </return>
+ <argument index="0" name="enable" type="bool">
+ </argument>
+ <description>
+ </description>
+ </method>
</methods>
<signals>
<signal name="connected_to_server">
diff --git a/doc/classes/Script.xml b/doc/classes/Script.xml
index d45283c10c..c7df24879e 100644
--- a/doc/classes/Script.xml
+++ b/doc/classes/Script.xml
@@ -19,6 +19,18 @@
Returns true if the script can be instanced.
</description>
</method>
+ <method name="get_base_script" qualifiers="const">
+ <return type="Script">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_instance_base_type" qualifiers="const">
+ <return type="String">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="get_source_code" qualifiers="const">
<return type="String">
</return>
diff --git a/doc/classes/ScriptEditor.xml b/doc/classes/ScriptEditor.xml
index 0b035f90d2..81b0b3d0c3 100644
--- a/doc/classes/ScriptEditor.xml
+++ b/doc/classes/ScriptEditor.xml
@@ -57,6 +57,16 @@
Returns an array with all [Script] objects which are currently open in editor.
</description>
</method>
+ <method name="open_script_create_dialog">
+ <return type="void">
+ </return>
+ <argument index="0" name="base_name" type="String">
+ </argument>
+ <argument index="1" name="base_path" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
</methods>
<signals>
<signal name="editor_script_changed">
diff --git a/doc/classes/Semaphore.xml b/doc/classes/Semaphore.xml
index d8deb9651a..c8206ff2c2 100644
--- a/doc/classes/Semaphore.xml
+++ b/doc/classes/Semaphore.xml
@@ -4,7 +4,7 @@
A synchronization Semaphore.
</brief_description>
<description>
- A synchronization Semaphore. Element used in multi-threadding. Initialized to zero on creation.
+ A synchronization Semaphore. Element used to synchronize multiple [Thread]s. Initialized to zero on creation. Be careful to avoid deadlocks. For a binary version, see [Mutex].
</description>
<tutorials>
</tutorials>
@@ -15,14 +15,14 @@
<return type="int" enum="Error">
</return>
<description>
- Lowers the [code]Semaphore[/code], allowing one more thread in.
+ Lowers the [code]Semaphore[/code], allowing one more thread in. Returns [OK] on success, [ERR_BUSY] otherwise.
</description>
</method>
<method name="wait">
<return type="int" enum="Error">
</return>
<description>
- Tries to wait for the [code]Semaphore[/code], if its value is zero, blocks until non-zero.
+ Tries to wait for the [code]Semaphore[/code], if its value is zero, blocks until non-zero. Returns [OK] on success, [ERR_BUSY] otherwise.
</description>
</method>
</methods>
diff --git a/doc/classes/SpatialMaterial.xml b/doc/classes/SpatialMaterial.xml
index cf08b0daae..403a6dc930 100644
--- a/doc/classes/SpatialMaterial.xml
+++ b/doc/classes/SpatialMaterial.xml
@@ -75,6 +75,8 @@
</member>
<member name="emission_energy" type="float" setter="set_emission_energy" getter="get_emission_energy">
</member>
+ <member name="emission_on_uv2" type="bool" setter="set_flag" getter="get_flag">
+ </member>
<member name="emission_operator" type="int" setter="set_emission_operator" getter="get_emission_operator" enum="SpatialMaterial.EmissionOperator">
</member>
<member name="emission_texture" type="Texture" setter="set_texture" getter="get_texture">
@@ -305,13 +307,15 @@
</constant>
<constant name="FLAG_AO_ON_UV2" value="10" enum="Flags">
</constant>
- <constant name="FLAG_USE_ALPHA_SCISSOR" value="11" enum="Flags">
+ <constant name="FLAG_EMISSION_ON_UV2" value="11" enum="Flags">
+ </constant>
+ <constant name="FLAG_USE_ALPHA_SCISSOR" value="12" enum="Flags">
</constant>
<constant name="FLAG_TRIPLANAR_USE_WORLD" value="9" enum="Flags">
</constant>
- <constant name="FLAG_ALBEDO_TEXTURE_FORCE_SRGB" value="12" enum="Flags">
+ <constant name="FLAG_ALBEDO_TEXTURE_FORCE_SRGB" value="13" enum="Flags">
</constant>
- <constant name="FLAG_MAX" value="13" enum="Flags">
+ <constant name="FLAG_MAX" value="14" enum="Flags">
</constant>
<constant name="DIFFUSE_BURLEY" value="0" enum="DiffuseMode">
</constant>
diff --git a/doc/classes/String.xml b/doc/classes/String.xml
index 78e9f3cd3f..8bbd52b417 100644
--- a/doc/classes/String.xml
+++ b/doc/classes/String.xml
@@ -662,8 +662,11 @@
</argument>
<argument index="1" name="allow_empty" type="bool" default="True">
</argument>
+ <argument index="2" name="maxsplit" type="int" default="0">
+ </argument>
<description>
Splits the string by a divisor string and returns an array of the substrings. Example "One,Two,Three" will return ["One","Two","Three"] if split by ",".
+ If [code]maxsplit[/code] is given, at most maxsplit number of splits occur, and the remainder of the string is returned as the final element of the list (thus, the list will have at most maxsplit+1 elements)
</description>
</method>
<method name="split_floats">
diff --git a/doc/classes/TextEdit.xml b/doc/classes/TextEdit.xml
index da30c4c7bd..ab722a24c3 100644
--- a/doc/classes/TextEdit.xml
+++ b/doc/classes/TextEdit.xml
@@ -109,6 +109,13 @@
Cut the current selection.
</description>
</method>
+ <method name="deselect">
+ <return type="void">
+ </return>
+ <description>
+ Clears the current selection.
+ </description>
+ </method>
<method name="fold_all_lines">
<return type="void">
</return>
@@ -338,18 +345,28 @@
</methods>
<members>
<member name="caret_blink" type="bool" setter="cursor_set_blink_enabled" getter="cursor_get_blink_enabled">
+ If [code]true[/code] the caret (visual cursor) blinks.
</member>
<member name="caret_blink_speed" type="float" setter="cursor_set_blink_speed" getter="cursor_get_blink_speed">
+ Duration (in seconds) of a caret's blinking cycle.
</member>
<member name="caret_block_mode" type="bool" setter="cursor_set_block_mode" getter="cursor_is_block_mode">
+ If [code]true[/code] the caret displays as a rectangle.
+ If [code]false[/code] the caret displays as a bar.
+ </member>
+ <member name="caret_moving_by_right_click" type="bool" setter="set_right_click_moves_caret" getter="is_right_click_moving_caret">
+ If [code]true[/code] a right click moves the cursor at the mouse position before displaying the context menu.
+ If [code]false[/code] the context menu disregards mouse location.
</member>
<member name="context_menu_enabled" type="bool" setter="set_context_menu_enabled" getter="is_context_menu_enabled">
+ If [code]true[/code] a right click displays the context menu.
</member>
<member name="hiding_enabled" type="int" setter="set_hiding_enabled" getter="is_hiding_enabled">
</member>
<member name="highlight_all_occurrences" type="bool" setter="set_highlight_all_occurrences" getter="is_highlight_all_occurrences_enabled">
</member>
<member name="highlight_current_line" type="bool" setter="set_highlight_current_line" getter="is_highlight_current_line_enabled">
+ If [code]true[/code] the line containing the cursor is highlighted.
</member>
<member name="override_selected_font_color" type="bool" setter="set_override_selected_font_color" getter="is_overriding_selected_font_color">
</member>
@@ -357,6 +374,7 @@
If [code]true[/code] read-only mode is enabled. Existing text cannot be modified and new text cannot be added.
</member>
<member name="show_line_numbers" type="bool" setter="set_show_line_numbers" getter="is_show_line_numbers_enabled">
+ If [code]true[/code] line numbers are displayed to the left of the text.
</member>
<member name="smooth_scrolling" type="bool" setter="set_smooth_scroll_enable" getter="is_smooth_scroll_enabled">
</member>
@@ -412,16 +430,22 @@
Search from end to beginning.
</constant>
<constant name="MENU_CUT" value="0" enum="MenuItems">
+ Cuts (Copies and clears) the selected text.
</constant>
<constant name="MENU_COPY" value="1" enum="MenuItems">
+ Copies the selected text.
</constant>
<constant name="MENU_PASTE" value="2" enum="MenuItems">
+ Pastes the clipboard text over the selected text (or at the cursor's position).
</constant>
<constant name="MENU_CLEAR" value="3" enum="MenuItems">
+ Erases the whole [TextEdit] text.
</constant>
<constant name="MENU_SELECT_ALL" value="4" enum="MenuItems">
+ Selects the whole [TextEdit] text.
</constant>
<constant name="MENU_UNDO" value="5" enum="MenuItems">
+ Undoes the previous action.
</constant>
<constant name="MENU_MAX" value="6" enum="MenuItems">
</constant>
diff --git a/doc/classes/TileMap.xml b/doc/classes/TileMap.xml
index 72cd56dc55..510a215fbc 100644
--- a/doc/classes/TileMap.xml
+++ b/doc/classes/TileMap.xml
@@ -182,6 +182,24 @@
<description>
</description>
</method>
+ <method name="update_bitmask_area">
+ <return type="void">
+ </return>
+ <argument index="0" name="arg0" type="Vector2">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="update_bitmask_region">
+ <return type="void">
+ </return>
+ <argument index="0" name="start" type="Vector2" default="Vector2( 0, 0 )">
+ </argument>
+ <argument index="1" name="end" type="Vector2" default="Vector2( 0, 0 )">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="world_to_map" qualifiers="const">
<return type="Vector2">
</return>
diff --git a/doc/classes/Transform2D.xml b/doc/classes/Transform2D.xml
index 17576f33ed..f4717aa995 100644
--- a/doc/classes/Transform2D.xml
+++ b/doc/classes/Transform2D.xml
@@ -4,7 +4,7 @@
2D Transformation. 3x2 matrix.
</brief_description>
<description>
- Represents one or many transformations in 3D space such as translation, rotation, or scaling. It consists of a two [Vector2] x, y and [Vector2] "origin". It is similar to a 3x2 matrix.
+ Represents one or many transformations in 2D space such as translation, rotation, or scaling. It consists of a two [Vector2] x, y and [Vector2] "origin". It is similar to a 3x2 matrix.
</description>
<tutorials>
</tutorials>
@@ -17,7 +17,7 @@
<argument index="0" name="from" type="Transform">
</argument>
<description>
- Constructs the [code]Transform2D[/code] from a 3D [Transform].
+ Constructs the transform from a 3D [Transform].
</description>
</method>
<method name="Transform2D">
@@ -30,7 +30,7 @@
<argument index="2" name="origin" type="Vector2">
</argument>
<description>
- Constructs the [code]Transform2D[/code] from 3 [Vector2] consisting of rows x, y and origin.
+ Constructs the transform from 3 [Vector2]s representing x, y, and origin.
</description>
</method>
<method name="Transform2D">
@@ -41,7 +41,7 @@
<argument index="1" name="position" type="Vector2">
</argument>
<description>
- Constructs the [code]Transform2D[/code] from rotation angle in radians and position [Vector2].
+ Constructs the transform from a given angle (in radians) and position.
</description>
</method>
<method name="affine_inverse">
@@ -57,7 +57,7 @@
<argument index="0" name="v" type="var">
</argument>
<description>
- Transforms the given vector "v" by this transform basis (no translation).
+ Transforms the given vector by this transform's basis (no translation).
</description>
</method>
<method name="basis_xform_inv">
@@ -66,21 +66,21 @@
<argument index="0" name="v" type="var">
</argument>
<description>
- Inverse-transforms the given vector "v" by this transform basis (no translation).
+ Inverse-transforms the given vector by this transform's basis (no translation).
</description>
</method>
<method name="get_origin">
<return type="Vector2">
</return>
<description>
- Returns the origin [Vector2] (translation).
+ Returns the transform's origin (translation).
</description>
</method>
<method name="get_rotation">
<return type="float">
</return>
<description>
- Returns the rotation (in radians).
+ Returns the transform's rotation (in radians).
</description>
</method>
<method name="get_scale">
@@ -98,7 +98,7 @@
<argument index="1" name="weight" type="float">
</argument>
<description>
- Interpolates the transform to other Transform2D by weight amount (0-1).
+ Returns a transform interpolated between this transform and another by a given weight (0-1).
</description>
</method>
<method name="inverse">
@@ -121,7 +121,7 @@
<argument index="0" name="phi" type="float">
</argument>
<description>
- Rotates the transform by phi.
+ Rotates the transform by the given angle (in radians).
</description>
</method>
<method name="scaled">
@@ -130,7 +130,7 @@
<argument index="0" name="scale" type="Vector2">
</argument>
<description>
- Scales the transform by the specified 2D scaling factors.
+ Scales the transform by the given factor.
</description>
</method>
<method name="translated">
@@ -139,7 +139,7 @@
<argument index="0" name="offset" type="Vector2">
</argument>
<description>
- Translates the transform by the specified offset.
+ Translates the transform by the given offset.
</description>
</method>
<method name="xform">
@@ -163,13 +163,13 @@
</methods>
<members>
<member name="origin" type="Vector2" setter="" getter="">
- The translation offset of the transform.
+ The transform's translation offset.
</member>
<member name="x" type="Vector2" setter="" getter="">
- The X axis of 2x2 basis matrix containing 2 [Vector2] as its columns: X axis and Y axis. These vectors can be interpreted as the basis vectors of local coordinate system traveling with the object.
+ The X axis of 2x2 basis matrix containing 2 [Vector2]s as its columns: X axis and Y axis. These vectors can be interpreted as the basis vectors of local coordinate system traveling with the object.
</member>
<member name="y" type="Vector2" setter="" getter="">
- The Y axis of 2x2 basis matrix containing 2 [Vector2] as its columns: X axis and Y axis. These vectors can be interpreted as the basis vectors of local coordinate system traveling with the object.
+ The Y axis of 2x2 basis matrix containing 2 [Vector2]s as its columns: X axis and Y axis. These vectors can be interpreted as the basis vectors of local coordinate system traveling with the object.
</member>
</members>
<constants>
diff --git a/doc/classes/VisualServer.xml b/doc/classes/VisualServer.xml
index 1a9dc3a669..0cba132de8 100644
--- a/doc/classes/VisualServer.xml
+++ b/doc/classes/VisualServer.xml
@@ -2315,7 +2315,9 @@
</constant>
<constant name="INSTANCE_GI_PROBE" value="7" enum="InstanceType">
</constant>
- <constant name="INSTANCE_MAX" value="8" enum="InstanceType">
+ <constant name="INSTANCE_LIGHTMAP_CAPTURE" value="8" enum="InstanceType">
+ </constant>
+ <constant name="INSTANCE_MAX" value="9" enum="InstanceType">
The max value for INSTANCE_* constants, used internally.
</constant>
<constant name="INSTANCE_GEOMETRY_MASK" value="30" enum="InstanceType">
diff --git a/drivers/gles3/rasterizer_canvas_gles3.cpp b/drivers/gles3/rasterizer_canvas_gles3.cpp
index 309497c938..86415ea740 100644
--- a/drivers/gles3/rasterizer_canvas_gles3.cpp
+++ b/drivers/gles3/rasterizer_canvas_gles3.cpp
@@ -1086,19 +1086,22 @@ void RasterizerCanvasGLES3::canvas_render_items(Item *p_item_list, int p_z, cons
}
}
- if (shader_ptr && shader_ptr != shader_cache) {
+ if (shader_ptr) {
if (shader_ptr->canvas_item.uses_screen_texture && !state.canvas_texscreen_used) {
//copy if not copied before
_copy_texscreen(Rect2());
}
- if (shader_ptr->canvas_item.uses_time) {
- VisualServerRaster::redraw_request();
- }
+ if (shader_ptr != shader_cache) {
- state.canvas_shader.set_custom_shader(shader_ptr->custom_code_id);
- state.canvas_shader.bind();
+ if (shader_ptr->canvas_item.uses_time) {
+ VisualServerRaster::redraw_request();
+ }
+
+ state.canvas_shader.set_custom_shader(shader_ptr->custom_code_id);
+ state.canvas_shader.bind();
+ }
if (material_ptr->ubo_id) {
glBindBufferBase(GL_UNIFORM_BUFFER, 2, material_ptr->ubo_id);
@@ -1147,7 +1150,7 @@ void RasterizerCanvasGLES3::canvas_render_items(Item *p_item_list, int p_z, cons
glBindTexture(t->target, t->tex_id);
}
- } else if (!shader_ptr) {
+ } else {
state.canvas_shader.set_custom_shader(0);
state.canvas_shader.bind();
}
@@ -1545,7 +1548,7 @@ void RasterizerCanvasGLES3::reset_canvas() {
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
//use for reading from screen
- if (storage->frame.current_rt) {
+ if (storage->frame.current_rt && !storage->frame.current_rt->flags[RasterizerStorage::RENDER_TARGET_NO_SAMPLING]) {
glActiveTexture(GL_TEXTURE0 + storage->config.max_texture_image_units - 3);
glBindTexture(GL_TEXTURE_2D, storage->frame.current_rt->effects.mip_maps[0].color);
}
@@ -1784,6 +1787,8 @@ void RasterizerCanvasGLES3::initialize() {
state.canvas_shader.set_conditional(CanvasShaderGLES3::USE_RGBA_SHADOWS, storage->config.use_rgba_2d_shadows);
state.canvas_shadow_shader.set_conditional(CanvasShadowShaderGLES3::USE_RGBA_SHADOWS, storage->config.use_rgba_2d_shadows);
+
+ state.canvas_shader.set_conditional(CanvasShaderGLES3::USE_PIXEL_SNAP, GLOBAL_DEF("rendering/quality/2d/use_pixel_snap", false));
}
void RasterizerCanvasGLES3::finalize() {
diff --git a/drivers/gles3/rasterizer_gles3.cpp b/drivers/gles3/rasterizer_gles3.cpp
index cd0adbd0d1..6b827002f8 100644
--- a/drivers/gles3/rasterizer_gles3.cpp
+++ b/drivers/gles3/rasterizer_gles3.cpp
@@ -354,47 +354,10 @@ void RasterizerGLES3::blit_render_target_to_screen(RID p_render_target, const Re
void RasterizerGLES3::end_frame(bool p_swap_buffers) {
-#if 0
- canvas->canvas_begin();
- glActiveTexture(GL_TEXTURE0);
- glBindTexture(GL_TEXTURE_2D,storage->resources.white_tex);
- glDisable(GL_BLEND);
- glDisable(GL_DEPTH_TEST);
- glDisable(GL_CULL_FACE);
-
-
- float vtx[8]={0,0,
- 0,1,
- 1,1,
- 1,0
- };
-
- glBindBuffer(GL_ARRAY_BUFFER,0);
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,0);
-
- glEnableVertexAttribArray(VS::ARRAY_VERTEX);
- glVertexAttribPointer( VS::ARRAY_VERTEX, 2 ,GL_FLOAT, false, 0, vtx );
-
-
- //glBindBuffer(GL_ARRAY_BUFFER,canvas->data.canvas_quad_vertices);
- //glEnableVertexAttribArray(VS::ARRAY_VERTEX);
- //glVertexAttribPointer( VS::ARRAY_VERTEX, 2 ,GL_FLOAT, false, 0, 0 );
-
- glBindVertexArray(canvas->data.canvas_quad_array);
-
- canvas->draw_generic_textured_rect(Rect2(0,0,15,15),Rect2(0,0,1,1));
-#endif
if (p_swap_buffers)
OS::get_singleton()->swap_buffers();
else
glFinish();
-
- /* print_line("objects: "+itos(storage->info.render_object_count));
- print_line("material chages: "+itos(storage->info.render_material_switch_count));
- print_line("surface changes: "+itos(storage->info.render_surface_switch_count));
- print_line("shader changes: "+itos(storage->info.render_shader_rebind_count));
- print_line("vertices: "+itos(storage->info.render_vertices_count));
-*/
}
void RasterizerGLES3::finalize() {
diff --git a/drivers/gles3/rasterizer_scene_gles3.cpp b/drivers/gles3/rasterizer_scene_gles3.cpp
index 13fbb5c293..1c3361d2de 100644
--- a/drivers/gles3/rasterizer_scene_gles3.cpp
+++ b/drivers/gles3/rasterizer_scene_gles3.cpp
@@ -1541,7 +1541,19 @@ void RasterizerSceneGLES3::_render_geometry(RenderList::Element *e) {
if (c.texture.is_valid() && storage->texture_owner.owns(c.texture)) {
- const RasterizerStorageGLES3::Texture *t = storage->texture_owner.get(c.texture);
+ RasterizerStorageGLES3::Texture *t = storage->texture_owner.get(c.texture);
+
+ t = t->get_ptr(); //resolve for proxies
+#ifdef TOOLS_ENABLED
+ if (t->detect_3d) {
+ t->detect_3d(t->detect_3d_ud);
+ }
+#endif
+
+ if (t->render_target) {
+ t->render_target->used_in_frame = true;
+ }
+
glActiveTexture(GL_TEXTURE0);
glBindTexture(t->target, t->tex_id);
restore_tex = true;
@@ -1557,7 +1569,7 @@ void RasterizerSceneGLES3::_render_geometry(RenderList::Element *e) {
glEnableVertexAttribArray(VS::ARRAY_NORMAL);
glBufferSubData(GL_ARRAY_BUFFER, buf_ofs, sizeof(Vector3) * vertices, c.normals.ptr());
- glVertexAttribPointer(VS::ARRAY_NORMAL, 3, GL_FLOAT, false, sizeof(Vector3) * vertices, ((uint8_t *)NULL) + buf_ofs);
+ glVertexAttribPointer(VS::ARRAY_NORMAL, 3, GL_FLOAT, false, sizeof(Vector3), ((uint8_t *)NULL) + buf_ofs);
buf_ofs += sizeof(Vector3) * vertices;
} else {
@@ -1569,7 +1581,7 @@ void RasterizerSceneGLES3::_render_geometry(RenderList::Element *e) {
glEnableVertexAttribArray(VS::ARRAY_TANGENT);
glBufferSubData(GL_ARRAY_BUFFER, buf_ofs, sizeof(Plane) * vertices, c.tangents.ptr());
- glVertexAttribPointer(VS::ARRAY_TANGENT, 4, GL_FLOAT, false, sizeof(Plane) * vertices, ((uint8_t *)NULL) + buf_ofs);
+ glVertexAttribPointer(VS::ARRAY_TANGENT, 4, GL_FLOAT, false, sizeof(Plane), ((uint8_t *)NULL) + buf_ofs);
buf_ofs += sizeof(Plane) * vertices;
} else {
@@ -2786,12 +2798,6 @@ void RasterizerSceneGLES3::_setup_lights(RID *p_light_cull_result, int p_light_c
copymem(&state.omni_array_tmp[li->light_index * state.ubo_light_size], &ubo_data, state.ubo_light_size);
state.omni_light_count++;
-#if 0
- if (li->light_ptr->shadow_enabled) {
- li->shadow_projection[0] = Transform(camera_transform_inverse * li->transform).inverse();
- lights_use_shadow=true;
- }
-#endif
} break;
case VS::LIGHT_SPOT: {
diff --git a/drivers/gles3/rasterizer_storage_gles3.cpp b/drivers/gles3/rasterizer_storage_gles3.cpp
index ee6c738a05..0ed0dbe0c0 100644
--- a/drivers/gles3/rasterizer_storage_gles3.cpp
+++ b/drivers/gles3/rasterizer_storage_gles3.cpp
@@ -5334,6 +5334,14 @@ void RasterizerStorageGLES3::particles_set_emitting(RID p_particles, bool p_emit
}
particles->emitting = p_emitting;
}
+
+bool RasterizerStorageGLES3::particles_get_emitting(RID p_particles) {
+ Particles *particles = particles_owner.getornull(p_particles);
+ ERR_FAIL_COND_V(!particles, false);
+
+ return particles->emitting;
+}
+
void RasterizerStorageGLES3::particles_set_amount(RID p_particles, int p_amount) {
Particles *particles = particles_owner.getornull(p_particles);
@@ -6048,6 +6056,7 @@ void RasterizerStorageGLES3::_render_target_clear(RenderTarget *rt) {
glDeleteTextures(1, &rt->effects.mip_maps[i].color);
rt->effects.mip_maps[i].sizes.clear();
rt->effects.mip_maps[i].levels = 0;
+ rt->effects.mip_maps[i].color = 0;
}
}
diff --git a/drivers/gles3/rasterizer_storage_gles3.h b/drivers/gles3/rasterizer_storage_gles3.h
index 6647372688..9f04e00360 100644
--- a/drivers/gles3/rasterizer_storage_gles3.h
+++ b/drivers/gles3/rasterizer_storage_gles3.h
@@ -1206,6 +1206,7 @@ public:
virtual RID particles_create();
virtual void particles_set_emitting(RID p_particles, bool p_emitting);
+ virtual bool particles_get_emitting(RID p_particles);
virtual void particles_set_amount(RID p_particles, int p_amount);
virtual void particles_set_lifetime(RID p_particles, float p_lifetime);
virtual void particles_set_one_shot(RID p_particles, bool p_one_shot);
diff --git a/drivers/gles3/shader_compiler_gles3.cpp b/drivers/gles3/shader_compiler_gles3.cpp
index 101978548d..ec00c057b2 100644
--- a/drivers/gles3/shader_compiler_gles3.cpp
+++ b/drivers/gles3/shader_compiler_gles3.cpp
@@ -806,7 +806,6 @@ ShaderCompilerGLES3::ShaderCompilerGLES3() {
actions[VS::SHADER_SPATIAL].renames["SCREEN_UV"] = "screen_uv";
actions[VS::SHADER_SPATIAL].renames["SCREEN_TEXTURE"] = "screen_texture";
actions[VS::SHADER_SPATIAL].renames["DEPTH_TEXTURE"] = "depth_buffer";
- actions[VS::SHADER_SPATIAL].renames["SIDE"] = "side";
actions[VS::SHADER_SPATIAL].renames["ALPHA_SCISSOR"] = "alpha_scissor";
//for light
@@ -847,6 +846,8 @@ ShaderCompilerGLES3::ShaderCompilerGLES3() {
actions[VS::SHADER_SPATIAL].render_mode_defines["skip_vertex_transform"] = "#define SKIP_TRANSFORM_USED\n";
actions[VS::SHADER_SPATIAL].render_mode_defines["world_vertex_coords"] = "#define VERTEX_WORLD_COORDS_USED\n";
+ actions[VS::SHADER_SPATIAL].render_mode_defines["cull_front"] = "#define DO_SIDE_CHECK\n";
+ actions[VS::SHADER_SPATIAL].render_mode_defines["cull_disabled"] = "#define DO_SIDE_CHECK\n";
actions[VS::SHADER_SPATIAL].render_mode_defines["diffuse_burley"] = "#define DIFFUSE_BURLEY\n";
actions[VS::SHADER_SPATIAL].render_mode_defines["diffuse_oren_nayar"] = "#define DIFFUSE_OREN_NAYAR\n";
diff --git a/drivers/gles3/shader_gles3.cpp b/drivers/gles3/shader_gles3.cpp
index 9e234f5005..56b1cfdf0f 100644
--- a/drivers/gles3/shader_gles3.cpp
+++ b/drivers/gles3/shader_gles3.cpp
@@ -279,21 +279,6 @@ ShaderGLES3::Version *ShaderGLES3::get_current_version() {
strings.push_back("precision highp sampler2DArray;\n");
#endif
-#if 0
- if (cc) {
-
- String _code_string = "#define VERTEX_SHADER_CODE "+cc->vertex+"\n";
- String _code_globals = "#define VERTEX_SHADER_GLOBALS "+cc->vertex_globals+"\n";
-
- code_string=_code_string.ascii();
- code_globals=_code_globals.ascii();
- DEBUG_PRINT( code_globals.get_data() );
- DEBUG_PRINT( code_string.get_data() );
- strings.push_back(code_globals);
- strings.push_back(code_string);
- }
-#endif
-
strings.push_back(vertex_code0.get_data());
if (cc) {
@@ -382,21 +367,6 @@ ShaderGLES3::Version *ShaderGLES3::get_current_version() {
strings.push_back("precision highp sampler2DArray;\n");
#endif
-#if 0
- if (cc) {
-
- String _code_string = "#define FRAGMENT_SHADER_CODE "+cc->fragment+"\n";
- String _code_globals = "#define FRAGMENT_SHADER_GLOBALS "+cc->fragment_globals+"\n";
-
- code_string=_code_string.ascii();
- code_globals=_code_globals.ascii();
- DEBUG_PRINT( code_globals.get_data() );
- DEBUG_PRINT( code_string.get_data() );
- strings.push_back(code_globals);
- strings.push_back(code_string);
- }
-#endif
-
strings.push_back(fragment_code0.get_data());
if (cc) {
material_string = cc->uniforms.ascii();
@@ -495,7 +465,6 @@ ShaderGLES3::Version *ShaderGLES3::get_current_version() {
if (feedbacks[i].conditional == -1 || (1 << feedbacks[i].conditional) & conditional_version.version) {
//conditional for this feedback is enabled
- print_line("tf varying: " + itos(feedback.size()) + " " + String(feedbacks[i].name));
feedback.push_back(feedbacks[i].name);
}
}
diff --git a/drivers/gles3/shaders/canvas.glsl b/drivers/gles3/shaders/canvas.glsl
index 4bbb18ce42..0b8230234b 100644
--- a/drivers/gles3/shaders/canvas.glsl
+++ b/drivers/gles3/shaders/canvas.glsl
@@ -171,7 +171,7 @@ VERTEX_SHADER_CODE
#ifdef USE_PIXEL_SNAP
- outvec.xy=floor(outvec+0.5);
+ outvec.xy=floor(outvec+0.5).xy;
#endif
diff --git a/drivers/gles3/shaders/scene.glsl b/drivers/gles3/shaders/scene.glsl
index 9bc2bc079d..6427e3d967 100644
--- a/drivers/gles3/shaders/scene.glsl
+++ b/drivers/gles3/shaders/scene.glsl
@@ -174,7 +174,7 @@ void light_compute(vec3 N, vec3 L,vec3 V, vec3 light_color, float roughness, ino
vec3 H = normalize(V + L);
float dotNH = max(dot(N,H), 0.0 );
- float intensity = pow( dotNH, (1.0-roughness) * 256.0);
+ float intensity = (roughness >= 1.0 ? 1.0 : pow( dotNH, (1.0-roughness) * 256.0));
specular += light_color * intensity;
}
@@ -296,6 +296,48 @@ void main() {
#endif
+
+#if defined(ENABLE_TANGENT_INTERP) || defined(ENABLE_NORMALMAP) || defined(LIGHT_USE_ANISOTROPY)
+
+ vec3 binormal = normalize( cross(normal,tangent) * binormalf );
+#endif
+
+#if defined(ENABLE_UV_INTERP)
+ uv_interp = uv_attrib;
+#endif
+
+#if defined(ENABLE_UV2_INTERP) || defined(USE_LIGHTMAP)
+ uv2_interp = uv2_attrib;
+#endif
+
+#if defined(USE_INSTANCING) && defined(ENABLE_INSTANCE_CUSTOM)
+ vec4 instance_custom = instance_custom_data;
+#else
+ vec4 instance_custom = vec4(0.0);
+#endif
+
+ highp mat4 local_projection = projection_matrix;
+
+//using world coordinates
+#if !defined(SKIP_TRANSFORM_USED) && defined(VERTEX_WORLD_COORDS_USED)
+
+ vertex = world_matrix * vertex;
+ normal = normalize((world_matrix * vec4(normal,0.0)).xyz);
+
+#if defined(ENABLE_TANGENT_INTERP) || defined(ENABLE_NORMALMAP) || defined(LIGHT_USE_ANISOTROPY)
+
+ tangent = normalize((world_matrix * vec4(tangent,0.0)).xyz);
+ binormal = normalize((world_matrix * vec4(binormal,0.0)).xyz);
+#endif
+#endif
+
+ float roughness=0.0;
+
+//defines that make writing custom shaders easier
+#define projection_matrix local_projection
+#define world_transform world_matrix
+
+
#ifdef USE_SKELETON
{
//skeleton transform
@@ -333,57 +375,13 @@ void main() {
texelFetch(skeleton_texture,tex_ofs+ivec2(0,2),0)
) * bone_weights.w;
+ mat4 bone_matrix = transpose(mat4(m[0],m[1],m[2],vec4(0.0,0.0,0.0,1.0)));
- vertex.xyz = vertex * m;
-
- normal = vec4(normal,0.0) * m;
-#if defined(ENABLE_TANGENT_INTERP) || defined(ENABLE_NORMALMAP) || defined(LIGHT_USE_ANISOTROPY)
- tangent.xyz = vec4(tangent.xyz,0.0) * m;
-#endif
+ world_matrix = bone_matrix * world_matrix;
}
#endif
-
-#if defined(ENABLE_TANGENT_INTERP) || defined(ENABLE_NORMALMAP) || defined(LIGHT_USE_ANISOTROPY)
-
- vec3 binormal = normalize( cross(normal,tangent) * binormalf );
-#endif
-
-#if defined(ENABLE_UV_INTERP)
- uv_interp = uv_attrib;
-#endif
-
-#if defined(ENABLE_UV2_INTERP) || defined(USE_LIGHTMAP)
- uv2_interp = uv2_attrib;
-#endif
-
-#if defined(USE_INSTANCING) && defined(ENABLE_INSTANCE_CUSTOM)
- vec4 instance_custom = instance_custom_data;
-#else
- vec4 instance_custom = vec4(0.0);
-#endif
-
- highp mat4 modelview = camera_inverse_matrix * world_matrix;
- highp mat4 local_projection = projection_matrix;
-
-//using world coordinates
-#if !defined(SKIP_TRANSFORM_USED) && defined(VERTEX_WORLD_COORDS_USED)
-
- vertex = world_matrix * vertex;
- normal = normalize((world_matrix * vec4(normal,0.0)).xyz);
-
-#if defined(ENABLE_TANGENT_INTERP) || defined(ENABLE_NORMALMAP) || defined(LIGHT_USE_ANISOTROPY)
-
- tangent = normalize((world_matrix * vec4(tangent,0.0)).xyz);
- binormal = normalize((world_matrix * vec4(binormal,0.0)).xyz);
-#endif
-#endif
-
- float roughness=0.0;
-
-//defines that make writing custom shaders easier
-#define projection_matrix local_projection
-#define world_transform world_matrix
+ mat4 modelview = camera_inverse_matrix * world_matrix;
{
VERTEX_SHADER_CODE
@@ -1617,7 +1615,7 @@ void main() {
float alpha = 1.0;
-#ifdef METERIAL_DOUBLESIDED
+#if defined(DO_SIDE_CHECK)
float side=float(gl_FrontFacing)*2.0-1.0;
#else
float side=1.0;
diff --git a/drivers/unix/packet_peer_udp_posix.cpp b/drivers/unix/packet_peer_udp_posix.cpp
index 61d2737555..f6742d8114 100644
--- a/drivers/unix/packet_peer_udp_posix.cpp
+++ b/drivers/unix/packet_peer_udp_posix.cpp
@@ -65,7 +65,7 @@ int PacketPeerUDPPosix::get_available_packet_count() const {
return queue_count;
}
-Error PacketPeerUDPPosix::get_packet(const uint8_t **r_buffer, int &r_buffer_size) const {
+Error PacketPeerUDPPosix::get_packet(const uint8_t **r_buffer, int &r_buffer_size) {
Error err = const_cast<PacketPeerUDPPosix *>(this)->_poll(false);
if (err != OK)
diff --git a/drivers/unix/packet_peer_udp_posix.h b/drivers/unix/packet_peer_udp_posix.h
index e580d336b2..ad7be5bbe0 100644
--- a/drivers/unix/packet_peer_udp_posix.h
+++ b/drivers/unix/packet_peer_udp_posix.h
@@ -41,12 +41,12 @@ class PacketPeerUDPPosix : public PacketPeerUDP {
PACKET_BUFFER_SIZE = 65536
};
- mutable RingBuffer<uint8_t> rb;
+ RingBuffer<uint8_t> rb;
uint8_t recv_buffer[PACKET_BUFFER_SIZE];
- mutable uint8_t packet_buffer[PACKET_BUFFER_SIZE];
- mutable IP_Address packet_ip;
- mutable int packet_port;
- mutable int queue_count;
+ uint8_t packet_buffer[PACKET_BUFFER_SIZE];
+ IP_Address packet_ip;
+ int packet_port;
+ int queue_count;
int sockfd;
bool sock_blocking;
IP::Type sock_type;
@@ -62,7 +62,7 @@ class PacketPeerUDPPosix : public PacketPeerUDP {
public:
virtual int get_available_packet_count() const;
- virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size) const;
+ virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size);
virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size);
virtual int get_max_packet_size() const;
diff --git a/platform/windows/packet_peer_udp_winsock.cpp b/drivers/windows/packet_peer_udp_winsock.cpp
index d414ec891e..119ee68bd2 100644
--- a/platform/windows/packet_peer_udp_winsock.cpp
+++ b/drivers/windows/packet_peer_udp_winsock.cpp
@@ -27,6 +27,8 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+#ifdef WINDOWS_ENABLED
+
#include "packet_peer_udp_winsock.h"
#include <winsock2.h>
@@ -43,7 +45,7 @@ int PacketPeerUDPWinsock::get_available_packet_count() const {
return queue_count;
}
-Error PacketPeerUDPWinsock::get_packet(const uint8_t **r_buffer, int &r_buffer_size) const {
+Error PacketPeerUDPWinsock::get_packet(const uint8_t **r_buffer, int &r_buffer_size) {
Error err = const_cast<PacketPeerUDPWinsock *>(this)->_poll(false);
if (err != OK)
@@ -291,3 +293,5 @@ PacketPeerUDPWinsock::~PacketPeerUDPWinsock() {
close();
}
+
+#endif
diff --git a/platform/windows/packet_peer_udp_winsock.h b/drivers/windows/packet_peer_udp_winsock.h
index 8a6951fd6e..8ce2cff741 100644
--- a/platform/windows/packet_peer_udp_winsock.h
+++ b/drivers/windows/packet_peer_udp_winsock.h
@@ -27,6 +27,8 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+#ifdef WINDOWS_ENABLED
+
#ifndef PACKET_PEER_UDP_WINSOCK_H
#define PACKET_PEER_UDP_WINSOCK_H
@@ -39,12 +41,12 @@ class PacketPeerUDPWinsock : public PacketPeerUDP {
PACKET_BUFFER_SIZE = 65536
};
- mutable RingBuffer<uint8_t> rb;
+ RingBuffer<uint8_t> rb;
uint8_t recv_buffer[PACKET_BUFFER_SIZE];
- mutable uint8_t packet_buffer[PACKET_BUFFER_SIZE];
- mutable IP_Address packet_ip;
- mutable int packet_port;
- mutable int queue_count;
+ uint8_t packet_buffer[PACKET_BUFFER_SIZE];
+ IP_Address packet_ip;
+ int packet_port;
+ int queue_count;
int sockfd;
bool sock_blocking;
IP::Type sock_type;
@@ -62,7 +64,7 @@ class PacketPeerUDPWinsock : public PacketPeerUDP {
public:
virtual int get_available_packet_count() const;
- virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size) const;
+ virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size);
virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size);
virtual int get_max_packet_size() const;
@@ -82,3 +84,5 @@ public:
~PacketPeerUDPWinsock();
};
#endif // PACKET_PEER_UDP_WINSOCK_H
+
+#endif
diff --git a/platform/windows/stream_peer_winsock.cpp b/drivers/windows/stream_peer_tcp_winsock.cpp
index 8b83215325..f4cd38079d 100644
--- a/platform/windows/stream_peer_winsock.cpp
+++ b/drivers/windows/stream_peer_tcp_winsock.cpp
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* stream_peer_winsock.cpp */
+/* stream_peer_tcp_winsock.cpp */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -29,7 +29,7 @@
/*************************************************************************/
#ifdef WINDOWS_ENABLED
-#include "stream_peer_winsock.h"
+#include "stream_peer_tcp_winsock.h"
#include <winsock2.h>
#include <ws2tcpip.h>
@@ -38,14 +38,14 @@
int winsock_refcount = 0;
-StreamPeerTCP *StreamPeerWinsock::_create() {
+StreamPeerTCP *StreamPeerTCPWinsock::_create() {
- return memnew(StreamPeerWinsock);
+ return memnew(StreamPeerTCPWinsock);
};
-void StreamPeerWinsock::make_default() {
+void StreamPeerTCPWinsock::make_default() {
- StreamPeerTCP::_create = StreamPeerWinsock::_create;
+ StreamPeerTCP::_create = StreamPeerTCPWinsock::_create;
if (winsock_refcount == 0) {
WSADATA data;
@@ -54,7 +54,7 @@ void StreamPeerWinsock::make_default() {
++winsock_refcount;
};
-void StreamPeerWinsock::cleanup() {
+void StreamPeerTCPWinsock::cleanup() {
--winsock_refcount;
if (winsock_refcount == 0) {
@@ -63,7 +63,7 @@ void StreamPeerWinsock::cleanup() {
};
};
-Error StreamPeerWinsock::_block(int p_sockfd, bool p_read, bool p_write) const {
+Error StreamPeerTCPWinsock::_block(int p_sockfd, bool p_read, bool p_write) const {
fd_set read, write;
FD_ZERO(&read);
@@ -78,7 +78,7 @@ Error StreamPeerWinsock::_block(int p_sockfd, bool p_read, bool p_write) const {
return ret < 0 ? FAILED : OK;
};
-Error StreamPeerWinsock::_poll_connection() const {
+Error StreamPeerTCPWinsock::_poll_connection() const {
ERR_FAIL_COND_V(status != STATUS_CONNECTING || sockfd == INVALID_SOCKET, FAILED);
@@ -108,7 +108,7 @@ Error StreamPeerWinsock::_poll_connection() const {
return OK;
};
-Error StreamPeerWinsock::write(const uint8_t *p_data, int p_bytes, int &r_sent, bool p_block) {
+Error StreamPeerTCPWinsock::write(const uint8_t *p_data, int p_bytes, int &r_sent, bool p_block) {
if (status == STATUS_NONE || status == STATUS_ERROR) {
@@ -166,7 +166,7 @@ Error StreamPeerWinsock::write(const uint8_t *p_data, int p_bytes, int &r_sent,
return OK;
};
-Error StreamPeerWinsock::read(uint8_t *p_buffer, int p_bytes, int &r_received, bool p_block) {
+Error StreamPeerTCPWinsock::read(uint8_t *p_buffer, int p_bytes, int &r_received, bool p_block) {
if (!is_connected_to_host()) {
@@ -224,29 +224,29 @@ Error StreamPeerWinsock::read(uint8_t *p_buffer, int p_bytes, int &r_received, b
return OK;
};
-Error StreamPeerWinsock::put_data(const uint8_t *p_data, int p_bytes) {
+Error StreamPeerTCPWinsock::put_data(const uint8_t *p_data, int p_bytes) {
int total;
return write(p_data, p_bytes, total, true);
};
-Error StreamPeerWinsock::put_partial_data(const uint8_t *p_data, int p_bytes, int &r_sent) {
+Error StreamPeerTCPWinsock::put_partial_data(const uint8_t *p_data, int p_bytes, int &r_sent) {
return write(p_data, p_bytes, r_sent, false);
};
-Error StreamPeerWinsock::get_data(uint8_t *p_buffer, int p_bytes) {
+Error StreamPeerTCPWinsock::get_data(uint8_t *p_buffer, int p_bytes) {
int total;
return read(p_buffer, p_bytes, total, true);
};
-Error StreamPeerWinsock::get_partial_data(uint8_t *p_buffer, int p_bytes, int &r_received) {
+Error StreamPeerTCPWinsock::get_partial_data(uint8_t *p_buffer, int p_bytes, int &r_received) {
return read(p_buffer, p_bytes, r_received, false);
};
-StreamPeerTCP::Status StreamPeerWinsock::get_status() const {
+StreamPeerTCP::Status StreamPeerTCPWinsock::get_status() const {
if (status == STATUS_CONNECTING) {
_poll_connection();
@@ -255,7 +255,7 @@ StreamPeerTCP::Status StreamPeerWinsock::get_status() const {
return status;
};
-bool StreamPeerWinsock::is_connected_to_host() const {
+bool StreamPeerTCPWinsock::is_connected_to_host() const {
if (status == STATUS_NONE || status == STATUS_ERROR) {
@@ -268,7 +268,7 @@ bool StreamPeerWinsock::is_connected_to_host() const {
return (sockfd != INVALID_SOCKET);
};
-void StreamPeerWinsock::disconnect_from_host() {
+void StreamPeerTCPWinsock::disconnect_from_host() {
if (sockfd != INVALID_SOCKET)
closesocket(sockfd);
@@ -281,7 +281,7 @@ void StreamPeerWinsock::disconnect_from_host() {
peer_port = 0;
};
-void StreamPeerWinsock::set_socket(int p_sockfd, IP_Address p_host, int p_port, IP::Type p_sock_type) {
+void StreamPeerTCPWinsock::set_socket(int p_sockfd, IP_Address p_host, int p_port, IP::Type p_sock_type) {
sockfd = p_sockfd;
sock_type = p_sock_type;
@@ -290,7 +290,7 @@ void StreamPeerWinsock::set_socket(int p_sockfd, IP_Address p_host, int p_port,
peer_port = p_port;
};
-Error StreamPeerWinsock::connect_to_host(const IP_Address &p_host, uint16_t p_port) {
+Error StreamPeerTCPWinsock::connect_to_host(const IP_Address &p_host, uint16_t p_port) {
ERR_FAIL_COND_V(!p_host.is_valid(), ERR_INVALID_PARAMETER);
@@ -331,13 +331,13 @@ Error StreamPeerWinsock::connect_to_host(const IP_Address &p_host, uint16_t p_po
return OK;
};
-void StreamPeerWinsock::set_nodelay(bool p_enabled) {
+void StreamPeerTCPWinsock::set_nodelay(bool p_enabled) {
ERR_FAIL_COND(!is_connected_to_host());
int flag = p_enabled ? 1 : 0;
setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(int));
}
-int StreamPeerWinsock::get_available_bytes() const {
+int StreamPeerTCPWinsock::get_available_bytes() const {
unsigned long len;
int ret = ioctlsocket(sockfd, FIONREAD, &len);
@@ -345,17 +345,17 @@ int StreamPeerWinsock::get_available_bytes() const {
return len;
}
-IP_Address StreamPeerWinsock::get_connected_host() const {
+IP_Address StreamPeerTCPWinsock::get_connected_host() const {
return peer_host;
};
-uint16_t StreamPeerWinsock::get_connected_port() const {
+uint16_t StreamPeerTCPWinsock::get_connected_port() const {
return peer_port;
};
-StreamPeerWinsock::StreamPeerWinsock() {
+StreamPeerTCPWinsock::StreamPeerTCPWinsock() {
sock_type = IP::TYPE_NONE;
sockfd = INVALID_SOCKET;
@@ -363,7 +363,7 @@ StreamPeerWinsock::StreamPeerWinsock() {
peer_port = 0;
};
-StreamPeerWinsock::~StreamPeerWinsock() {
+StreamPeerTCPWinsock::~StreamPeerTCPWinsock() {
disconnect_from_host();
};
diff --git a/platform/windows/stream_peer_winsock.h b/drivers/windows/stream_peer_tcp_winsock.h
index 26e2a3e4c9..fef457c43f 100644
--- a/platform/windows/stream_peer_winsock.h
+++ b/drivers/windows/stream_peer_tcp_winsock.h
@@ -29,15 +29,15 @@
/*************************************************************************/
#ifdef WINDOWS_ENABLED
-#ifndef STREAM_PEER_WINSOCK_H
-#define STREAM_PEER_WINSOCK_H
+#ifndef STREAM_PEER_TCP_WINSOCK_H
+#define STREAM_PEER_TCP_WINSOCK_H
#include "error_list.h"
#include "core/io/ip_address.h"
#include "core/io/stream_peer_tcp.h"
-class StreamPeerWinsock : public StreamPeerTCP {
+class StreamPeerTCPWinsock : public StreamPeerTCP {
protected:
mutable Status status;
@@ -82,10 +82,10 @@ public:
virtual void set_nodelay(bool p_enabled);
- StreamPeerWinsock();
- ~StreamPeerWinsock();
+ StreamPeerTCPWinsock();
+ ~StreamPeerTCPWinsock();
};
-#endif // TCP_SOCKET_POSIX_H
+#endif // STREAM_PEER_TCP_WINSOCK_H
#endif
diff --git a/platform/windows/tcp_server_winsock.cpp b/drivers/windows/tcp_server_winsock.cpp
index de300befa7..49de279793 100644
--- a/platform/windows/tcp_server_winsock.cpp
+++ b/drivers/windows/tcp_server_winsock.cpp
@@ -27,9 +27,11 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+#ifdef WINDOWS_ENABLED
+
#include "tcp_server_winsock.h"
-#include "stream_peer_winsock.h"
+#include "stream_peer_tcp_winsock.h"
#include <winsock2.h>
#include <ws2tcpip.h>
@@ -151,7 +153,7 @@ Ref<StreamPeerTCP> TCPServerWinsock::take_connection() {
int fd = accept(listen_sockfd, (struct sockaddr *)&their_addr, &sin_size);
ERR_FAIL_COND_V(fd == INVALID_SOCKET, NULL);
- Ref<StreamPeerWinsock> conn = memnew(StreamPeerWinsock);
+ Ref<StreamPeerTCPWinsock> conn = memnew(StreamPeerTCPWinsock);
IP_Address ip;
int port;
_set_ip_addr_port(ip, port, &their_addr);
@@ -181,3 +183,5 @@ TCPServerWinsock::~TCPServerWinsock() {
stop();
};
+
+#endif
diff --git a/platform/windows/tcp_server_winsock.h b/drivers/windows/tcp_server_winsock.h
index a3e01098ed..fd16480167 100644
--- a/platform/windows/tcp_server_winsock.h
+++ b/drivers/windows/tcp_server_winsock.h
@@ -27,6 +27,8 @@
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
+#ifdef WINDOWS_ENABLED
+
#ifndef TCP_SERVER_WINSOCK_H
#define TCP_SERVER_WINSOCK_H
@@ -54,3 +56,5 @@ public:
};
#endif
+
+#endif
diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp
index 2584d26fc4..e904fd94be 100644
--- a/editor/create_dialog.cpp
+++ b/editor/create_dialog.cpp
@@ -267,7 +267,6 @@ void CreateDialog::_update_search() {
if (EditorNode::get_editor_data().get_custom_types().has(type) && ClassDB::is_parent_class(type, base_type)) {
//there are custom types based on this... cool.
- //print_line("there are custom types");
const Vector<EditorData::CustomType> &ct = EditorNode::get_editor_data().get_custom_types()[type];
for (int i = 0; i < ct.size(); i++) {
@@ -630,31 +629,40 @@ CreateDialog::CreateDialog() {
set_resizable(true);
- HSplitContainer *hbc = memnew(HSplitContainer);
+ HSplitContainer *hsc = memnew(HSplitContainer);
+ add_child(hsc);
- add_child(hbc);
+ VSplitContainer *vsc = memnew(VSplitContainer);
+ hsc->add_child(vsc);
- VBoxContainer *lvbc = memnew(VBoxContainer);
- hbc->add_child(lvbc);
- lvbc->set_custom_minimum_size(Size2(150, 0) * EDSCALE);
+ VBoxContainer *fav_vb = memnew(VBoxContainer);
+ vsc->add_child(fav_vb);
+ fav_vb->set_custom_minimum_size(Size2(150, 100) * EDSCALE);
+ fav_vb->set_v_size_flags(SIZE_EXPAND_FILL);
favorites = memnew(Tree);
- lvbc->add_margin_child(TTR("Favorites:"), favorites, true);
+ fav_vb->add_margin_child(TTR("Favorites:"), favorites, true);
favorites->set_hide_root(true);
favorites->set_hide_folding(true);
favorites->connect("cell_selected", this, "_favorite_selected");
favorites->connect("item_activated", this, "_favorite_activated");
favorites->set_drag_forwarding(this);
+ VBoxContainer *rec_vb = memnew(VBoxContainer);
+ vsc->add_child(rec_vb);
+ rec_vb->set_custom_minimum_size(Size2(150, 100) * EDSCALE);
+ rec_vb->set_v_size_flags(SIZE_EXPAND_FILL);
+
recent = memnew(Tree);
- lvbc->add_margin_child(TTR("Recent:"), recent, true);
+ rec_vb->add_margin_child(TTR("Recent:"), recent, true);
recent->set_hide_root(true);
recent->set_hide_folding(true);
recent->connect("cell_selected", this, "_history_selected");
recent->connect("item_activated", this, "_history_activated");
VBoxContainer *vbc = memnew(VBoxContainer);
- hbc->add_child(vbc);
+ hsc->add_child(vbc);
+ vbc->set_custom_minimum_size(Size2(300, 0) * EDSCALE);
vbc->set_h_size_flags(SIZE_EXPAND_FILL);
HBoxContainer *search_hb = memnew(HBoxContainer);
search_box = memnew(LineEdit);
@@ -676,7 +684,6 @@ CreateDialog::CreateDialog() {
set_hide_on_ok(false);
search_options->connect("item_activated", this, "_confirmed");
search_options->connect("cell_selected", this, "_item_selected");
- //search_options->set_hide_root(true);
base_type = "Object";
preferred_search_result_type = "";
diff --git a/editor/editor_about.cpp b/editor/editor_about.cpp
index 5f026abb6d..6db3c09673 100644
--- a/editor/editor_about.cpp
+++ b/editor/editor_about.cpp
@@ -145,7 +145,7 @@ EditorAbout::EditorAbout() {
List<String> dev_sections;
dev_sections.push_back(TTR("Project Founders"));
dev_sections.push_back(TTR("Lead Developer"));
- dev_sections.push_back(TTR("Project Manager"));
+ dev_sections.push_back(TTR("Project Manager ")); // " " appended to distinguish between 'project supervisor' and 'project list'
dev_sections.push_back(TTR("Developers"));
const char **dev_src[] = { dev_founders, dev_lead, dev_manager, dev_names };
tc->add_child(_populate_list(TTR("Authors"), dev_sections, dev_src, 1));
diff --git a/editor/editor_autoload_settings.cpp b/editor/editor_autoload_settings.cpp
index ae7ed7ce61..2796f776d7 100644
--- a/editor/editor_autoload_settings.cpp
+++ b/editor/editor_autoload_settings.cpp
@@ -548,34 +548,28 @@ EditorAutoloadSettings::EditorAutoloadSettings() {
HBoxContainer *hbc = memnew(HBoxContainer);
add_child(hbc);
- VBoxContainer *vbc_path = memnew(VBoxContainer);
- vbc_path->set_h_size_flags(SIZE_EXPAND_FILL);
+ Label *l = memnew(Label);
+ l->set_text(TTR("Path:"));
+ hbc->add_child(l);
autoload_add_path = memnew(EditorLineEditFileChooser);
autoload_add_path->set_h_size_flags(SIZE_EXPAND_FILL);
-
autoload_add_path->get_file_dialog()->set_mode(EditorFileDialog::MODE_OPEN_FILE);
autoload_add_path->get_file_dialog()->connect("file_selected", this, "_autoload_file_callback");
+ hbc->add_child(autoload_add_path);
- vbc_path->add_margin_child(TTR("Path:"), autoload_add_path);
- hbc->add_child(vbc_path);
-
- VBoxContainer *vbc_name = memnew(VBoxContainer);
- vbc_name->set_h_size_flags(SIZE_EXPAND_FILL);
-
- HBoxContainer *hbc_name = memnew(HBoxContainer);
+ l = memnew(Label);
+ l->set_text(TTR("Node Name:"));
+ hbc->add_child(l);
autoload_add_name = memnew(LineEdit);
autoload_add_name->set_h_size_flags(SIZE_EXPAND_FILL);
- hbc_name->add_child(autoload_add_name);
+ hbc->add_child(autoload_add_name);
Button *add_autoload = memnew(Button);
add_autoload->set_text(TTR("Add"));
- hbc_name->add_child(add_autoload);
add_autoload->connect("pressed", this, "_autoload_add");
-
- vbc_name->add_margin_child(TTR("Node Name:"), hbc_name);
- hbc->add_child(vbc_name);
+ hbc->add_child(add_autoload);
tree = memnew(Tree);
tree->set_hide_root(true);
@@ -606,5 +600,7 @@ EditorAutoloadSettings::EditorAutoloadSettings() {
tree->connect("item_edited", this, "_autoload_edited");
tree->connect("button_pressed", this, "_autoload_button_pressed");
- add_margin_child(TTR("List:"), tree, true);
+ tree->set_v_size_flags(SIZE_EXPAND_FILL);
+
+ add_child(tree, true);
}
diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp
index 49d55e6305..214b1cac89 100644
--- a/editor/editor_data.cpp
+++ b/editor/editor_data.cpp
@@ -701,6 +701,15 @@ String EditorData::get_scene_title(int p_idx) const {
return name;
}
+void EditorData::set_scene_path(int p_idx, const String &p_path) {
+
+ ERR_FAIL_INDEX(p_idx, edited_scene.size());
+
+ if (!edited_scene[p_idx].root)
+ return;
+ edited_scene[p_idx].root->set_filename(p_path);
+}
+
String EditorData::get_scene_path(int p_idx) const {
ERR_FAIL_INDEX_V(p_idx, edited_scene.size(), String());
diff --git a/editor/editor_data.h b/editor/editor_data.h
index 33a4091a65..f15b7e37f1 100644
--- a/editor/editor_data.h
+++ b/editor/editor_data.h
@@ -185,6 +185,7 @@ public:
String get_scene_title(int p_idx) const;
String get_scene_path(int p_idx) const;
String get_scene_type(int p_idx) const;
+ void set_scene_path(int p_idx, const String &p_path);
Ref<Script> get_scene_root_script(int p_idx) const;
void set_edited_scene_version(uint64_t version, int p_scene_idx = -1);
uint64_t get_edited_scene_version() const;
diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp
index b330f5d177..1b88a56b75 100644
--- a/editor/editor_export.cpp
+++ b/editor/editor_export.cpp
@@ -740,7 +740,24 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &
ProjectSettings::CustomMap custom_map;
if (path_remaps.size()) {
- custom_map["path_remap/remapped_paths"] = path_remaps;
+ if (1) { //new remap mode, use always as it's friendlier with multiple .pck exports
+ for (int i = 0; i < path_remaps.size(); i += 2) {
+ String from = path_remaps[i];
+ String to = path_remaps[i + 1];
+ String remap_file = "[remap]\n\npath=\"" + to.c_escape() + "\"\n";
+ CharString utf8 = remap_file.utf8();
+ Vector<uint8_t> new_file;
+ new_file.resize(utf8.length());
+ for (int j = 0; j < utf8.length(); j++) {
+ new_file[j] = utf8[j];
+ }
+
+ p_func(p_udata, from + ".remap", new_file, idx, total);
+ }
+ } else {
+ //old remap mode, will still work, but it's unused because it's not multiple pck export friendly
+ custom_map["path_remap/remapped_paths"] = path_remaps;
+ }
}
// Store icon and splash images directly, they need to bypass the import system and be loaded as images
@@ -1288,8 +1305,18 @@ bool EditorExportPlatformPC::can_export(const Ref<EditorExportPreset> &p_preset,
return valid;
}
-String EditorExportPlatformPC::get_binary_extension() const {
- return extension;
+String EditorExportPlatformPC::get_binary_extension(const Ref<EditorExportPreset> &p_preset) const {
+ for (Map<String, String>::Element *E = extensions.front(); E; E = E->next()) {
+ if (p_preset->get(E->key())) {
+ return extensions[E->key()];
+ }
+ }
+
+ if (extensions.has("default")) {
+ return extensions["default"];
+ }
+
+ return "";
}
Error EditorExportPlatformPC::export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) {
@@ -1337,8 +1364,8 @@ Error EditorExportPlatformPC::export_project(const Ref<EditorExportPreset> &p_pr
return save_pack(p_preset, pck_path);
}
-void EditorExportPlatformPC::set_extension(const String &p_extension) {
- extension = p_extension;
+void EditorExportPlatformPC::set_extension(const String &p_extension, const String &p_feature_key) {
+ extensions[p_feature_key] = p_extension;
}
void EditorExportPlatformPC::set_name(const String &p_name) {
diff --git a/editor/editor_export.h b/editor/editor_export.h
index 8b1cf4bcff..02b15aff10 100644
--- a/editor/editor_export.h
+++ b/editor/editor_export.h
@@ -240,7 +240,7 @@ public:
virtual bool can_export(const Ref<EditorExportPreset> &p_preset, String &r_error, bool &r_missing_templates) const = 0;
- virtual String get_binary_extension() const = 0;
+ virtual String get_binary_extension(const Ref<EditorExportPreset> &p_preset) const = 0;
virtual Error export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags = 0) = 0;
virtual void get_platform_features(List<String> *r_features) = 0;
@@ -363,7 +363,7 @@ class EditorExportPlatformPC : public EditorExportPlatform {
Ref<ImageTexture> logo;
String name;
String os_name;
- String extension;
+ Map<String, String> extensions;
String release_file_32;
String release_file_64;
@@ -385,10 +385,10 @@ public:
virtual Ref<Texture> get_logo() const;
virtual bool can_export(const Ref<EditorExportPreset> &p_preset, String &r_error, bool &r_missing_templates) const;
- virtual String get_binary_extension() const;
+ virtual String get_binary_extension(const Ref<EditorExportPreset> &p_preset) const;
virtual Error export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags = 0);
- void set_extension(const String &p_extension);
+ void set_extension(const String &p_extension, const String &p_feature_key = "default");
void set_name(const String &p_name);
void set_os_name(const String &p_name);
diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp
index eaa57fa46b..4bf138354d 100644
--- a/editor/editor_file_dialog.cpp
+++ b/editor/editor_file_dialog.cpp
@@ -54,7 +54,7 @@ void EditorFileDialog::_notification(int p_what) {
if (p_what == NOTIFICATION_ENTER_TREE) {
- //_update_icons
+ // update icons
mode_thumbnails->set_icon(get_icon("FileThumbnail", "EditorIcons"));
mode_list->set_icon(get_icon("FileList", "EditorIcons"));
dir_prev->set_icon(get_icon("Back", "EditorIcons"));
@@ -65,7 +65,6 @@ void EditorFileDialog::_notification(int p_what) {
fav_up->set_icon(get_icon("MoveUp", "EditorIcons"));
fav_down->set_icon(get_icon("MoveDown", "EditorIcons"));
- fav_rm->set_icon(get_icon("Remove", "EditorIcons"));
} else if (p_what == NOTIFICATION_PROCESS) {
@@ -80,10 +79,6 @@ void EditorFileDialog::_notification(int p_what) {
preview_wheel_timeout = 0.1;
}
}
- } else if (p_what == NOTIFICATION_DRAW) {
-
- //RID ci = get_canvas_item();
- //get_stylebox("panel","PopupMenu")->draw(ci,Rect2(Point2(),get_size()));
} else if (p_what == NOTIFICATION_POPUP_HIDE) {
set_process_unhandled_input(false);
@@ -95,7 +90,7 @@ void EditorFileDialog::_notification(int p_what) {
set_show_hidden_files(show_hidden);
set_display_mode((DisplayMode)EditorSettings::get_singleton()->get("filesystem/file_dialog/display_mode").operator int());
- //_update_icons
+ // update icons
mode_thumbnails->set_icon(get_icon("FileThumbnail", "EditorIcons"));
mode_list->set_icon(get_icon("FileList", "EditorIcons"));
dir_prev->set_icon(get_icon("Back", "EditorIcons"));
@@ -106,9 +101,8 @@ void EditorFileDialog::_notification(int p_what) {
fav_up->set_icon(get_icon("MoveUp", "EditorIcons"));
fav_down->set_icon(get_icon("MoveDown", "EditorIcons"));
- fav_rm->set_icon(get_icon("Remove", "EditorIcons"));
-
- update_file_list();
+ // DO NOT CALL UPDATE FILE LIST HERE, ALL HUNDREDS OF HIDDEN DIALOGS WILL RESPOND, CALL INVALIDATE INSTEAD
+ invalidate();
}
}
@@ -260,7 +254,6 @@ void EditorFileDialog::_post_popup() {
name = name.get_file() + "/";
}
- //print_line("file: "+name);
recent->add_item(name, folder);
recent->set_item_metadata(recent->get_item_count() - 1, recentd[i]);
}
@@ -316,7 +309,7 @@ void EditorFileDialog::_request_single_thumbnail(const String &p_path) {
return;
EditorResourcePreview::get_singleton()->queue_resource_preview(p_path, this, "_thumbnail_done", p_path);
- //print_line("want file "+p_path);
+
set_process(true);
preview_waiting = true;
preview_wheel_timeout = 0;
@@ -376,7 +369,7 @@ void EditorFileDialog::_action_pressed() {
bool valid = false;
if (filter->get_selected() == filter->get_item_count() - 1) {
- valid = true; //match none
+ valid = true; // match none
} else if (filters.size() > 1 && filter->get_selected() == 0) {
// match all filters
for (int i = 0; i < filters.size(); i++) {
@@ -637,6 +630,7 @@ bool EditorFileDialog::_is_open_should_be_disabled() {
return false;
}
+// DO NOT USE THIS FUNCTION UNLESS NEEDED, CALL INVALIDATE() INSTEAD.
void EditorFileDialog::update_file_list() {
int thumbnail_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size");
@@ -776,14 +770,12 @@ void EditorFileDialog::update_file_list() {
}
if (match) {
- //TreeItem *ti=tree->create_item(root);
- //ti->set_text(0,files.front()->get());
+
item_list->add_item(files.front()->get());
if (get_icon_func) {
Ref<Texture> icon = get_icon_func(cdir.plus_file(files.front()->get()));
- //ti->set_icon(0,icon);
if (display_mode == DISPLAY_THUMBNAILS) {
item_list->set_item_icon(item_list->get_item_count() - 1, file_thumbnail);
@@ -793,11 +785,6 @@ void EditorFileDialog::update_file_list() {
}
}
- if (mode == MODE_OPEN_DIR) {
- //disabled mode?
- //ti->set_custom_color(0,get_color("files_disabled"));
- //ti->set_selectable(0,false);
- }
Dictionary d;
d["name"] = files.front()->get();
d["dir"] = false;
@@ -806,7 +793,6 @@ void EditorFileDialog::update_file_list() {
EditorResourcePreview::get_singleton()->queue_resource_preview(fullpath, this, "_thumbnail_result", fullpath);
}
d["path"] = fullpath;
- //ti->set_metadata(0,d);
item_list->set_item_metadata(item_list->get_item_count() - 1, d);
if (file->get_text() == files.front()->get())
@@ -837,11 +823,6 @@ void EditorFileDialog::update_file_list() {
break;
}
}
- // ??
- /*
- if (tree->get_root() && tree->get_root()->get_children())
- tree->get_root()->get_children()->select(0);
- */
files.clear();
}
@@ -915,7 +896,6 @@ void EditorFileDialog::set_current_dir(const String &p_dir) {
dir_access->change_dir(p_dir);
update_dir();
invalidate();
- //_push_history();
}
void EditorFileDialog::set_current_file(const String &p_file) {
@@ -1190,7 +1170,6 @@ void EditorFileDialog::_update_favorites() {
name = name.get_file() + "/";
}
- //print_line("file: "+name);
favorites->add_item(name, star);
favorites->set_item_metadata(favorites->get_item_count() - 1, favorited[i]);
@@ -1441,6 +1420,8 @@ bool EditorFileDialog::is_overwrite_warning_disabled() const {
EditorFileDialog::EditorFileDialog() {
+ set_resizable(true);
+
show_hidden_files = default_show_hidden_files;
display_mode = default_display_mode;
local_history_pos = 0;
@@ -1498,6 +1479,8 @@ EditorFileDialog::EditorFileDialog() {
Ref<ButtonGroup> view_mode_group;
view_mode_group.instance();
+ pathhb->add_child(memnew(VSeparator));
+
mode_thumbnails = memnew(ToolButton);
mode_thumbnails->connect("pressed", this, "set_display_mode", varray(DISPLAY_THUMBNAILS));
mode_thumbnails->set_toggle_mode(true);
@@ -1527,8 +1510,13 @@ EditorFileDialog::EditorFileDialog() {
vbc->add_child(list_hb);
list_hb->set_v_size_flags(SIZE_EXPAND_FILL);
+ VSplitContainer *vsc = memnew(VSplitContainer);
+ list_hb->add_child(vsc);
+
VBoxContainer *fav_vb = memnew(VBoxContainer);
- list_hb->add_child(fav_vb);
+ vsc->add_child(fav_vb);
+ fav_vb->set_custom_minimum_size(Size2(150, 100) * EDSCALE);
+ fav_vb->set_v_size_flags(SIZE_EXPAND_FILL);
HBoxContainer *fav_hb = memnew(HBoxContainer);
fav_vb->add_child(fav_hb);
fav_hb->add_child(memnew(Label(TTR("Favorites:"))));
@@ -1539,23 +1527,23 @@ EditorFileDialog::EditorFileDialog() {
fav_down = memnew(ToolButton);
fav_hb->add_child(fav_down);
fav_down->connect("pressed", this, "_favorite_move_down");
- fav_rm = memnew(ToolButton);
- fav_hb->add_child(fav_rm);
- fav_rm->hide(); // redundant
- MarginContainer *fav_mv = memnew(MarginContainer);
- fav_vb->add_child(fav_mv);
- fav_mv->set_v_size_flags(SIZE_EXPAND_FILL);
favorites = memnew(ItemList);
- fav_mv->add_child(favorites);
+ fav_vb->add_child(favorites);
+ favorites->set_v_size_flags(SIZE_EXPAND_FILL);
favorites->connect("item_selected", this, "_favorite_selected");
+ VBoxContainer *rec_vb = memnew(VBoxContainer);
+ vsc->add_child(rec_vb);
+ rec_vb->set_custom_minimum_size(Size2(150, 100) * EDSCALE);
+ rec_vb->set_v_size_flags(SIZE_EXPAND_FILL);
recent = memnew(ItemList);
- fav_vb->add_margin_child(TTR("Recent:"), recent, true);
+ rec_vb->add_margin_child(TTR("Recent:"), recent, true);
recent->connect("item_selected", this, "_recent_selected");
VBoxContainer *item_vb = memnew(VBoxContainer);
list_hb->add_child(item_vb);
+ item_vb->set_custom_minimum_size(Size2(320, 0) * EDSCALE);
HBoxContainer *preview_hb = memnew(HBoxContainer);
preview_hb->set_v_size_flags(SIZE_EXPAND_FILL);
@@ -1598,7 +1586,7 @@ EditorFileDialog::EditorFileDialog() {
filter = memnew(OptionButton);
filter->set_stretch_ratio(3);
filter->set_h_size_flags(SIZE_EXPAND_FILL);
- filter->set_clip_text(true); //too many extensions overflow it
+ filter->set_clip_text(true); // too many extensions overflow it
filename_hbc->add_child(filter);
filename_hbc->set_h_size_flags(SIZE_EXPAND_FILL);
item_vb->add_child(filename_hbc);
@@ -1608,7 +1596,6 @@ EditorFileDialog::EditorFileDialog() {
_update_drives();
connect("confirmed", this, "_action_pressed");
- //cancel->connect("pressed", this,"_cancel_pressed");
item_list->connect("item_selected", this, "_item_selected", varray(), CONNECT_DEFERRED);
item_list->connect("item_activated", this, "_item_db_selected", varray());
item_list->connect("nothing_selected", this, "_items_clear_selection");
@@ -1642,7 +1629,6 @@ EditorFileDialog::EditorFileDialog() {
exterr->set_text(TTR("Must use a valid extension."));
add_child(exterr);
- //update_file_list();
update_filters();
update_dir();
diff --git a/editor/editor_file_dialog.h b/editor/editor_file_dialog.h
index f4a9a174e7..281ded6889 100644
--- a/editor/editor_file_dialog.h
+++ b/editor/editor_file_dialog.h
@@ -36,6 +36,7 @@
#include "scene/gui/item_list.h"
#include "scene/gui/line_edit.h"
#include "scene/gui/option_button.h"
+#include "scene/gui/separator.h"
#include "scene/gui/split_container.h"
#include "scene/gui/texture_rect.h"
#include "scene/gui/tool_button.h"
diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp
index d462cce908..27a1248089 100644
--- a/editor/editor_file_system.cpp
+++ b/editor/editor_file_system.cpp
@@ -320,7 +320,10 @@ bool EditorFileSystem::_test_for_reimport(const String &p_path, bool p_only_impo
List<String> to_check;
+ String source_file;
String source_md5;
+ Vector<String> dest_files;
+ String dest_md5;
while (true) {
@@ -346,8 +349,16 @@ bool EditorFileSystem::_test_for_reimport(const String &p_path, bool p_only_impo
for (int i = 0; i < fa.size(); i++) {
to_check.push_back(fa[i]);
}
- } else if (!p_only_imported_files && assign == "source_md5") {
- source_md5 = value;
+ } else if (!p_only_imported_files) {
+ if (assign == "source_md5") {
+ source_md5 = value;
+ } else if (assign == "source_file") {
+ source_file = value;
+ } else if (assign == "dest_md5") {
+ dest_md5 = value;
+ } else if (assign == "dest_files") {
+ dest_files = value;
+ }
}
} else if (next_tag.name != "remap" && next_tag.name != "deps") {
@@ -366,6 +377,11 @@ bool EditorFileSystem::_test_for_reimport(const String &p_path, bool p_only_impo
//check source md5 matching
if (!p_only_imported_files) {
+
+ if (source_file != String() && source_file != p_path) {
+ return true; //file was moved, reimport
+ }
+
if (source_md5 == String()) {
return true; //lacks md5, so just reimport
}
@@ -374,6 +390,13 @@ bool EditorFileSystem::_test_for_reimport(const String &p_path, bool p_only_impo
if (md5 != source_md5) {
return true;
}
+
+ if (dest_files.size() && dest_md5 != String()) {
+ md5 = FileAccess::get_multiple_md5(dest_files);
+ if (md5 != dest_md5) {
+ return true;
+ }
+ }
}
return false; //nothing changed
@@ -1388,6 +1411,8 @@ void EditorFileSystem::_reimport_file(const String &p_file) {
f->store_line("type=\"" + importer->get_resource_type() + "\"");
}
+ Vector<String> dest_paths;
+
if (err == OK) {
if (importer->get_save_extension() == "") {
@@ -1399,10 +1424,12 @@ void EditorFileSystem::_reimport_file(const String &p_file) {
String path = base_path.c_escape() + "." + E->get() + "." + importer->get_save_extension();
f->store_line("path." + E->get() + "=\"" + path + "\"");
+ dest_paths.push_back(path);
}
} else {
-
- f->store_line("path=\"" + base_path + "." + importer->get_save_extension() + "\"");
+ String path = base_path + "." + importer->get_save_extension();
+ f->store_line("path=\"" + path + "\"");
+ dest_paths.push_back(path);
}
} else {
@@ -1418,6 +1445,7 @@ void EditorFileSystem::_reimport_file(const String &p_file) {
Array genf;
for (List<String>::Element *E = gen_files.front(); E; E = E->next()) {
genf.push_back(E->get());
+ dest_paths.push_back(E->get());
}
String value;
@@ -1426,8 +1454,18 @@ void EditorFileSystem::_reimport_file(const String &p_file) {
f->store_line("");
}
+ f->store_line("source_file=" + Variant(p_file).get_construct_string());
f->store_line("source_md5=\"" + FileAccess::get_md5(p_file) + "\"\n");
+ if (dest_paths.size()) {
+ Array dp;
+ for (int i = 0; i < dest_paths.size(); i++) {
+ dp.push_back(dest_paths[i]);
+ }
+ f->store_line("dest_files=" + Variant(dp).get_construct_string());
+ f->store_line("dest_md5=\"" + FileAccess::get_multiple_md5(dest_paths) + "\"\n");
+ }
+
f->store_line("[params]");
f->store_line("");
diff --git a/editor/editor_fonts.cpp b/editor/editor_fonts.cpp
index 8aca007e6b..a76c419152 100644
--- a/editor/editor_fonts.cpp
+++ b/editor/editor_fonts.cpp
@@ -173,11 +173,12 @@ void editor_register_fonts(Ref<Theme> p_theme) {
p_theme->set_font("output_source", "EditorFonts", df_output_code);
Ref<DynamicFont> df_text_editor_status_code;
- df_output_code.instance();
- df_output_code->set_size(14 * EDSCALE);
- df_output_code->set_spacing(DynamicFont::SPACING_TOP, -EDSCALE);
- df_output_code->set_spacing(DynamicFont::SPACING_BOTTOM, -EDSCALE);
- df_output_code->set_font_data(dfmono);
- MAKE_FALLBACKS(df_output_code);
- p_theme->set_font("status_source", "EditorFonts", df_output_code);
+ df_text_editor_status_code.instance();
+ df_text_editor_status_code->set_size(14 * EDSCALE);
+ df_text_editor_status_code->set_spacing(DynamicFont::SPACING_TOP, -EDSCALE);
+ df_text_editor_status_code->set_spacing(DynamicFont::SPACING_BOTTOM, -EDSCALE);
+ df_text_editor_status_code->set_font_data(dfmono);
+ MAKE_FALLBACKS(df_text_editor_status_code);
+
+ p_theme->set_font("status_source", "EditorFonts", df_text_editor_status_code);
}
diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp
index 676b168371..814da4b5f4 100644
--- a/editor/editor_help.cpp
+++ b/editor/editor_help.cpp
@@ -324,23 +324,14 @@ EditorHelpSearch::EditorHelpSearch() {
set_hide_on_ok(false);
search_options->connect("item_activated", this, "_confirmed");
set_title(TTR("Search Help"));
-
- //search_options->set_hide_root(true);
}
/////////////////////////////////
-////////////////////////////////////
-/// /////////////////////////////////
-
void EditorHelpIndex::add_type(const String &p_type, HashMap<String, TreeItem *> &p_types, TreeItem *p_root) {
if (p_types.has(p_type))
return;
- /*
- if (!ClassDB::is_type(p_type,base) || p_type==base)
- return;
- */
String inherits = EditorHelp::get_doc_data()->class_list[p_type].inherits;
@@ -379,8 +370,6 @@ void EditorHelpIndex::_tree_item_selected() {
EditorNode::get_singleton()->set_visible_editor(EditorNode::EDITOR_SCRIPT);
emit_signal("open_class", s->get_text(0));
hide();
-
- //_goto_desc(s->get_text(0));
}
void EditorHelpIndex::select_class(const String &p_class) {
@@ -518,10 +507,21 @@ EditorHelpIndex::EditorHelpIndex() {
/////////////////////////////////
-////////////////////////////////////
-/// /////////////////////////////////
DocData *EditorHelp::doc = NULL;
+void EditorHelp::_init_colors() {
+
+ title_color = get_color("accent_color", "Editor");
+ text_color = get_color("default_color", "RichTextLabel");
+ headline_color = get_color("headline_color", "EditorHelp");
+ base_type_color = title_color.linear_interpolate(text_color, 0.5);
+ comment_color = Color(text_color.r, text_color.g, text_color.b, 0.6);
+ symbol_color = comment_color;
+ value_color = Color(text_color.r, text_color.g, text_color.b, 0.4);
+ qualifier_color = Color(text_color.r, text_color.g, text_color.b, 0.8);
+ type_color = get_color("accent_color", "Editor").linear_interpolate(text_color, 0.5);
+}
+
void EditorHelp::_unhandled_key_input(const Ref<InputEvent> &p_ev) {
if (!is_visible_in_tree())
@@ -559,9 +559,7 @@ void EditorHelp::_class_list_select(const String &p_select) {
void EditorHelp::_class_desc_select(const String &p_select) {
- //print_line("LINK: "+p_select);
if (p_select.begins_with("$")) { //enum
- //_goto_desc(p_select.substr(1,p_select.length()));
String select = p_select.substr(1, p_select.length());
String class_name;
if (select.find(".") != -1) {
@@ -572,7 +570,6 @@ void EditorHelp::_class_desc_select(const String &p_select) {
emit_signal("go_to_help", "class_enum:" + class_name + ":" + select);
return;
} else if (p_select.begins_with("#")) {
- //_goto_desc(p_select.substr(1,p_select.length()));
emit_signal("go_to_help", "class_name:" + p_select.substr(1, p_select.length()));
return;
} else if (p_select.begins_with("@")) {
@@ -599,7 +596,6 @@ void EditorHelp::_class_desc_select(const String &p_select) {
}
if (link.find(".") != -1) {
- //must go somewhere else
emit_signal("go_to_help", topic + ":" + link.get_slice(".", 0) + ":" + link.get_slice(".", 1));
} else {
@@ -654,18 +650,95 @@ void EditorHelp::_add_type(const String &p_type, const String &p_enum) {
class_desc->pop();
}
+void EditorHelp::_add_method(const DocData::MethodDoc &p_method, bool p_overview) {
+
+ method_line[p_method.name] = class_desc->get_line_count() - 2; //gets overridden if description
+
+ const bool is_vararg = p_method.qualifiers.find("vararg") != -1;
+
+ if (p_overview) {
+ class_desc->push_cell();
+ class_desc->push_align(RichTextLabel::ALIGN_RIGHT);
+ }
+
+ _add_type(p_method.return_type, p_method.return_enum);
+
+ if (p_overview) {
+ class_desc->pop(); //align
+ class_desc->pop(); //cell
+ class_desc->push_cell();
+ } else {
+ class_desc->add_text(" ");
+ }
+
+ if (p_overview && p_method.description != "") {
+ class_desc->push_meta("@method" + p_method.name);
+ }
+
+ class_desc->push_color(headline_color);
+ _add_text(p_method.name);
+ class_desc->pop();
+
+ if (p_overview && p_method.description != "") {
+ class_desc->pop(); //meta
+ }
+
+ class_desc->push_color(symbol_color);
+ class_desc->add_text(p_method.arguments.size() || is_vararg ? "( " : "(");
+ class_desc->pop();
+
+ for (int j = 0; j < p_method.arguments.size(); j++) {
+ class_desc->push_color(text_color);
+ if (j > 0)
+ class_desc->add_text(", ");
+ _add_type(p_method.arguments[j].type, p_method.arguments[j].enumeration);
+ class_desc->add_text(" ");
+ _add_text(p_method.arguments[j].name);
+ if (p_method.arguments[j].default_value != "") {
+
+ class_desc->push_color(symbol_color);
+ class_desc->add_text("=");
+ class_desc->pop();
+ _add_text(p_method.arguments[j].default_value);
+ }
+
+ class_desc->pop();
+ }
+
+ if (is_vararg) {
+ class_desc->push_color(text_color);
+ if (p_method.arguments.size())
+ class_desc->add_text(", ");
+ class_desc->push_color(symbol_color);
+ class_desc->add_text("...");
+ class_desc->pop();
+ class_desc->pop();
+ }
+
+ class_desc->push_color(symbol_color);
+ class_desc->add_text(p_method.arguments.size() || is_vararg ? " )" : ")");
+ class_desc->pop();
+ if (p_method.qualifiers != "") {
+
+ class_desc->push_color(qualifier_color);
+ class_desc->add_text(" ");
+ _add_text(p_method.qualifiers);
+ class_desc->pop();
+ }
+
+ if (p_overview)
+ class_desc->pop(); //cell
+}
+
Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
- //ERR_FAIL_COND(!doc->class_list.has(p_class));
if (!doc->class_list.has(p_class))
return ERR_DOES_NOT_EXIST;
- //if (tree_item_map.has(p_class)) {
select_locked = true;
- //}
class_desc->show();
- //tabs->set_current_tab(PAGE_CLASS_DESC);
+
description_line = 0;
if (p_class == edited_class)
@@ -677,17 +750,8 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
method_line.clear();
section_line.clear();
edited_class = p_class;
- //edited_class->show();
- // Colors
- const Color title_color = get_color("accent_color", "Editor");
- const Color text_color = get_color("default_color", "RichTextLabel");
- const Color headline_color = get_color("headline_color", "EditorHelp");
- const Color base_type_color = title_color.linear_interpolate(text_color, 0.5);
- const Color comment_color = Color(text_color.r, text_color.g, text_color.b, 0.6);
- const Color symbol_color = comment_color;
- const Color value_color = Color(text_color.r, text_color.g, text_color.b, 0.4);
- const Color qualifier_color = Color(text_color.r, text_color.g, text_color.b, 0.8);
+ _init_colors();
DocData::ClassDoc cd = doc->class_list[p_class]; //make a copy, so we can sort without worrying
@@ -781,7 +845,6 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
class_desc->pop();
class_desc->pop();
- //class_desc->add_newline();
class_desc->add_newline();
class_desc->push_color(text_color);
class_desc->push_font(doc_font);
@@ -806,7 +869,6 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
class_desc->add_text(TTR("Members:"));
class_desc->pop();
class_desc->pop();
- //class_desc->add_newline();
class_desc->push_indent(1);
class_desc->push_table(2);
@@ -885,85 +947,59 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
class_desc->pop();
class_desc->pop();
- //class_desc->add_newline();
- //class_desc->add_newline();
-
class_desc->push_indent(1);
class_desc->push_table(2);
class_desc->set_table_column_expand(1, 1);
- for (int i = 0; i < methods.size(); i++) {
-
- bool is_vararg = methods[i].qualifiers.find("vararg") != -1;
-
- method_line[methods[i].name] = class_desc->get_line_count() - 2; //gets overridden if description
-
- class_desc->push_cell();
- class_desc->push_align(RichTextLabel::ALIGN_RIGHT);
- class_desc->push_font(doc_code_font);
- _add_type(methods[i].return_type, methods[i].return_enum);
- //class_desc->add_text(" ");
- class_desc->pop(); //align
- class_desc->pop(); //font
- class_desc->pop(); //cell
+ bool any_previous = false;
+ for (int pass = 0; pass < 2; pass++) {
+ Vector<DocData::MethodDoc> m;
- class_desc->push_cell();
- class_desc->push_font(doc_code_font);
+ for (int i = 0; i < methods.size(); i++) {
+ const String &q = methods[i].qualifiers;
+ if ((pass == 0 && q.find("virtual") != -1) || (pass == 1 && q.find("virtual") == -1)) {
+ m.push_back(methods[i]);
+ }
+ }
- if (methods[i].description != "") {
- method_descr = true;
- class_desc->push_meta("@method" + methods[i].name);
+ if (any_previous && !m.empty()) {
+ class_desc->push_cell();
+ class_desc->pop(); //cell
+ class_desc->push_cell();
+ class_desc->pop(); //cell
+ any_previous = false;
}
- class_desc->push_color(headline_color);
- _add_text(methods[i].name);
- class_desc->pop();
- if (methods[i].description != "")
- class_desc->pop(); // pop meta
- class_desc->push_color(symbol_color);
- class_desc->add_text(methods[i].arguments.size() || is_vararg ? "( " : "(");
- class_desc->pop();
- for (int j = 0; j < methods[i].arguments.size(); j++) {
- class_desc->push_color(text_color);
- if (j > 0)
- class_desc->add_text(", ");
- _add_type(methods[i].arguments[j].type, methods[i].arguments[j].enumeration);
- class_desc->add_text(" ");
- _add_text(methods[i].arguments[j].name);
- if (methods[i].arguments[j].default_value != "") {
- class_desc->push_color(symbol_color);
- class_desc->add_text("=");
- class_desc->pop();
- _add_text(methods[i].arguments[j].default_value);
+ String group_prefix;
+ for (int i = 0; i < m.size(); i++) {
+ const String new_prefix = m[i].name.substr(0, 3);
+ bool is_new_group = false;
+
+ if (i < m.size() - 1 && new_prefix == m[i + 1].name.substr(0, 3) && new_prefix != group_prefix) {
+ is_new_group = i > 0;
+ group_prefix = new_prefix;
+ } else if (group_prefix != "" && new_prefix != group_prefix) {
+ is_new_group = true;
+ group_prefix = "";
}
- class_desc->pop();
- }
-
- if (is_vararg) {
- class_desc->push_color(text_color);
- if (methods[i].arguments.size())
- class_desc->add_text(", ");
- class_desc->push_color(symbol_color);
- class_desc->add_text("...");
- class_desc->pop();
- class_desc->pop();
- }
+ if (is_new_group && pass == 1) {
+ class_desc->push_cell();
+ class_desc->pop(); //cell
+ class_desc->push_cell();
+ class_desc->pop(); //cell
+ }
- class_desc->push_color(symbol_color);
- class_desc->add_text(methods[i].arguments.size() || is_vararg ? " )" : ")");
- class_desc->pop();
- if (methods[i].qualifiers != "") {
+ if (m[i].description != "") {
+ method_descr = true;
+ }
- class_desc->push_color(qualifier_color);
- class_desc->add_text(" ");
- _add_text(methods[i].qualifiers);
- class_desc->pop();
+ _add_method(m[i], true);
}
- class_desc->pop(); //monofont
- //class_desc->add_newline();
- class_desc->pop(); //cell
+
+ any_previous = !m.empty();
}
+
class_desc->pop(); //table
class_desc->pop();
class_desc->add_newline();
@@ -1036,7 +1072,6 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
class_desc->pop();
class_desc->add_newline();
- //class_desc->add_newline();
class_desc->push_indent(1);
@@ -1044,8 +1079,6 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
signal_line[cd.signals[i].name] = class_desc->get_line_count() - 2; //gets overridden if description
class_desc->push_font(doc_code_font); // monofont
- //_add_type("void");
- //class_desc->add_text(" ");
class_desc->push_color(headline_color);
_add_text(cd.signals[i].name);
class_desc->pop();
@@ -1079,7 +1112,6 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
class_desc->push_font(doc_font);
class_desc->push_color(comment_color);
class_desc->push_indent(1);
- // class_desc->add_text(" ");
_add_text(cd.signals[i].description);
class_desc->pop(); // indent
class_desc->pop();
@@ -1123,7 +1155,6 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
class_desc->push_indent(1);
class_desc->add_newline();
- //class_desc->add_newline();
for (Map<String, Vector<DocData::ConstantDoc> >::Element *E = enums.front(); E; E = E->next()) {
@@ -1198,7 +1229,6 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
class_desc->push_indent(1);
class_desc->add_newline();
- //class_desc->add_newline();
for (int i = 0; i < constants.size(); i++) {
@@ -1217,7 +1247,6 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
if (constants[i].description != "") {
class_desc->push_font(doc_font);
class_desc->push_indent(1);
- //class_desc->add_text(" ");
class_desc->push_color(comment_color);
_add_text(constants[i].description);
class_desc->pop();
@@ -1291,8 +1320,6 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
class_desc->pop(); // font
class_desc->pop(); // cell
- //class_desc->add_text(" ");
-
if (cd.properties[i].setter != "") {
class_desc->push_cell();
@@ -1366,60 +1393,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
for (int i = 0; i < methods.size(); i++) {
- bool is_vararg = methods[i].qualifiers.find("vararg") != -1;
-
- method_line[methods[i].name] = class_desc->get_line_count() - 2;
-
- class_desc->push_font(doc_code_font);
- _add_type(methods[i].return_type, methods[i].return_enum);
-
- class_desc->add_text(" ");
- class_desc->push_color(headline_color);
- _add_text(methods[i].name);
- class_desc->pop();
- class_desc->push_color(symbol_color);
- class_desc->add_text(methods[i].arguments.size() || is_vararg ? "( " : "(");
- class_desc->pop();
- for (int j = 0; j < methods[i].arguments.size(); j++) {
- class_desc->push_color(text_color);
- if (j > 0)
- class_desc->add_text(", ");
- _add_type(methods[i].arguments[j].type, methods[i].arguments[j].enumeration);
- class_desc->add_text(" ");
- _add_text(methods[i].arguments[j].name);
- if (methods[i].arguments[j].default_value != "") {
-
- class_desc->push_color(symbol_color);
- class_desc->add_text("=");
- class_desc->pop();
- _add_text(methods[i].arguments[j].default_value);
- }
-
- class_desc->pop();
- }
-
- if (is_vararg) {
- class_desc->push_color(text_color);
- if (methods[i].arguments.size())
- class_desc->add_text(", ");
- class_desc->push_color(symbol_color);
- class_desc->add_text("...");
- class_desc->pop();
- class_desc->pop();
- }
-
- class_desc->push_color(symbol_color);
- class_desc->add_text(methods[i].arguments.size() || is_vararg ? " )" : ")");
- class_desc->pop();
- if (methods[i].qualifiers != "") {
-
- class_desc->push_color(qualifier_color);
- class_desc->add_text(" ");
- _add_text(methods[i].qualifiers);
- class_desc->pop();
- }
-
- class_desc->pop();
+ _add_method(methods[i], false);
class_desc->add_newline();
class_desc->push_color(text_color);
@@ -1529,7 +1503,7 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) {
}
if (brk_pos == bbcode.length())
- break; //nothing else o add
+ break; //nothing else to add
int brk_end = bbcode.find("]", brk_pos + 1);
@@ -1725,10 +1699,6 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) {
pos = brk_pos + 1;
}
}
-
- /*p_rt->pop();
- p_rt->pop();
- p_rt->pop();*/
}
void EditorHelp::_add_text(const String &p_bbcode) {
@@ -1753,8 +1723,7 @@ void EditorHelp::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_READY: {
- //forward->set_icon(get_icon("Forward","EditorIcons"));
- //back->set_icon(get_icon("Back","EditorIcons"));
+
_update_doc();
} break;
@@ -1827,7 +1796,6 @@ void EditorHelp::_bind_methods() {
ClassDB::bind_method("_class_list_select", &EditorHelp::_class_list_select);
ClassDB::bind_method("_class_desc_select", &EditorHelp::_class_desc_select);
ClassDB::bind_method("_class_desc_input", &EditorHelp::_class_desc_input);
- //ClassDB::bind_method("_button_pressed",&EditorHelp::_button_pressed);
ClassDB::bind_method("_request_help", &EditorHelp::_request_help);
ClassDB::bind_method("_unhandled_key_input", &EditorHelp::_unhandled_key_input);
ClassDB::bind_method("_search", &EditorHelp::_search);
@@ -1839,21 +1807,16 @@ void EditorHelp::_bind_methods() {
EditorHelp::EditorHelp() {
- VBoxContainer *vbc = this;
+ set_custom_minimum_size(Size2(150 * EDSCALE, 0));
EDITOR_DEF("text_editor/help/sort_functions_alphabetically", true);
- //class_list->connect("meta_clicked",this,"_class_list_select");
- //class_list->set_selection_enabled(true);
-
- {
- class_desc = memnew(RichTextLabel);
- vbc->add_child(class_desc);
- class_desc->set_v_size_flags(SIZE_EXPAND_FILL);
- class_desc->add_color_override("selection_color", get_color("text_editor/theme/selection_color", "Editor"));
- class_desc->connect("meta_clicked", this, "_class_desc_select");
- class_desc->connect("gui_input", this, "_class_desc_input");
- }
+ class_desc = memnew(RichTextLabel);
+ add_child(class_desc);
+ class_desc->set_v_size_flags(SIZE_EXPAND_FILL);
+ class_desc->add_color_override("selection_color", get_color("text_editor/theme/selection_color", "Editor"));
+ class_desc->connect("meta_clicked", this, "_class_desc_select");
+ class_desc->connect("gui_input", this, "_class_desc_input");
class_desc->set_selection_enabled(true);
@@ -1873,12 +1836,6 @@ EditorHelp::EditorHelp() {
search_dialog->get_ok()->set_text(TTR("Find"));
search_dialog->connect("confirmed", this, "_search_cbk");
search_dialog->set_hide_on_ok(false);
-
- /*class_search = memnew( EditorHelpSearch(editor) );
- editor->get_gui_base()->add_child(class_search);
- class_search->connect("go_to_help",this,"_help_callback");*/
-
- //prev_search_page=-1;
}
EditorHelp::~EditorHelp() {
@@ -1896,9 +1853,9 @@ void EditorHelpBit::_go_to_help(String p_what) {
void EditorHelpBit::_meta_clicked(String p_select) {
print_line("got meta " + p_select);
- //print_line("LINK: "+p_select);
+
if (p_select.begins_with("$")) { //enum
- //_goto_desc(p_select.substr(1,p_select.length()));
+
String select = p_select.substr(1, p_select.length());
String class_name;
if (select.find(".") != -1) {
@@ -1909,24 +1866,15 @@ void EditorHelpBit::_meta_clicked(String p_select) {
_go_to_help("class_enum:" + class_name + ":" + select);
return;
} else if (p_select.begins_with("#")) {
- //_goto_desc(p_select.substr(1,p_select.length()));
+
_go_to_help("class_name:" + p_select.substr(1, p_select.length()));
return;
} else if (p_select.begins_with("@")) {
String m = p_select.substr(1, p_select.length());
- if (m.find(".") != -1) {
- //must go somewhere else
-
- _go_to_help("class_method:" + m.get_slice(".", 0) + ":" + m.get_slice(".", 0));
- } else {
- /*
- if (!method_line.has(m))
- return;
- class_desc->scroll_to_line(method_line[m]);
- */
- }
+ if (m.find(".") != -1)
+ _go_to_help("class_method:" + m.get_slice(".", 0) + ":" + m.get_slice(".", 0)); //must go somewhere else
}
}
diff --git a/editor/editor_help.h b/editor/editor_help.h
index a224c7f8ee..96a3309ca3 100644
--- a/editor/editor_help.h
+++ b/editor/editor_help.h
@@ -139,6 +139,17 @@ class EditorHelp : public VBoxContainer {
String base_path;
+ Color title_color;
+ Color text_color;
+ Color headline_color;
+ Color base_type_color;
+ Color type_color;
+ Color comment_color;
+ Color symbol_color;
+ Color value_color;
+ Color qualifier_color;
+
+ void _init_colors();
void _help_callback(const String &p_topic);
void _add_text(const String &p_bbcode);
@@ -146,6 +157,7 @@ class EditorHelp : public VBoxContainer {
//void _button_pressed(int p_idx);
void _add_type(const String &p_type, const String &p_enum = String());
+ void _add_method(const DocData::MethodDoc &p_method, bool p_overview = true);
void _class_list_select(const String &p_select);
void _class_desc_select(const String &p_select);
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index cb8407386d..24a737e4af 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -115,7 +115,7 @@ EditorNode *EditorNode::singleton = NULL;
void EditorNode::_update_scene_tabs() {
- bool show_rb = EditorSettings::get_singleton()->get("interface/editor/show_script_in_scene_tabs");
+ bool show_rb = EditorSettings::get_singleton()->get("interface/scene_tabs/show_script_button");
scene_tabs->clear_tabs();
Ref<Texture> script_icon = gui_base->get_icon("Script", "EditorIcons");
@@ -305,7 +305,7 @@ void EditorNode::_notification(int p_what) {
}
if (p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) {
- scene_tabs->set_tab_close_display_policy((bool(EDITOR_DEF("interface/editor/always_show_close_button_in_scene_tabs", false)) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY));
+ scene_tabs->set_tab_close_display_policy((bool(EDITOR_DEF("interface/scene_tabs/always_show_close_button", false)) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY));
Ref<Theme> theme = create_editor_theme(theme_base->get_theme());
theme_base->set_theme(theme);
@@ -444,15 +444,7 @@ void EditorNode::_fs_changed() {
continue;
if (E->get()->get_import_path() != String()) {
-//this is an imported resource, will be reloaded if reimported via the _resources_reimported() callback
-//imported resource
-#if 0
- uint64_t mt = FileAccess::get_modified_time(E->get()->get_import_path());
-
- if (mt != E->get()->get_import_last_modified_time()) {
- changed.push_back(E->get());
- }
-#endif
+ //this is an imported resource, will be reloaded if reimported via the _resources_reimported() callback
continue;
}
@@ -5002,7 +4994,7 @@ EditorNode::EditorNode() {
scene_tabs->add_style_override("tab_bg", gui_base->get_stylebox("SceneTabBG", "EditorStyles"));
scene_tabs->add_tab("unsaved");
scene_tabs->set_tab_align(Tabs::ALIGN_LEFT);
- scene_tabs->set_tab_close_display_policy((bool(EDITOR_DEF("interface/editor/always_show_close_button_in_scene_tabs", false)) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY));
+ scene_tabs->set_tab_close_display_policy((bool(EDITOR_DEF("interface/scene_tabs/always_show_close_button", false)) ? Tabs::CLOSE_BUTTON_SHOW_ALWAYS : Tabs::CLOSE_BUTTON_SHOW_ACTIVE_ONLY));
scene_tabs->set_min_width(int(EDITOR_DEF("interface/scene_tabs/minimum_width", 50)) * EDSCALE);
scene_tabs->connect("tab_changed", this, "_scene_tab_changed");
scene_tabs->connect("right_button_pressed", this, "_scene_tab_script_edited");
@@ -5041,7 +5033,7 @@ EditorNode::EditorNode() {
scene_root_parent->set_v_size_flags(Control::SIZE_EXPAND_FILL);
scene_root = memnew(Viewport);
- scene_root->set_usage(Viewport::USAGE_2D);
+ //scene_root->set_usage(Viewport::USAGE_2D); canvas BG mode prevents usage of this as 2D
scene_root->set_disable_3d(true);
VisualServer::get_singleton()->viewport_set_hide_scenario(scene_root->get_viewport_rid(), true);
diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp
index d199b27b83..3bd592e934 100644
--- a/editor/editor_settings.cpp
+++ b/editor/editor_settings.cpp
@@ -258,7 +258,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
_initial_set("interface/editor/hidpi_mode", 0);
hints["interface/editor/hidpi_mode"] = PropertyInfo(Variant::INT, "interface/editor/hidpi_mode", PROPERTY_HINT_ENUM, "Auto,VeryLoDPI,LoDPI,MidDPI,HiDPI", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED);
- _initial_set("interface/editor/show_script_in_scene_tabs", false);
+ _initial_set("interface/scene_tabs/show_script_button", false);
_initial_set("interface/editor/font_size", 14);
hints["interface/editor/font_size"] = PropertyInfo(Variant::INT, "interface/editor/font_size", PROPERTY_HINT_RANGE, "10,40,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED);
_initial_set("interface/editor/source_font_size", 14);
@@ -307,7 +307,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
hints["filesystem/directories/default_project_path"] = PropertyInfo(Variant::STRING, "filesystem/directories/default_project_path", PROPERTY_HINT_GLOBAL_DIR);
_initial_set("filesystem/directories/default_project_export_path", "");
hints["filesystem/directories/default_project_export_path"] = PropertyInfo(Variant::STRING, "filesystem/directories/default_project_export_path", PROPERTY_HINT_GLOBAL_DIR);
- _initial_set("interface/editor/show_script_in_scene_tabs", false);
+ _initial_set("interface/scene_tabs/show_script_button", false);
_initial_set("text_editor/theme/color_theme", "Adaptive");
hints["text_editor/theme/color_theme"] = PropertyInfo(Variant::STRING, "text_editor/theme/color_theme", PROPERTY_HINT_ENUM, "Adaptive,Default");
@@ -351,6 +351,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
_initial_set("text_editor/cursor/caret_blink", true);
_initial_set("text_editor/cursor/caret_blink_speed", 0.65);
hints["text_editor/cursor/caret_blink_speed"] = PropertyInfo(Variant::REAL, "text_editor/cursor/caret_blink_speed", PROPERTY_HINT_RANGE, "0.1, 10, 0.1");
+ _initial_set("text_editor/cursor/right_click_moves_caret", true);
_initial_set("text_editor/theme/font", "");
hints["text_editor/theme/font"] = PropertyInfo(Variant::STRING, "text_editor/theme/font", PROPERTY_HINT_GLOBAL_FILE, "*.font,*.tres,*.res");
diff --git a/editor/editor_sub_scene.cpp b/editor/editor_sub_scene.cpp
index b81dfd3f46..fad9346b38 100644
--- a/editor/editor_sub_scene.cpp
+++ b/editor/editor_sub_scene.cpp
@@ -96,14 +96,54 @@ void EditorSubScene::_fill_tree(Node *p_node, TreeItem *p_parent) {
}
}
-void EditorSubScene::ok_pressed() {
+void EditorSubScene::_selected_changed() {
+ selection.clear();
+ is_root = false;
+}
- TreeItem *s = tree->get_selected();
- if (!s)
- return;
- Node *selnode = s->get_metadata(0);
- if (!selnode)
+void EditorSubScene::_item_multi_selected(Object *p_object, int p_cell, bool p_selected) {
+ if (!is_root) {
+ TreeItem *item = Object::cast_to<TreeItem>(p_object);
+ ERR_FAIL_COND(!item);
+
+ Node *n = item->get_metadata(0);
+
+ if (!n)
+ return;
+ if (p_selected) {
+ if (n == scene) {
+ is_root = true;
+ selection.clear();
+ }
+ selection.push_back(n);
+ }
+ }
+}
+
+void EditorSubScene::_remove_selection_child(Node *n) {
+ if (n->get_child_count() > 0) {
+ for (int i = 0; i < n->get_child_count(); i++) {
+ Node *c = n->get_child(i);
+ List<Node *>::Element *E = selection.find(c);
+ if (E) {
+ selection.move_to_back(E);
+ selection.pop_back();
+ }
+ if (c->get_child_count() > 0) {
+ _remove_selection_child(c);
+ }
+ }
+ }
+}
+
+void EditorSubScene::ok_pressed() {
+ if (selection.size() <= 0) {
return;
+ }
+ for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
+ Node *c = E->get();
+ _remove_selection_child(c);
+ }
emit_signal("subscene_selected");
hide();
clear();
@@ -127,37 +167,34 @@ void EditorSubScene::_reown(Node *p_node, List<Node *> *p_to_reown) {
}
void EditorSubScene::move(Node *p_new_parent, Node *p_new_owner) {
-
if (!scene) {
return;
}
- TreeItem *s = tree->get_selected();
- if (!s) {
- return;
- }
- Node *selnode = s->get_metadata(0);
- if (!selnode) {
+ if (selection.size() <= 0) {
return;
}
- List<Node *> to_reown;
- _reown(selnode, &to_reown);
-
- if (selnode != scene) {
- selnode->get_parent()->remove_child(selnode);
- }
+ for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
+ Node *selnode = E->get();
+ if (!selnode) {
+ return;
+ }
+ List<Node *> to_reown;
+ _reown(selnode, &to_reown);
+ if (selnode != scene) {
+ selnode->get_parent()->remove_child(selnode);
+ }
- p_new_parent->add_child(selnode);
- for (List<Node *>::Element *E = to_reown.front(); E; E = E->next()) {
- E->get()->set_owner(p_new_owner);
+ p_new_parent->add_child(selnode);
+ for (List<Node *>::Element *E = to_reown.front(); E; E = E->next()) {
+ E->get()->set_owner(p_new_owner);
+ }
}
-
- if (selnode != scene) {
+ if (!is_root) {
memdelete(scene);
}
scene = NULL;
-
//return selnode;
}
@@ -172,12 +209,15 @@ void EditorSubScene::_bind_methods() {
ClassDB::bind_method(D_METHOD("_path_selected"), &EditorSubScene::_path_selected);
ClassDB::bind_method(D_METHOD("_path_changed"), &EditorSubScene::_path_changed);
ClassDB::bind_method(D_METHOD("_path_browse"), &EditorSubScene::_path_browse);
+ ClassDB::bind_method(D_METHOD("_item_multi_selected"), &EditorSubScene::_item_multi_selected);
+ ClassDB::bind_method(D_METHOD("_selected_changed"), &EditorSubScene::_selected_changed);
ADD_SIGNAL(MethodInfo("subscene_selected"));
}
EditorSubScene::EditorSubScene() {
scene = NULL;
+ is_root = false;
set_title(TTR("Select Node(s) to Import"));
set_hide_on_ok(false);
@@ -200,6 +240,11 @@ EditorSubScene::EditorSubScene() {
tree = memnew(Tree);
tree->set_v_size_flags(SIZE_EXPAND_FILL);
vb->add_margin_child(TTR("Import From Node:"), tree, true);
+ tree->set_select_mode(Tree::SELECT_MULTI);
+ tree->connect("multi_selected", this, "_item_multi_selected");
+ //tree->connect("nothing_selected", this, "_deselect_items");
+ tree->connect("cell_selected", this, "_selected_changed");
+
tree->connect("item_activated", this, "_ok", make_binds(), CONNECT_DEFERRED);
file_dialog = memnew(EditorFileDialog);
diff --git a/editor/editor_sub_scene.h b/editor/editor_sub_scene.h
index 13ce19bbb2..db9d91018a 100644
--- a/editor/editor_sub_scene.h
+++ b/editor/editor_sub_scene.h
@@ -38,13 +38,18 @@ class EditorSubScene : public ConfirmationDialog {
GDCLASS(EditorSubScene, ConfirmationDialog);
+ List<Node *> selection;
LineEdit *path;
Tree *tree;
Node *scene;
+ bool is_root;
EditorFileDialog *file_dialog;
void _fill_tree(Node *p_node, TreeItem *p_parent);
+ void _selected_changed();
+ void _item_multi_selected(Object *p_object, int p_cell, bool p_selected);
+ void _remove_selection_child(Node *c);
void _reown(Node *p_node, List<Node *> *p_to_reown);
void ok_pressed();
diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp
index 152eda7d91..5610baa775 100644
--- a/editor/editor_themes.cpp
+++ b/editor/editor_themes.cpp
@@ -972,6 +972,12 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_stylebox("commentfocus", "GraphNode", graphsbcommentselected);
theme->set_stylebox("breakpoint", "GraphNode", graphsbbreakpoint);
theme->set_stylebox("position", "GraphNode", graphsbposition);
+
+ Color default_node_color = Color(mv2, mv2, mv2);
+ theme->set_color("title_color", "GraphNode", default_node_color);
+ default_node_color.a = 0.7;
+ theme->set_color("close_color", "GraphNode", default_node_color);
+
theme->set_constant("port_offset", "GraphNode", 14 * EDSCALE);
theme->set_constant("title_h_offset", "GraphNode", -16 * EDSCALE);
theme->set_constant("close_h_offset", "GraphNode", 20 * EDSCALE);
@@ -999,6 +1005,12 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_icon("bg", "ColorPickerButton", theme->get_icon("GuiMiniCheckerboard", "EditorIcons"));
+ // Information on 3D viewport
+ Ref<StyleBoxFlat> style_info_3d_viewport = style_default->duplicate();
+ style_info_3d_viewport->set_bg_color(style_info_3d_viewport->get_bg_color() * Color(1, 1, 1, 0.5));
+ style_info_3d_viewport->set_border_width_all(0);
+ theme->set_stylebox("Information3dViewport", "EditorStyles", style_info_3d_viewport);
+
// adaptive script theme constants
// for comments and elements with lower relevance
const Color dim_color = Color(font_color.r, font_color.g, font_color.b, 0.5);
diff --git a/editor/export_template_manager.cpp b/editor/export_template_manager.cpp
index cdb7256329..a72769b222 100644
--- a/editor/export_template_manager.cpp
+++ b/editor/export_template_manager.cpp
@@ -176,7 +176,7 @@ void ExportTemplateManager::_uninstall_template_confirm() {
_update_template_list();
}
-void ExportTemplateManager::_install_from_file(const String &p_file) {
+void ExportTemplateManager::_install_from_file(const String &p_file, bool p_use_progress) {
FileAccess *fa = NULL;
zlib_filefunc_def io = zipio_create_io_from_file(&fa);
@@ -259,7 +259,10 @@ void ExportTemplateManager::_install_from_file(const String &p_file) {
ret = unzGoToFirstFile(pkg);
- EditorProgress p("ltask", TTR("Extracting Export Templates"), fc);
+ EditorProgress *p = NULL;
+ if (p_use_progress) {
+ p = memnew(EditorProgress("ltask", TTR("Extracting Export Templates"), fc));
+ }
fc = 0;
@@ -270,7 +273,7 @@ void ExportTemplateManager::_install_from_file(const String &p_file) {
char fname[16384];
unzGetCurrentFileInfo(pkg, &info, fname, 16384, NULL, 0, NULL, 0);
- String file = fname;
+ String file = String(fname).get_file();
Vector<uint8_t> data;
data.resize(info.uncompressed_size);
@@ -280,20 +283,18 @@ void ExportTemplateManager::_install_from_file(const String &p_file) {
unzReadCurrentFile(pkg, data.ptrw(), data.size());
unzCloseCurrentFile(pkg);
- print_line(fname);
- /*
- for(int i=0;i<512;i++) {
- print_line(itos(data[i]));
+ if (p) {
+ p->step(TTR("Importing:") + " " + file, fc);
}
- */
-
- file = file.get_file();
-
- p.step(TTR("Importing:") + " " + file, fc);
FileAccess *f = FileAccess::open(template_path.plus_file(file), FileAccess::WRITE);
- ERR_CONTINUE(!f);
+ if (!f) {
+ ret = unzGoToNextFile(pkg);
+ fc++;
+ ERR_CONTINUE(!f);
+ }
+
f->store_buffer(data.ptr(), data.size());
memdelete(f);
@@ -302,6 +303,10 @@ void ExportTemplateManager::_install_from_file(const String &p_file) {
fc++;
}
+ if (p) {
+ memdelete(p);
+ }
+
unzClose(pkg);
_update_template_list();
@@ -405,7 +410,7 @@ void ExportTemplateManager::_http_download_templates_completed(int p_status, int
memdelete(f);
template_list_state->set_text(TTR("Download Complete."));
template_downloader->hide();
- _install_from_file(path);
+ _install_from_file(path, false);
}
}
} break;
@@ -547,7 +552,7 @@ ExportTemplateManager::ExportTemplateManager() {
template_open->add_filter("*.tpz ; Godot Export Templates");
template_open->set_access(FileDialog::ACCESS_FILESYSTEM);
template_open->set_mode(FileDialog::MODE_OPEN_FILE);
- template_open->connect("file_selected", this, "_install_from_file");
+ template_open->connect("file_selected", this, "_install_from_file", varray(true));
add_child(template_open);
set_title(TTR("Export Template Manager"));
diff --git a/editor/export_template_manager.h b/editor/export_template_manager.h
index 644c6b466b..36093da66a 100644
--- a/editor/export_template_manager.h
+++ b/editor/export_template_manager.h
@@ -69,7 +69,7 @@ class ExportTemplateManager : public ConfirmationDialog {
void _uninstall_template_confirm();
virtual void ok_pressed();
- void _install_from_file(const String &p_file);
+ void _install_from_file(const String &p_file, bool p_use_progress = true);
void _http_download_mirror_completed(int p_status, int p_code, const PoolStringArray &headers, const PoolByteArray &p_data);
void _http_download_templates_completed(int p_status, int p_code, const PoolStringArray &headers, const PoolByteArray &p_data);
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp
index 9ece36ea80..dce5a10d67 100644
--- a/editor/filesystem_dock.cpp
+++ b/editor/filesystem_dock.cpp
@@ -129,6 +129,7 @@ void FileSystemDock::_update_tree(bool keep_collapse_state) {
}
_create_tree(root, EditorFileSystem::get_singleton()->get_filesystem(), uncollapsed_paths);
+ tree->ensure_cursor_is_visible();
updating_tree = false;
}
@@ -146,7 +147,7 @@ void FileSystemDock::_notification(int p_what) {
if (low_height_mode) {
- file_list_vb->hide();
+ tree->hide();
tree->set_v_size_flags(SIZE_EXPAND_FILL);
button_tree->show();
} else {
@@ -157,6 +158,7 @@ void FileSystemDock::_notification(int p_what) {
button_favorite->show();
_update_tree(true);
}
+ tree->ensure_cursor_is_visible();
if (!file_list_vb->is_visible()) {
file_list_vb->show();
@@ -344,11 +346,7 @@ void FileSystemDock::navigate_to_path(const String &p_path) {
_update_tree(true);
_update_files(false);
} else {
- if (file_name.empty()) {
- _go_to_tree();
- } else {
- _go_to_file_list();
- }
+ _go_to_file_list();
}
if (!file_name.empty()) {
@@ -590,10 +588,7 @@ void FileSystemDock::_select_file(int p_idx) {
if (fpath != "res://") {
fpath = fpath.substr(0, fpath.length() - 1);
}
- path = fpath;
- _update_files(false);
- current_path->set_text(path);
- _push_to_history();
+ navigate_to_path(fpath);
} else {
if (ResourceLoader::get_resource_type(fpath) == "PackedScene") {
editor->open_request(fpath);
@@ -839,6 +834,58 @@ void FileSystemDock::_try_duplicate_item(const FileOrFolder &p_item, const Strin
memdelete(da);
}
+void FileSystemDock::_update_resource_paths_after_move(const Map<String, String> &p_renames) const {
+
+ //Rename all resources loaded, be it subresources or actual resources
+ List<Ref<Resource> > cached;
+ ResourceCache::get_cached_resources(&cached);
+
+ for (List<Ref<Resource> >::Element *E = cached.front(); E; E = E->next()) {
+
+ Ref<Resource> r = E->get();
+
+ String base_path = r->get_path();
+ String extra_path;
+ int sep_pos = r->get_path().find("::");
+ if (sep_pos >= 0) {
+ extra_path = base_path.substr(sep_pos, base_path.length());
+ base_path = base_path.substr(0, sep_pos);
+ }
+
+ if (p_renames.has(base_path)) {
+ base_path = p_renames[base_path];
+ }
+
+ r->set_path(base_path + extra_path);
+ }
+
+ for (int i = 0; i < EditorNode::get_editor_data().get_edited_scene_count(); i++) {
+
+ String path;
+ if (i == EditorNode::get_editor_data().get_edited_scene()) {
+ if (!get_tree()->get_edited_scene_root())
+ continue;
+
+ path = get_tree()->get_edited_scene_root()->get_filename();
+ } else {
+
+ path = EditorNode::get_editor_data().get_scene_path(i);
+ }
+
+ if (p_renames.has(path)) {
+ path = p_renames[path];
+ }
+
+ if (i == EditorNode::get_editor_data().get_edited_scene()) {
+
+ get_tree()->get_edited_scene_root()->set_filename(path);
+ } else {
+
+ EditorNode::get_editor_data().set_scene_path(i, path);
+ }
+ }
+}
+
void FileSystemDock::_update_dependencies_after_move(const Map<String, String> &p_renames) const {
//The following code assumes that the following holds:
// 1) EditorFileSystem contains the old paths/folder structure from before the rename/move.
@@ -915,6 +962,7 @@ void FileSystemDock::_rename_operation_confirm() {
Map<String, String> renames;
_try_move_item(to_rename, new_path, renames);
_update_dependencies_after_move(renames);
+ _update_resource_paths_after_move(renames);
//Rescan everything
print_line("call rescan!");
@@ -964,6 +1012,8 @@ void FileSystemDock::_move_operation_confirm(const String &p_to_path) {
}
_update_dependencies_after_move(renames);
+ _update_resource_paths_after_move(renames);
+
print_line("call rescan!");
_rescan();
}
@@ -1219,6 +1269,9 @@ void FileSystemDock::_go_to_file_list() {
tree->hide();
file_list_vb->show();
button_favorite->hide();
+ } else {
+ bool collapsed = tree->get_selected()->is_collapsed();
+ tree->get_selected()->set_collapsed(!collapsed);
}
//file_options->show();
diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h
index bc8d835ba1..65a71b86e0 100644
--- a/editor/filesystem_dock.h
+++ b/editor/filesystem_dock.h
@@ -178,6 +178,7 @@ private:
void _try_move_item(const FileOrFolder &p_item, const String &p_new_path, Map<String, String> &p_renames) const;
void _try_duplicate_item(const FileOrFolder &p_item, const String &p_new_path) const;
void _update_dependencies_after_move(const Map<String, String> &p_renames) const;
+ void _update_resource_paths_after_move(const Map<String, String> &p_renames) const;
void _make_dir_confirm();
void _rename_operation_confirm();
diff --git a/editor/icons/SCsub b/editor/icons/SCsub
index e28c229a38..0e4a4796ec 100644
--- a/editor/icons/SCsub
+++ b/editor/icons/SCsub
@@ -49,6 +49,9 @@ def make_editor_icons_action(target, source, env):
fname = str(f)
icon_name = os.path.basename(fname)[5:-4].title().replace("_", "")
+ # some special cases
+ if icon_name in ['Int', 'Bool', 'Float']:
+ icon_name = icon_name.lower()
if icon_name.endswith("MediumThumb"): # dont know a better way to handle this
thumb_medium_indices.append(str(index))
if icon_name.endswith("BigThumb"): # dont know a better way to handle this
diff --git a/editor/icons/icon_GUI_visibility_hidden.svg b/editor/icons/icon_GUI_visibility_hidden.svg
index 61131c77c8..7b7f3c8031 100644
--- a/editor/icons/icon_GUI_visibility_hidden.svg
+++ b/editor/icons/icon_GUI_visibility_hidden.svg
@@ -1,3 +1,3 @@
<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
-<path d="m7.9998 2c-2.5567 0-5.7907 1.9477-6.9551 5.7051a1.0001 1.0001 0 0 0 -0.00586 0.5703c1.1244 3.9354 4.4609 5.7246 6.9609 5.7246s5.8365-1.7892 6.9609-5.7246a1.0001 1.0001 0 0 0 0 -0.5527c-1.1003-3.7876-4.4066-5.7227-6.9609-5.7227zm0 2a4 4 0 0 1 4 4 4 4 0 0 1 -4 4 4 4 0 0 1 -4 -4 4 4 0 0 1 4 -4zm0 2a2 2 0 0 0 -2 2 2 2 0 0 0 2 2 2 2 0 0 0 2 -2 2 2 0 0 0 -2 -2z" color="#000000" color-rendering="auto" fill="#e0e0e0" fill-opacity=".39216" fill-rule="evenodd" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="isolation:auto;mix-blend-mode:normal;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-transform:none;white-space:normal"/>
+<path d="m2.9609 7.7266-1.9219 0.54883c0.31999 1.12 0.8236 2.0593 1.4316 2.8398l-0.83398 0.83398 1.4141 1.4141 0.84375-0.84375c0.98585 0.74762 2.0766 1.2067 3.1055 1.3867v1.0938h2v-1.0938c1.0288-0.17998 2.1196-0.6391 3.1055-1.3867l0.84375 0.84375 1.4141-1.4141-0.83398-0.83398c0.60804-0.78055 1.1117-1.7199 1.4316-2.8398l-1.9219-0.54883c-0.8756 3.0646-3.5391 4.2734-5.0391 4.2734s-4.1635-1.2088-5.0391-4.2734z" color="#000000" color-rendering="auto" dominant-baseline="auto" fill="#e0e0e0" fill-opacity=".99608" fill-rule="evenodd" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/>
</svg>
diff --git a/editor/icons/icon_mini_aabb.svg b/editor/icons/icon_a_a_b_b.svg
index 1af05f9b68..1af05f9b68 100644
--- a/editor/icons/icon_mini_aabb.svg
+++ b/editor/icons/icon_a_a_b_b.svg
diff --git a/editor/icons/icon_mini_array.svg b/editor/icons/icon_array.svg
index 4a279bf87b..4a279bf87b 100644
--- a/editor/icons/icon_mini_array.svg
+++ b/editor/icons/icon_array.svg
diff --git a/editor/icons/icon_basis.svg b/editor/icons/icon_basis.svg
new file mode 100644
index 0000000000..e9bee04f56
--- /dev/null
+++ b/editor/icons/icon_basis.svg
@@ -0,0 +1,4 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m0 2v8h2a3 3 0 0 0 3 -3 3 3 0 0 0 -3 -3v-2zm10 0v2h2v-2zm-3 2a2 2 0 0 0 -1.7324 1 2 2 0 0 0 0 2 2 2 0 0 0 1.7324 1h-2v2h2a2 2 0 0 0 1.7324 -1 2 2 0 0 0 0 -2 2 2 0 0 0 -1.7324 -1h2v-2zm7 0a2 2 0 0 0 -1.7324 1 2 2 0 0 0 0 2 2 2 0 0 0 1.7324 1h-2v-2h-2v4h4a2 2 0 0 0 1.7324 -1 2 2 0 0 0 0 -2 2 2 0 0 0 -1.7324 -1h2v-2zm-12 2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1z" fill="#e3ec69"/>
+<path d="m10 2v2h2v-2zm0 4v4h2v-4z" fill="#fff" fill-opacity=".39216"/>
+</svg>
diff --git a/editor/icons/icon_bool.svg b/editor/icons/icon_bool.svg
new file mode 100644
index 0000000000..c4c919dfca
--- /dev/null
+++ b/editor/icons/icon_bool.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m0 2v8h2a3 3 0 0 0 2.5 -1.3457 3 3 0 0 0 2.5 1.3457 3 3 0 0 0 2 -0.76758 3 3 0 0 0 2 0.76758 3 3 0 0 0 2.5 -1.3457 3 3 0 0 0 2.5 1.3457v-2a1 1 0 0 1 -1 -1v-5h-2v2.7695a3 3 0 0 0 -2 -0.76953 3 3 0 0 0 -2 0.76758 3 3 0 0 0 -2 -0.76758 3 3 0 0 0 -2.5 1.3457 3 3 0 0 0 -2.5 -1.3457v-2zm2 4a1 1 0 0 1 1 1 1 1 0 0 1 -1 1zm5 0a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1zm4 0a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1z" fill="#8da6f0"/>
+</svg>
diff --git a/editor/icons/icon_color.svg b/editor/icons/icon_color.svg
new file mode 100644
index 0000000000..52c7890e60
--- /dev/null
+++ b/editor/icons/icon_color.svg
@@ -0,0 +1,7 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<g>
+<path d="m4 4a3 3 0 0 0 -3 3 3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1h1v-2z" fill="#ff8484"/>
+<path d="m14 4a3 3 0 0 0 -3 3v3h2v-3a1 1 0 0 1 1 -1h1v-2z" fill="#84c2ff"/>
+<path d="m6 2v5a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1v-5z" fill="#84ffb1"/>
+</g>
+</svg>
diff --git a/editor/icons/icon_dictionary.svg b/editor/icons/icon_dictionary.svg
new file mode 100644
index 0000000000..b0146bb5d3
--- /dev/null
+++ b/editor/icons/icon_dictionary.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m3 2v2a3 3 0 0 0 -3 3 3 3 0 0 0 3 3h2v-8h-2zm3 0v2h2v-2h-2zm7 0v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-1h1v-2h-1v-2h-2zm-2 2a3 3 0 0 0 -3 3 3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1h1v-2h-1zm-3 3v-1h-2v4h2v-3zm-5-1v2a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1z" fill="#77edb1"/>
+</svg>
diff --git a/editor/icons/icon_float.svg b/editor/icons/icon_float.svg
new file mode 100644
index 0000000000..4091101fd1
--- /dev/null
+++ b/editor/icons/icon_float.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m3 2a3 3 0 0 0 -3 3v5h2v-2h2v-2h-2v-1a1 1 0 0 1 1 -1h1v-2zm3 0v5a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1v-5zm6 0v5a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1v-1h2v-2h-2v-2z" fill="#61daf4"/>
+</svg>
diff --git a/editor/icons/icon_int.svg b/editor/icons/icon_int.svg
new file mode 100644
index 0000000000..e16bb2ec07
--- /dev/null
+++ b/editor/icons/icon_int.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m1 2v2h2v-2zm11 0v5a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1v-1h2v-2h-2v-2zm-8 2v6h2v-4h1a1 1 0 0 1 1 1v3h2v-3a3 3 0 0 0 -3 -3h-1zm-3 2v4h2v-4z" fill="#7dc6ef"/>
+</svg>
diff --git a/editor/icons/icon_kinematic_body.svg b/editor/icons/icon_kinematic_body.svg
index 6f8d69fa53..c5f817c68c 100644
--- a/editor/icons/icon_kinematic_body.svg
+++ b/editor/icons/icon_kinematic_body.svg
@@ -1,5 +1,3 @@
<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1036.4)">
-<path transform="translate(0 1036.4)" d="m6 1c-0.55401 0-1 0.44599-1 1v3c0 0.55401 0.44599 1 1 1h1v0.99023a1.0001 1.0001 0 0 0 -0.31641 0.0625l-2.0508 0.68359-0.68359-2.0508a1.0001 1.0001 0 0 0 -0.99023 -0.69727 1.0001 1.0001 0 0 0 -0.9082 1.3281l1 3a1.0001 1.0001 0 0 0 1.2656 0.63281l1.6836-0.56055v0.61133c0 0.040884 0.018715 0.075662 0.023438 0.11523l-4.5781 3.0527a1.0001 1.0001 0 1 0 1.1094 1.6641l5.0566-3.3711 1.4941 2.9863a1.0001 1.0001 0 0 0 1.2109 0.50195l3-1a1.0001 1.0001 0 1 0 -0.63281 -1.8965l-2.1777 0.72461-0.97461-1.9512c0.2759-0.17764 0.46875-0.47227 0.46875-0.82617v-1h1.3828l0.72266 1.4473a1.0001 1.0001 0 1 0 1.7891 -0.89453l-1-2a1.0001 1.0001 0 0 0 -0.89453 -0.55273h-3v-1h1c0.55401 0 1-0.44599 1-1v-3c0-0.55401-0.44599-1-1-1h-4zm0 2h1v2h-1v-2z" fill="#fc9c9c" fill-opacity=".99608"/>
-</g>
+<path d="m6 1c-0.55401 0-1 0.44599-1 1v3c0 0.55401 0.44599 1 1 1h1v0.99023a1.0001 1.0001 0 0 0 -0.31641 0.0625l-2.0508 0.68359-0.68359-2.0508a1.0001 1.0001 0 0 0 -0.99023 -0.69727 1.0001 1.0001 0 0 0 -0.9082 1.3281l1 3a1.0001 1.0001 0 0 0 1.2656 0.63281l1.6836-0.56055v0.61133c0 0.04088 0.018715 0.07566 0.023437 0.11523l-4.5781 3.0527a1.0001 1.0001 0 1 0 1.1094 1.6641l5.0566-3.3711 1.4941 2.9863a1.0001 1.0001 0 0 0 1.2109 0.50195l3-1a1.0001 1.0001 0 1 0 -0.63281 -1.8965l-2.1777 0.72461-0.97461-1.9512c0.2759-0.17764 0.46875-0.47227 0.46875-0.82617v-1h1.3828l0.72266 1.4473a1.0001 1.0001 0 1 0 1.7891 -0.89453l-1-2a1.0001 1.0001 0 0 0 -0.89453 -0.55273h-3v-1h1c0.55401 0 1-0.44599 1-1v-3c0-0.55401-0.44599-1-1-1zm0 2h1v2h-1z" fill="#fc9c9c" fill-opacity=".99608"/>
</svg>
diff --git a/editor/icons/icon_kinematic_body_2d.svg b/editor/icons/icon_kinematic_body_2d.svg
index 0441e499c0..cac3ac7684 100644
--- a/editor/icons/icon_kinematic_body_2d.svg
+++ b/editor/icons/icon_kinematic_body_2d.svg
@@ -1,7 +1,3 @@
<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1036.4)">
-<g transform="translate(.49212 -.0044019)" fill="#a5b7f3">
-<path transform="translate(0 1036.4)" d="m6 1c-0.55401 0-1 0.44599-1 1v3c0 0.55401 0.44599 1 1 1h1v0.99023a1.0001 1.0001 0 0 0 -0.31641 0.0625l-2.0508 0.68359-0.68359-2.0508a1.0001 1.0001 0 0 0 -0.99023 -0.69727 1.0001 1.0001 0 0 0 -0.9082 1.3281l1 3a1.0001 1.0001 0 0 0 1.2656 0.63281l1.6836-0.56055v0.61133c0 0.04088 0.018715 0.07566 0.023437 0.11523l-4.5781 3.0527a1.0001 1.0001 0 1 0 1.1094 1.6641l5.0566-3.3711 1.4941 2.9863a1.0001 1.0001 0 0 0 1.2109 0.50195l3-1a1.0001 1.0001 0 1 0 -0.63281 -1.8965l-2.1777 0.72461-0.97461-1.9512c0.2759-0.17764 0.46875-0.47227 0.46875-0.82617v-1h1.3828l0.72266 1.4473a1.0001 1.0001 0 1 0 1.7891 -0.89453l-1-2a1.0001 1.0001 0 0 0 -0.89453 -0.55273h-3v-1h1c0.55401 0 1-0.44599 1-1v-3c0-0.55401-0.44599-1-1-1zm0 2h1v2h-1z" fill="#a5b7f3"/>
-</g>
-</g>
+<path d="m6.4921 1c-0.55401 0-1 0.446-1 1v3c0 0.554 0.44599 1 1 1h1v0.9902a1.0001 1.0001 0 0 0 -0.31641 0.062l-2.0508 0.6836-0.68359-2.0508a1.0001 1.0001 0 0 0 -0.99023 -0.6972 1.0001 1.0001 0 0 0 -0.9082 1.3281l1 3a1.0001 1.0001 0 0 0 1.2656 0.6328l1.6836-0.5605v0.6113c0 0.041 0.018715 0.076 0.023437 0.1152l-4.5781 3.0528a1.0001 1.0001 0 1 0 1.1094 1.664l5.0566-3.3711 1.4941 2.9864a1.0001 1.0001 0 0 0 1.2109 0.5019l3-1a1.0001 1.0001 0 1 0 -0.63281 -1.8965l-2.1777 0.7246-0.97461-1.9511c0.2759-0.1777 0.46875-0.4723 0.46875-0.8262v-1h1.3828l0.72266 1.4473a1.0001 1.0001 0 1 0 1.7891 -0.8946l-1-2a1.0001 1.0001 0 0 0 -0.89453 -0.5527h-3v-1h1c0.55401 0 1-0.446 1-1v-3c0-0.554-0.44599-1-1-1zm0 2h1v2h-1z" fill="#a5b7f3"/>
</svg>
diff --git a/editor/icons/icon_match_case.svg b/editor/icons/icon_match_case.svg
new file mode 100644
index 0000000000..2958933aca
--- /dev/null
+++ b/editor/icons/icon_match_case.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+<path d="m4 1c-2.2091-6.6e-7 -4.069 1.7919-4 4v10h2v-4h4v4h2v-10c0-2.2091-1.7909-4-4-4zm5 11c0 1.6569 1.3431 3 3 3 0.3409-0.0014 0.67908-0.0608 1-0.17578v0.17578h2v-6c0-1.6569-1.3431-3-3-3h-1v2h1c0.55228 0 1 0.44772 1 1v0.17383c-0.32104-0.11432-0.65921-0.1731-1-0.17383-1.6569 0-3 1.3431-3 3zm-5-9c1.1046-1e-7 1.914 0.89879 2 2v4h-4v-4c0-1.1046 0.89543-2 2-2zm8 8c0.55228 0 1 0.44772 1 1s-0.44772 1-1 1-1-0.44772-1-1 0.44772-1 1-1z" fill="#e0e0e0" stroke-width="0"/>
+</svg>
diff --git a/editor/icons/icon_member_constant.svg b/editor/icons/icon_member_constant.svg
new file mode 100644
index 0000000000..0f8c6966c4
--- /dev/null
+++ b/editor/icons/icon_member_constant.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+<path d="m10.135 3.002c-1.5244-0.04132-2.9843 0.61528-3.9648 1.7832-1.5607 1.8591-1.5607 4.5706 0 6.4297 1.5599 1.8584 4.229 2.3286 6.3301 1.1152l-1.0039-1.7363c-0.45449 0.26416-0.97042 0.40425-1.4961 0.40625-1.6569 0-3-1.3431-3-3-1e-7 -1.6569 1.3431-3 3-3 0.5255 0.0014061 1.0414 0.14082 1.4961 0.4043l1.0039-1.7344c-0.72056-0.41598-1.5335-0.64557-2.3652-0.66797zm-7.1348 7.998c-0.55228 0-1 0.44772-1 1-1e-7 0.55228 0.44772 1 1 1s1-0.44772 1-1c1e-7 -0.55228-0.44772-1-1-1z" fill="#e0e0e0" stroke-width="0"/>
+</svg>
diff --git a/editor/icons/icon_member_method.svg b/editor/icons/icon_member_method.svg
new file mode 100644
index 0000000000..57c93339b6
--- /dev/null
+++ b/editor/icons/icon_member_method.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+<path d="m6.0215 3c-0.40133-0.0028518-0.79916 0.074854-1.1699 0.22852-1.1208 0.46444-1.8516 1.5582-1.8516 2.7715v7h2v-3h2v-2h-2v-2c0-0.55228 0.44772-1 1-1 0.2652 4.01e-5 0.51953 0.10542 0.70703 0.29297l1.4141-1.4141c-0.55724-0.5574-1.3115-0.87312-2.0996-0.87891zm2.9785 3c-1.3263 2.6586-1.3404 4.3252 0 7h2c-1.3404-2.6748-1.3263-4.3414 0-7h-2zm4 0c1.3263 2.6586 1.3404 4.3252 0 7h2c1.3404-2.6748 1.3263-4.3414 0-7h-2zm-12 5a1 1 0 0 0 -1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 -1 1 1 0 0 0 -1 -1z" fill="#e0e0e0" stroke-width="0"/>
+</svg>
diff --git a/editor/icons/icon_member_property.svg b/editor/icons/icon_member_property.svg
new file mode 100644
index 0000000000..918d0a64e9
--- /dev/null
+++ b/editor/icons/icon_member_property.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+<path d="m7 4v9h2v-3h1c1.6569 0 3-1.3431 3-3s-1.3431-3-3-3zm2 2h1c0.55228 0 1 0.44772 1 1s-0.44798 0.98275-1 1h-1zm-5 5c-0.55228 0-1 0.44772-1 1-1e-7 0.55228 0.44772 1 1 1s1-0.44772 1-1c1e-7 -0.55228-0.44772-1-1-1z" fill="#e0e0e0" stroke-width="0"/>
+</svg>
diff --git a/editor/icons/icon_member_signal.svg b/editor/icons/icon_member_signal.svg
new file mode 100644
index 0000000000..2957cbbc50
--- /dev/null
+++ b/editor/icons/icon_member_signal.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+<path d="m6 1a1 1 0 0 0 -1 1 1 1 0 0 0 1 1c4.4301 0 8 3.5699 8 8a1 1 0 0 0 1 1 1 1 0 0 0 1 -1c0-5.511-4.489-10-10-10zm0 4a1 1 0 0 0 -1 1 1 1 0 0 0 1 1c2.221 0 4 1.779 4 4a1 1 0 0 0 1 1 1 1 0 0 0 1 -1c0-3.3018-2.6981-6-6-6zm0 4a2 2 0 0 0 -2 2 2 2 0 0 0 2 2 2 2 0 0 0 2 -2 2 2 0 0 0 -2 -2zm-5 2c-0.55228 0-1 0.44772-1 1-1e-7 0.55228 0.44772 1 1 1s1-0.44772 1-1c1e-7 -0.55228-0.44772-1-1-1z" fill="#e0e0e0" stroke-width="0"/>
+</svg>
diff --git a/editor/icons/icon_member_theme.svg b/editor/icons/icon_member_theme.svg
new file mode 100644
index 0000000000..880450abae
--- /dev/null
+++ b/editor/icons/icon_member_theme.svg
@@ -0,0 +1,6 @@
+<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
+<g fill="#e0e0e0" stroke-width="0">
+<path d="m3 11c-0.55228 0-1 0.44772-1 1-1e-7 0.55228 0.44772 1 1 1s1-0.44772 1-1c1e-7 -0.55228-0.44772-1-1-1z"/>
+<path d="m10 2c-2.4 4-4 4.7909-4 7 0 2.2091 1.8297 4 4 4 2.1703 0 4-1.7909 4-4 0-2.2091-1.6-3-4-7z"/>
+</g>
+</svg>
diff --git a/editor/icons/icon_mini_basis.svg b/editor/icons/icon_mini_basis.svg
deleted file mode 100644
index 21b4f29aa4..0000000000
--- a/editor/icons/icon_mini_basis.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m0 2v4 4h2a3 3 0 0 0 3 -3 3 3 0 0 0 -3 -3v-2h-2zm10 0v2h2v-2h-2zm-3 2a2 2 0 0 0 -1.7324 1 2 2 0 0 0 0 2 2 2 0 0 0 1.7324 1h-2v2h2a2 2 0 0 0 1.7324 -1 2 2 0 0 0 0 -2 2 2 0 0 0 -1.7324 -1h2v-2h-2zm7 0a2 2 0 0 0 -1.7324 1 2 2 0 0 0 0 2 2 2 0 0 0 1.7324 1h-2v-2h-2v4h2 2a2 2 0 0 0 1.7324 -1 2 2 0 0 0 0 -2 2 2 0 0 0 -1.7324 -1h2v-2h-2zm-12 2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1v-2z" fill="#e3ec69"/>
-<path d="m10 1042.4v2h2v-2zm0 4v4h2v-4z" fill="#fff" fill-opacity=".39216"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_boolean.svg b/editor/icons/icon_mini_boolean.svg
deleted file mode 100644
index b1e169d73c..0000000000
--- a/editor/icons/icon_mini_boolean.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m0 2v4 4h2a3 3 0 0 0 2.5 -1.3457 3 3 0 0 0 2.5 1.3457 3 3 0 0 0 2 -0.76758 3 3 0 0 0 2 0.76758 3 3 0 0 0 2.5 -1.3457 3 3 0 0 0 2.5 1.3457v-2a1 1 0 0 1 -1 -1v-5h-2v2.7695a3 3 0 0 0 -2 -0.76953 3 3 0 0 0 -2 0.76758 3 3 0 0 0 -2 -0.76758 3 3 0 0 0 -2.5 1.3457 3 3 0 0 0 -2.5 -1.3457v-2h-2zm2 4a1 1 0 0 1 1 1 1 1 0 0 1 -1 1v-2zm5 0a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1zm4 0a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1z" fill="#8da6f0"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_color.svg b/editor/icons/icon_mini_color.svg
deleted file mode 100644
index 623f922158..0000000000
--- a/editor/icons/icon_mini_color.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m4 4a3 3 0 0 0 -3 3 3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1h1v-2h-1z" fill="#ff8484"/>
-<path transform="translate(0 1040.4)" d="m14 4a3 3 0 0 0 -3 3v3h2v-3a1 1 0 0 1 1 -1h1v-2h-1z" fill="#84c2ff"/>
-<path transform="translate(0 1040.4)" d="m6 2v5a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1v-5h-2z" fill="#84ffb1"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_color_array.svg b/editor/icons/icon_mini_color_array.svg
deleted file mode 100644
index 2a5588a698..0000000000
--- a/editor/icons/icon_mini_color_array.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<rect y="1050.4" width="4" height="2" fill="#e0e0e0"/>
-<rect y="1040.4" width="2" height="12" fill="#e0e0e0"/>
-<rect y="1040.4" width="4" height="2" fill="#e0e0e0"/>
-<rect transform="scale(-1,1)" x="-16" y="1050.4" width="4" height="2" fill="#e0e0e0"/>
-<rect transform="scale(-1,1)" x="-16" y="1040.4" width="2" height="12" fill="#e0e0e0"/>
-<rect transform="scale(-1,1)" x="-16" y="1040.4" width="4" height="2" fill="#e0e0e0"/>
-<path transform="translate(0 1040.4)" d="m6 3.5a3 3 0 0 0 -3 3 3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1h1v-2h-1z" fill="#ff7070"/>
-<rect x="10" y="1046.9" width="2" height="3" fill="#70bfff"/>
-<path d="m13 1043.9a3 3 0 0 0 -3 3h2a1 1 0 0 1 1 -1v-2z" fill="#70bfff"/>
-<path transform="translate(0 1040.4)" d="m7 1.5v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-5h-2z" fill="#7aff70"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_dictionary.svg b/editor/icons/icon_mini_dictionary.svg
deleted file mode 100644
index 814f27e2f9..0000000000
--- a/editor/icons/icon_mini_dictionary.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m3 2v2a3 3 0 0 0 -3 3 3 3 0 0 0 3 3h2v-8h-2zm3 0v2h2v-2h-2zm7 0v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-1h1v-2h-1v-2h-2zm-2 2a3 3 0 0 0 -3 3 3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1h1v-2h-1zm-3 3v-1h-2v4h2v-3zm-5-1v2a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1z" fill="#77edb1"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_float.svg b/editor/icons/icon_mini_float.svg
deleted file mode 100644
index 68f09ef07a..0000000000
--- a/editor/icons/icon_mini_float.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m3 2a3 3 0 0 0 -3 3v5h2v-2h2v-2h-2v-1a1 1 0 0 1 1 -1h1v-2h-1zm3 0v5a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1v-5h-2zm6 0v5a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1v-1h2v-2h-2v-2h-2z" fill="#61daf4"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_float_array.svg b/editor/icons/icon_mini_float_array.svg
deleted file mode 100644
index 3e3c88cc99..0000000000
--- a/editor/icons/icon_mini_float_array.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m0 0v2 8 2h4v-2h-2v-8h2v-2h-2-2zm12 0v2h2v8h-2v2h4v-2-10h-4z" fill="#e0e0e0"/>
-<path transform="translate(0 1040.4)" d="m6 2a3 3 0 0 0 -3 3v5h2v-2h1v-2h-1v-1a1 1 0 0 1 1 -1v-2zm1 0v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-5h-2zm3 0v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-1h1v-2h-1v-2h-2z" fill="#61daf4"/>
-<path d="m7 1042.4v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-5h-2z" fill="#fff" fill-opacity=".39216"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_int_array.svg b/editor/icons/icon_mini_int_array.svg
deleted file mode 100644
index 04957c8d4b..0000000000
--- a/editor/icons/icon_mini_int_array.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m0 0v2 8 2h2 2v-2h-2v-8h2v-2h-4zm12 0v2h2v8h-2v2h4v-2-8-2h-2-2z" fill="#e0e0e0"/>
-<path transform="translate(0 1040.4)" d="m3 2v2h2v-2h-2zm2 2v2h-2v4h2 2v-4a1 1 0 0 1 1 1v3h2v-3a3 3 0 0 0 -3 -3h-2zm5 3a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-1h1v-2h-1v-2h-2v5z" fill="#7dc6ef"/>
-<path transform="translate(0 1040.4)" d="m5 4v6h2v-4a1 1 0 0 1 1 1v3h2v-3a3 3 0 0 0 -3 -3h-2z" fill="#fff" fill-opacity=".39216"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_integer.svg b/editor/icons/icon_mini_integer.svg
deleted file mode 100644
index 3bfe95980d..0000000000
--- a/editor/icons/icon_mini_integer.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m1 2v2h2v-2h-2zm11 0v5a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1v-1h2v-2h-2v-2h-2zm-8 2v6h2v-4h1a1 1 0 0 1 1 1v3h2v-3a3 3 0 0 0 -3 -3h-1-2zm-3 2v4h2v-4h-2z" fill="#7dc6ef"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_object.svg b/editor/icons/icon_mini_object.svg
index a59808b970..ffac2061c5 100644
--- a/editor/icons/icon_mini_object.svg
+++ b/editor/icons/icon_mini_object.svg
@@ -1,5 +1,3 @@
<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m6 2v5 3h2a3 3 0 0 0 3 -3 3 3 0 0 0 -3 -3v-2h-2zm0 5a3 3 0 0 0 -3 -3 3 3 0 0 0 -3 3 3 3 0 0 0 3 3 3 3 0 0 0 3 -3zm7-3v5a1 1 0 0 1 -1 1h-1v2h1a3 3 0 0 0 3 -3v-5h-2zm-10 2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1zm5 0a1 1 0 0 1 1 1 1 1 0 0 1 -1 1v-2z" fill="#79f3e8"/>
-</g>
+<path d="m6 2v8h2a3 3 0 0 0 3 -3 3 3 0 0 0 -3 -3v-2zm0 5a3 3 0 0 0 -3 -3 3 3 0 0 0 -3 3 3 3 0 0 0 3 3 3 3 0 0 0 3 -3zm7-3v5a1 1 0 0 1 -1 1h-1v2h1a3 3 0 0 0 3 -3v-5zm-10 2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1zm5 0a1 1 0 0 1 1 1 1 1 0 0 1 -1 1z" fill="#79f3e8"/>
</svg>
diff --git a/editor/icons/icon_mini_path.svg b/editor/icons/icon_mini_path.svg
deleted file mode 100644
index 4c99ad8cc0..0000000000
--- a/editor/icons/icon_mini_path.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m0 2v8h2v-2a3 3 0 0 0 3 -3 3 3 0 0 0 -3 -3h-2zm6 0v5a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1v-1h2v-2h-2v-2h-2zm5 0v8h2v-4a1 1 0 0 1 1 1v3h2v-3a3 3 0 0 0 -3 -3v-2h-2zm-9 2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1v-2z" fill="#6993ec"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_plane.svg b/editor/icons/icon_mini_plane.svg
deleted file mode 100644
index e02fded99f..0000000000
--- a/editor/icons/icon_mini_plane.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m1 2v8h2v-2a3 3 0 0 0 3 -3 3 3 0 0 0 -3 -3h-2zm6 0v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-5h-2zm-4 2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1v-2zm8 0v6h2v-4a1 1 0 0 1 1 1v3h2v-3a3 3 0 0 0 -3 -3h-2z" fill="#f77070"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_quat.svg b/editor/icons/icon_mini_quat.svg
deleted file mode 100644
index c705fae2b6..0000000000
--- a/editor/icons/icon_mini_quat.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m3 3a3 3 0 0 0 -3 3 3 3 0 0 0 3 3v2h2v-2.7695a3 3 0 0 0 2 0.76953h2v-6h-2v4a1 1 0 0 1 -1 -1v-3h-1-1-1zm0 2v2a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1z" fill="#ec69a3"/>
-<path d="m4 1043.4v3a3 3 0 0 0 3 3h2v-6h-2v4a1 1 0 0 1 -1 -1v-3z" fill="#fff" fill-opacity=".39216"/>
-<path transform="translate(0 1040.4)" d="m13 1v2h-2a3 3 0 0 0 -3 3 3 3 0 0 0 3 3h2v-3a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-1h1v-2h-1v-2h-2zm-2 4v2a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1z" fill="#ec69a3"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_raw_array.svg b/editor/icons/icon_mini_raw_array.svg
deleted file mode 100644
index ebd6c9a225..0000000000
--- a/editor/icons/icon_mini_raw_array.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m0 0v2 8 2h4v-2h-2v-8h2v-2h-2-2zm12 0v2h2v8h-2v2h4v-2-8-2h-2-2z" fill="#e0e0e0"/>
-<path transform="translate(0 1040.4)" d="m5 3a3 3 0 0 0 -3 3v3h2v-3a1 1 0 0 1 1 -1h1v4h2a3 3 0 0 0 1 -0.17578v0.17578h2a3 3 0 0 0 3 -3v-3h-2v3a1 1 0 0 1 -1 1v-1-3h-2v3a1 1 0 0 1 -1 1v-4h-2-1z" fill="#69ec9e"/>
-<path d="m6 1049.4v-6h2v4a1 1 0 0 0 1 -1v-3h2v3 1a1 1 0 0 0 1 -1v-3h2v3a3 3 0 0 1 -3 3h-2v-0.1758a3 3 0 0 1 -1 0.1758h-2z" fill="#fff" fill-opacity=".39216"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_rect2.svg b/editor/icons/icon_mini_rect2.svg
deleted file mode 100644
index 9dec66dfa1..0000000000
--- a/editor/icons/icon_mini_rect2.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m13 2v2h-1a3 3 0 0 0 -2.5 1.3457 3 3 0 0 0 -2.5 -1.3457 3 3 0 0 0 -3 3 3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1h2 1a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1h1v1a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-1h1v-2h-1v-2h-2zm-10 2a3 3 0 0 0 -3 3v3h2v-3a1 1 0 0 1 1 -1h1v-2h-1z" fill="#f191a5"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_string.svg b/editor/icons/icon_mini_string.svg
deleted file mode 100644
index 17e565cd75..0000000000
--- a/editor/icons/icon_mini_string.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m5 2a3 3 0 0 0 -3 3v2a1 1 0 0 1 -1 1h-1v2h1a3 3 0 0 0 3 -3v-2a1 1 0 0 1 1 -1h1v-2h-1zm2 0v5a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1v-1h2v-2h-2v-2h-2zm8 2a3 3 0 0 0 -3 3v3h2v-3a1 1 0 0 1 1 -1h1v-2h-1z" fill="#6ba7ec"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_string_array.svg b/editor/icons/icon_mini_string_array.svg
deleted file mode 100644
index af81cabce4..0000000000
--- a/editor/icons/icon_mini_string_array.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m0 0v2 8 2h2 2v-2h-2v-8h2v-2h-2-2zm12 0v2h2v8h-2v2h4v-2-10h-4z" fill="#e0e0e0"/>
-<path transform="translate(0 1040.4)" d="m7 2a3 3 0 0 0 -3 3v2a1 1 0 0 1 -1 1h-1v2h1a3 3 0 0 0 3 -3v-2a1 1 0 0 1 1 -1h1v3a3 3 0 0 0 3 3h2v-3a1 1 0 0 1 1 -1v-2a3 3 0 0 0 -3 3v1a1 1 0 0 1 -1 -1v-1h1v-2h-1v-2h-2-1z" fill="#6ba7ec"/>
-<path d="m8 1042.4v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-1h1v-2h-1v-2h-2z" fill="#fff" fill-opacity=".39216"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_transform.svg b/editor/icons/icon_mini_transform.svg
deleted file mode 100644
index 53bad91efc..0000000000
--- a/editor/icons/icon_mini_transform.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m0 2l2 4-2 4h2l0.9082-2.1816 1.0918 2.1816h2l-2-4 2-4h-2l-0.9082 2.1816-1.0918-2.1816h-2zm6 8h2v-2h1v-2h-1v-1a1 1 0 0 1 1 -1h1v-2h-1a3 3 0 0 0 -3 3v5zm4-6v2 2 2h2v-2l1 1 1-1v2h2v-2-2-2h-2l-1 2-1-2h-2z" fill="#f6a86e"/>
-<path d="m9 1042.4a3 3 0 0 0 -3 3v5h2v-2h1v-2h-1v-1a1 1 0 0 1 1 -1h1v-2h-1z" fill="#fff" fill-opacity=".39216"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_transform2D.svg b/editor/icons/icon_mini_transform2D.svg
deleted file mode 100644
index b4723d37c4..0000000000
--- a/editor/icons/icon_mini_transform2D.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m0 2v2h2v6h2v-6h2v-2h-6zm7 0v2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 2 2 0 0 0 -1.7324 1 2 2 0 0 0 -0.26562 1h-0.0019531v0.046875 1.9531h2 3 2a4 4 0 0 0 3.4648 -2 4 4 0 0 0 0 -4 4 4 0 0 0 -3.4648 -2h-2v6h-3a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -2.5977 -1.5zm5 2a2 2 0 0 1 1.7324 1 2 2 0 0 1 0 2 2 2 0 0 1 -1.7324 1v-4z" fill="#c4ec69"/>
-<path transform="translate(0 1040.4)" d="m7 2v2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 2 2 0 0 0 -1.7324 1 2 2 0 0 0 -0.26562 1h-0.0019531v0.046875 1.9531h2 3v-2h-3a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -2.5977 -1.5z" fill="#fff" fill-opacity=".39216"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_variant.svg b/editor/icons/icon_mini_variant.svg
deleted file mode 100644
index 4b9a2a5f18..0000000000
--- a/editor/icons/icon_mini_variant.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m3 4a3 3 0 0 0 -3 3 3 3 0 0 0 3 3h2v-6h-2zm3 0v6h2v-4a1 1 0 0 1 1 1v3h2v-3a3 3 0 0 0 -3 -3h-2zm5 3a3 3 0 0 0 3 3v2h2v-8h-2v4a1 1 0 0 1 -1 -1v-3h-2v3zm-8-1v2a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1z" fill="#69ecbd"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_vector2.svg b/editor/icons/icon_mini_vector2.svg
deleted file mode 100644
index 907e6ba84d..0000000000
--- a/editor/icons/icon_mini_vector2.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m12 2v2h1a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 2 2 0 0 0 -1.7324 1 2 2 0 0 0 -0.26562 1h-0.001953v2h5v-2h-3a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -2.5977 -1.5h-1zm-11 2v6h2a3 3 0 0 0 3 -3v-3h-2v3a1 1 0 0 1 -1 1v-4h-2zm5 3a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1h1v-2h-1a3 3 0 0 0 -3 3z" fill="#bd91f1"/>
-<path transform="translate(0 1040.4)" d="m12 2v2h1a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 2 2 0 0 0 -1.7324 1 2 2 0 0 0 -0.26562 1h-0.001953v2h5v-2h-3a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -2.5977 -1.5h-1z" fill="#fff" fill-opacity=".39216"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_vector2_array.svg b/editor/icons/icon_mini_vector2_array.svg
deleted file mode 100644
index e05eefc46a..0000000000
--- a/editor/icons/icon_mini_vector2_array.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m0 0v2 10h2 2v-2h-2v-8h2v-2h-2-2zm12 0v2h2v8h-2v2h4v-2-10h-4z" fill="#e0e0e0"/>
-<path transform="translate(0 1040.4)" d="m9 2v2h1a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 2 2 0 0 0 -1.7324 1 2 2 0 0 0 -0.26562 1h-0.0019531v0.046875 1.9531h2 3v-2h-3a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -2.5977 -1.5h-1zm-6 1v6h2a3 3 0 0 0 3 -3v-3h-2v3a1 1 0 0 1 -1 1v-4h-2z" fill="#bd91f1"/>
-<path d="m9 1042.4v2h1a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 2 2 0 0 0 -1.7324 1 2 2 0 0 0 -0.26562 1h-0.00195v0.047 1.9531h2 3v-2h-3a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -2.5977 -1.5001h-1z" fill="#fff" fill-opacity=".39216"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_vector3.svg b/editor/icons/icon_mini_vector3.svg
deleted file mode 100644
index be1f8ec360..0000000000
--- a/editor/icons/icon_mini_vector3.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m12 2v2h2a1 1 0 0 1 -1 1v2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1h-1v2h1a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -0.36523 -0.50195 3 3 0 0 0 0.36523 -0.49805 3 3 0 0 0 0.39844 -1.5h0.003906v-2h-4zm-11 2v6h2a3 3 0 0 0 3 -3v-3h-2v3a1 1 0 0 1 -1 1v-4h-2zm5 3a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1h1v-2h-1a3 3 0 0 0 -3 3z" fill="#e286f0"/>
-<path transform="translate(0 1040.4)" d="m12 2v2h2a1 1 0 0 1 -1 1v2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1h-1v2h1a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -0.36523 -0.50195 3 3 0 0 0 0.36523 -0.49805 3 3 0 0 0 0.39844 -1.5h0.003906v-2h-4z" fill="#fff" fill-opacity=".39216"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_mini_vector3_array.svg b/editor/icons/icon_mini_vector3_array.svg
deleted file mode 100644
index e2843d2e68..0000000000
--- a/editor/icons/icon_mini_vector3_array.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1040.4)">
-<path transform="translate(0 1040.4)" d="m0 0v2 8 2h4v-2h-2v-8h2v-2h-2-2zm12 0v2h2v8h-2v2h4v-2-10h-4z" fill="#e0e0e0"/>
-<path transform="translate(0 1040.4)" d="m8 1v2h1 1a1 1 0 0 1 -1 1v2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1h-1v2h1a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -0.36523 -0.50195 3 3 0 0 0 0.36523 -0.49805 3 3 0 0 0 0.39844 -1.5h0.003906v-2h-0.76562-2.2344-1zm0 2h-2v3a1 1 0 0 1 -1 1v-4h-2v6h2a3 3 0 0 0 3 -3v-3z" fill="#e286f0"/>
-<path transform="translate(0 1040.4)" d="m8 1v2h1 1a1 1 0 0 1 -1 1v2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1h-1v2h1a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -0.36523 -0.50195 3 3 0 0 0 0.36523 -0.49805 3 3 0 0 0 0.39844 -1.5h0.003906v-2h-0.76562-2.2344-1z" fill="#fff" fill-opacity=".39216"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_nil.svg b/editor/icons/icon_nil.svg
new file mode 100644
index 0000000000..b266161c2b
--- /dev/null
+++ b/editor/icons/icon_nil.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m8 2v2h2v-2zm4 0v5c0 1.6569 1.3431 3 3 3h1v-2h-1c-0.55228-9.6e-6 -0.99999-0.44772-1-1v-5zm-11 2v6h2v-4h1c0.55228 9.6e-6 0.99999 0.44772 1 1v3h2v-3c0-1.6569-1.3431-3-3-3zm7 2v4h2v-4z" fill="#e0e0e0"/>
+</svg>
diff --git a/editor/icons/icon_node_path.svg b/editor/icons/icon_node_path.svg
new file mode 100644
index 0000000000..1697c026a3
--- /dev/null
+++ b/editor/icons/icon_node_path.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m0 2v8h2v-2a3 3 0 0 0 3 -3 3 3 0 0 0 -3 -3h-2zm6 0v5a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1v-1h2v-2h-2v-2h-2zm5 0v8h2v-4a1 1 0 0 1 1 1v3h2v-3a3 3 0 0 0 -3 -3v-2h-2zm-9 2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1v-2z" fill="#6993ec"/>
+</svg>
diff --git a/editor/icons/icon_plane.svg b/editor/icons/icon_plane.svg
index d0525e13dc..e02fded99f 100644
--- a/editor/icons/icon_plane.svg
+++ b/editor/icons/icon_plane.svg
@@ -1,5 +1,5 @@
-<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1036.4)">
-<path d="m1 1044.4 7 3 7-3-7-3z" fill="#e0e0e0" fill-rule="evenodd"/>
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<g transform="translate(0 -1040.4)">
+<path transform="translate(0 1040.4)" d="m1 2v8h2v-2a3 3 0 0 0 3 -3 3 3 0 0 0 -3 -3h-2zm6 0v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-5h-2zm-4 2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1v-2zm8 0v6h2v-4a1 1 0 0 1 1 1v3h2v-3a3 3 0 0 0 -3 -3h-2z" fill="#f77070"/>
</g>
</svg>
diff --git a/editor/icons/icon_pool_byte_array.svg b/editor/icons/icon_pool_byte_array.svg
new file mode 100644
index 0000000000..29d6bfe4f0
--- /dev/null
+++ b/editor/icons/icon_pool_byte_array.svg
@@ -0,0 +1,5 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m0 0v12h4v-2h-2v-8h2v-2h-2zm12 0v2h2v8h-2v2h4v-12h-2z" fill="#e0e0e0"/>
+<path d="m5 3a3 3 0 0 0 -3 3v3h2v-3a1 1 0 0 1 1 -1h1v4h2a3 3 0 0 0 1 -0.17578v0.17578h2a3 3 0 0 0 3 -3v-3h-2v3a1 1 0 0 1 -1 1v-4h-2v3a1 1 0 0 1 -1 1v-4h-2z" fill="#69ec9e"/>
+<path d="m6 9v-6h2v4a1 1 0 0 0 1 -1v-3h2v4a1 1 0 0 0 1 -1v-3h2v3a3 3 0 0 1 -3 3h-2v-0.1758a3 3 0 0 1 -1 0.1758z" fill="#fff" fill-opacity=".39216"/>
+</svg>
diff --git a/editor/icons/icon_pool_color_array.svg b/editor/icons/icon_pool_color_array.svg
new file mode 100644
index 0000000000..dcce58f9c6
--- /dev/null
+++ b/editor/icons/icon_pool_color_array.svg
@@ -0,0 +1,8 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<g>
+<path d="m0 0v12h4v-2h-2v-8h2v-2h-4zm12 0v2h2v8h-2v2h4v-12h-4z" fill="#e0e0e0"/>
+<path d="m6 3.5a3 3 0 0 0 -3 3 3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1h1v-2z" fill="#ff7070"/>
+<path d="m13 3.5a3 3 0 0 0 -3 3v3h2v-3a1 1 0 0 1 1 -1z" fill="#70bfff"/>
+<path d="m7 1.5v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-5z" fill="#7aff70"/>
+</g>
+</svg>
diff --git a/editor/icons/icon_pool_int_array.svg b/editor/icons/icon_pool_int_array.svg
new file mode 100644
index 0000000000..d59f9e1531
--- /dev/null
+++ b/editor/icons/icon_pool_int_array.svg
@@ -0,0 +1,5 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m0 0v12h4v-2h-2v-8h2v-2zm12 0v2h2v8h-2v2h4v-12z" fill="#e0e0e0"/>
+<path d="m3 2v2h2v-2zm2 2v2h-2v4h4v-4a1 1 0 0 1 1 1v3h2v-3a3 3 0 0 0 -3 -3zm5 3a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-1h1v-2h-1v-2h-2z" fill="#7dc6ef"/>
+<path d="m5 4v6h2v-4a1 1 0 0 1 1 1v3h2v-3a3 3 0 0 0 -3 -3z" fill="#fff" fill-opacity=".39216"/>
+</svg>
diff --git a/editor/icons/icon_pool_real_array.svg b/editor/icons/icon_pool_real_array.svg
new file mode 100644
index 0000000000..78a8064611
--- /dev/null
+++ b/editor/icons/icon_pool_real_array.svg
@@ -0,0 +1,5 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m0 0v12h4v-2h-2v-8h2v-2zm12 0v2h2v8h-2v2h4v-12z" fill="#e0e0e0"/>
+<path d="m6 2a3 3 0 0 0 -3 3v5h2v-2h1v-2h-1v-1a1 1 0 0 1 1 -1zm1 0v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-5zm3 0v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-1h1v-2h-1v-2z" fill="#61daf4"/>
+<path d="m7 2v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-5z" fill="#fff" fill-opacity=".39216"/>
+</svg>
diff --git a/editor/icons/icon_pool_string_array.svg b/editor/icons/icon_pool_string_array.svg
new file mode 100644
index 0000000000..401bfe6145
--- /dev/null
+++ b/editor/icons/icon_pool_string_array.svg
@@ -0,0 +1,5 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m0 0v12h4v-2h-2v-8h2v-2zm12 0v2h2v8h-2v2h4v-12z" fill="#e0e0e0"/>
+<path d="m7 2a3 3 0 0 0 -3 3v2a1 1 0 0 1 -1 1h-1v2h1a3 3 0 0 0 3 -3v-2a1 1 0 0 1 1 -1h1v3a3 3 0 0 0 3 3h2v-3a1 1 0 0 1 1 -1v-2a3 3 0 0 0 -3 3v1a1 1 0 0 1 -1 -1v-1h1v-2h-1v-2h-2z" fill="#6ba7ec"/>
+<path d="m8 2v5a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-1h1v-2h-1v-2z" fill="#fff" fill-opacity=".39216"/>
+</svg>
diff --git a/editor/icons/icon_pool_vector2_array.svg b/editor/icons/icon_pool_vector2_array.svg
new file mode 100644
index 0000000000..bb089a26ef
--- /dev/null
+++ b/editor/icons/icon_pool_vector2_array.svg
@@ -0,0 +1,5 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m0 0v12h4v-2h-2v-8h2v-2zm12 0v2h2v8h-2v2h4v-12z" fill="#e0e0e0"/>
+<path d="m9 2v2h1a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 2 2 0 0 0 -1.7324 1 2 2 0 0 0 -0.26562 1h-0.0019531v2h5v-2h-3a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -2.5977 -1.5zm-6 1v6h2a3 3 0 0 0 3 -3v-3h-2v3a1 1 0 0 1 -1 1v-4z" fill="#bd91f1"/>
+<path d="m9 2v2h1a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 2 2 0 0 0 -1.7324 1 2 2 0 0 0 -0.26562 1h-0.00195v2.0001h5v-2h-3a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -2.5977 -1.5001z" fill="#fff" fill-opacity=".39216"/>
+</svg>
diff --git a/editor/icons/icon_pool_vector3_array.svg b/editor/icons/icon_pool_vector3_array.svg
new file mode 100644
index 0000000000..4f69183e30
--- /dev/null
+++ b/editor/icons/icon_pool_vector3_array.svg
@@ -0,0 +1,5 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m0 0v12h4v-2h-2v-8h2v-2zm12 0v2h2v8h-2v2h4v-12z" fill="#e0e0e0"/>
+<path d="m8 1v2h2c0 0.55228-0.44772 1-1 1v2c0.55228 0 1 0.44772 1 1s-0.44772 1-1 1h-1v2h1c1.0716-1.501e-4 2.0618-0.57193 2.5977-1.5 0.5359-0.9282 0.5359-2.0718 0-3-0.10406-0.1795-0.22646-0.34772-0.36523-0.50195 0.13856-0.15301 0.26095-0.31991 0.36523-0.49805 0.26209-0.45639 0.3995-0.97371 0.39844-1.5h0.003906v-2zm0 2h-2v3c-9.6e-6 0.55228-0.44772 0.99999-1 1v-4h-2v6h2c1.6569 0 3-1.3431 3-3z" fill="#e286f0"/>
+<path d="m8 1v2h2c0 0.55228-0.44772 1-1 1v2c0.55228 0 1 0.44772 1 1s-0.44772 1-1 1h-1v2h1c1.0716-1.501e-4 2.0618-0.57193 2.5977-1.5 0.5359-0.9282 0.5359-2.0718 0-3-0.10406-0.1795-0.22646-0.34772-0.36523-0.50195 0.13856-0.15301 0.26095-0.31991 0.36523-0.49805 0.26209-0.45639 0.3995-0.97371 0.39844-1.5h0.003906v-2z" fill="#fff" fill-opacity=".39216"/>
+</svg>
diff --git a/editor/icons/icon_quat.svg b/editor/icons/icon_quat.svg
index fc99c33aeb..07433920a1 100644
--- a/editor/icons/icon_quat.svg
+++ b/editor/icons/icon_quat.svg
@@ -1,5 +1,5 @@
-<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1036.4)">
-<path transform="translate(0 1036.4)" d="m7 1v6h2v-6h-2zm4 2.3906v2.0137a5 2 0 0 1 2 1.5957 5 2 0 0 1 -5 2 5 2 0 0 1 -5 -2 5 2 0 0 1 2 -1.5977v-2.0098a7 4 0 0 0 -4 3.6074 7 4 0 0 0 7 4 7 4 0 0 0 7 -4 7 4 0 0 0 -4 -3.6094zm-4 9.6094v2h2v-2h-2z" fill="#e0e0e0"/>
-</g>
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m3 3a3 3 0 0 0 -3 3 3 3 0 0 0 3 3v2h2v-2.7695a3 3 0 0 0 2 0.76953h2v-6h-2v4a1 1 0 0 1 -1 -1v-3h-2zm0 2v2a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1z" fill="#ec69a3"/>
+<path d="m4 3v3a3 3 0 0 0 3 3h2v-6h-2v4a1 1 0 0 1 -1 -1v-3z" fill="#fff" fill-opacity=".39216"/>
+<path d="m13 1v2h-2a3 3 0 0 0 -3 3 3 3 0 0 0 3 3h2v-3a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-1h1v-2h-1v-2zm-2 4v2a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1z" fill="#ec69a3"/>
</svg>
diff --git a/editor/icons/icon_mini_rid.svg b/editor/icons/icon_r_i_d.svg
index f1709a5acc..f1709a5acc 100644
--- a/editor/icons/icon_mini_rid.svg
+++ b/editor/icons/icon_r_i_d.svg
diff --git a/editor/icons/icon_range.svg b/editor/icons/icon_range.svg
deleted file mode 100644
index 4bf0170e55..0000000000
--- a/editor/icons/icon_range.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1036.4)">
-<path transform="translate(0 1036.4)" d="m1 3v10h2v-4h2v2h2v-2h2v2h2v-2h2v4h2v-10h-2v4h-2v-2h-2v2h-2v-2h-2v2h-2v-4z" fill="#a5efac"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_rect2.svg b/editor/icons/icon_rect2.svg
new file mode 100644
index 0000000000..05d1022e5b
--- /dev/null
+++ b/editor/icons/icon_rect2.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m13 2v2h-1a3 3 0 0 0 -2.5 1.3457 3 3 0 0 0 -2.5 -1.3457 3 3 0 0 0 -3 3 3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1h3a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1h1v1a3 3 0 0 0 3 3v-2a1 1 0 0 1 -1 -1v-1h1v-2h-1v-2zm-10 2a3 3 0 0 0 -3 3v3h2v-3a1 1 0 0 1 1 -1h1v-2z" fill="#f191a5"/>
+</svg>
diff --git a/editor/icons/icon_scroll_bar.svg b/editor/icons/icon_scroll_bar.svg
deleted file mode 100644
index c58c31464d..0000000000
--- a/editor/icons/icon_scroll_bar.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1036.4)">
-<path transform="translate(0 1036.4)" d="m3 3c-1.1046 0-2 0.89543-2 2v6c0 1.1046 0.89543 2 2 2h10c1.1046 0 2-0.89543 2-2v-6c0-1.1046-0.89543-2-2-2h-10zm0 2h10v6h-10v-6zm1 1v4h4v-4h-4z" fill="#a5efac"/>
-</g>
-</svg>
diff --git a/editor/icons/icon_string.svg b/editor/icons/icon_string.svg
new file mode 100644
index 0000000000..6618f3b7f9
--- /dev/null
+++ b/editor/icons/icon_string.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m5 2a3 3 0 0 0 -3 3v2a1 1 0 0 1 -1 1h-1v2h1a3 3 0 0 0 3 -3v-2a1 1 0 0 1 1 -1h1v-2zm2 0v5a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1v-1h2v-2h-2v-2zm8 2a3 3 0 0 0 -3 3v3h2v-3a1 1 0 0 1 1 -1h1v-2z" fill="#6ba7ec"/>
+</svg>
diff --git a/editor/icons/icon_theme.svg b/editor/icons/icon_theme.svg
index 3dfb4aaa00..f44529c4cb 100644
--- a/editor/icons/icon_theme.svg
+++ b/editor/icons/icon_theme.svg
@@ -1,11 +1,11 @@
<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1036.4)">
-<path transform="translate(0 1036.4)" d="m7 1l-0.5 2h3l-0.5-2h-2zm-3.2422 1.3438l-0.65625 0.65625h1.75l-1.0938-0.65625zm8.4844 0l-1.0957 0.65625h1.752l-0.65625-0.65625z" fill="#ff7070"/>
-<path transform="translate(0 1036.4)" d="m3.1016 3l-0.75781 0.75781 0.74414 1.2422h9.8242l0.74414-1.2422-0.75781-0.75781h-1.752l-0.89844 0.53906a5 5 0 0 0 -0.68555 -0.28516l-0.0625-0.25391h-3l-0.064453 0.25781a5 5 0 0 0 -0.68945 0.2793l-0.89453-0.53711h-1.75z" fill="#ffeb70"/>
-<path transform="translate(0 1036.4)" d="m3.0879 5l0.45117 0.75195a5 5 0 0 0 -0.28516 0.68555l-2.2539 0.5625h5.2695a2 2 0 0 1 1.7305 -1 2 2 0 0 1 1.7285 1h5.2715l-2.2578-0.56445a5 5 0 0 0 -0.2793 -0.6875l0.44922-0.74805h-9.8242z" fill="#9dff70"/>
-<path transform="translate(0 1036.4)" d="m1 7v2h5.2715a2 2 0 0 1 -0.27148 -1 2 2 0 0 1 0.26953 -1h-5.2695zm8.7285 0a2 2 0 0 1 0.27148 1 2 2 0 0 1 -0.26953 1h5.2695v-2h-5.2715z" fill="#70ffb9"/>
-<path transform="translate(0 1036.4)" d="m1 9l2.2578 0.56445a5 5 0 0 0 0.2793 0.6875l-0.44922 0.74805h9.8242l-0.45117-0.75195a5 5 0 0 0 0.28516 -0.68555l2.2539-0.5625h-5.2695a2 2 0 0 1 -1.7305 1 2 2 0 0 1 -1.7285 -1h-5.2715z" fill="#70deff"/>
-<path transform="translate(0 1036.4)" d="m3.1016 13l0.65625 0.65625 1.0957-0.65625h-1.752zm3.3984 0l0.5 2h2l0.5-2h-3zm4.6484 0l1.0938 0.65625 0.65625-0.65625h-1.75z" fill="#ff70ac"/>
-<path transform="translate(0 1036.4)" d="m3.0879 11l-0.74414 1.2422 0.75781 0.75781h1.752l0.89844-0.53906a5 5 0 0 0 0.68555 0.28516l0.0625 0.25391h3l0.064453-0.25781a5 5 0 0 0 0.6875 -0.2793l0.89648 0.53711h1.75l0.75781-0.75781-0.74414-1.2422h-9.8242z" fill="#9f70ff"/>
+<g transform="translate(0 -1036.4)" stroke-width="0">
+<path transform="translate(0 1036.4)" d="m6.7246 3c-0.52985 0.78935-0.96267 1.4021-1.3945 2h5.3398c-0.43187-0.59786-0.86468-1.2107-1.3945-2h-2.5508z" fill="#ffeb70"/>
+<path transform="translate(0 1036.4)" d="m5.3301 5c-0.52617 0.72841-1.0198 1.4208-1.375 2h8.0898c-0.35516-0.57924-0.84883-1.2716-1.375-2h-5.3398z" fill="#9dff70"/>
+<path transform="translate(0 1036.4)" d="m3.9551 7c-0.41451 0.67603-0.71534 1.3082-0.85547 2h9.8008c-0.14013-0.69181-0.44096-1.324-0.85547-2h-8.0898z" fill="#70ffb9"/>
+<path transform="translate(0 1036.4)" d="m3.0996 9c-0.063989 0.3159-0.099609 0.64498-0.099609 1 0 0.34242 0.034776 0.67693 0.10156 1h9.7969c0.066786-0.32307 0.10156-0.65758 0.10156-1 0-0.35502-0.03562-0.6841-0.099609-1h-9.8008z" fill="#70deff"/>
+<path transform="translate(0 1036.4)" d="m3.1016 11c0.15381 0.74405 0.48967 1.4159 0.93555 2h7.9258c0.44588-0.5841 0.78173-1.2559 0.93555-2h-9.7969z" fill="#9f70ff"/>
+<path transform="translate(0 1036.4)" d="m4.0371 13c0.9218 1.2076 2.3612 2 3.9629 2s3.0411-0.79243 3.9629-2h-7.9258z" fill="#ff70ac"/>
+<path transform="translate(0 1036.4)" d="m8 1c-0.45196 0.75327-0.87224 1.3994-1.2754 2h2.5508c-0.40315-0.6006-0.82343-1.2467-1.2754-2z" fill="#ff7070"/>
</g>
</svg>
diff --git a/editor/icons/icon_transform.svg b/editor/icons/icon_transform.svg
new file mode 100644
index 0000000000..7645622c28
--- /dev/null
+++ b/editor/icons/icon_transform.svg
@@ -0,0 +1,4 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m0 2 2 4-2 4h2l0.9082-2.1816 1.0918 2.1816h2l-2-4 2-4h-2l-0.9082 2.1816-1.0918-2.1816zm6 8h2v-2h1v-2h-1v-1c9.6e-6 -0.55228 0.44772-0.99999 1-1h1v-2h-1c-1.6569 0-3 1.3431-3 3zm4-6v6h2v-2l1 1 1-1v2h2v-6h-2l-1 2-1-2z" fill="#f6a86e"/>
+<path d="m9 2a3 3 0 0 0 -3 3v5h2v-2h1v-2h-1v-1a1 1 0 0 1 1 -1h1v-2z" fill="#fff" fill-opacity=".39216"/>
+</svg>
diff --git a/editor/icons/icon_transform_2_D.svg b/editor/icons/icon_transform_2_D.svg
new file mode 100644
index 0000000000..de05160dac
--- /dev/null
+++ b/editor/icons/icon_transform_2_D.svg
@@ -0,0 +1,4 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m0 2v2h2v6h2v-6h2v-2zm7 0v2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 2 2 0 0 0 -1.7324 1 2 2 0 0 0 -0.26562 1h-0.0019531v2h7a4 4 0 0 0 3.4648 -2 4 4 0 0 0 0 -4 4 4 0 0 0 -3.4648 -2h-2v6h-3a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -2.5977 -1.5zm5 2a2 2 0 0 1 1.7324 1 2 2 0 0 1 0 2 2 2 0 0 1 -1.7324 1z" fill="#c4ec69"/>
+<path d="m7 2v2c0.55228 0 1 0.44772 1 1s-0.44772 1-1 1c-0.71466-1.326e-4 -1.3751 0.38108-1.7324 1-0.17472 0.30426-0.26633 0.64914-0.26562 1h-0.0019531v2h5v-2h-3c1.0716-1.5e-4 2.0618-0.57193 2.5977-1.5 0.5359-0.9282 0.5359-2.0718 0-3-0.53582-0.92807-1.526-1.4998-2.5977-1.5z" fill="#fff" fill-opacity=".39216"/>
+</svg>
diff --git a/editor/icons/icon_variant.svg b/editor/icons/icon_variant.svg
index 32f72b1ce6..859578243c 100644
--- a/editor/icons/icon_variant.svg
+++ b/editor/icons/icon_variant.svg
@@ -1,16 +1,3 @@
-<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
-<g transform="translate(0 -1036.4)">
-<g transform="translate(0,-3)" fill="#e0e0e0">
-<rect x="3" y="1044.4" width="2" height="6"/>
-<rect x="6" y="1044.4" width="2" height="6"/>
-<rect x="3" y="1044.4" width="1" height="2"/>
-<path d="m3 1044.4a3 3 0 0 0 -3 3h2a1 1 0 0 1 1 -1z"/>
-<path d="m14 1050.4a3 3 0 0 1 -3 -3h2a1 1 0 0 0 1 1z"/>
-<rect transform="scale(1,-1)" x="14" y="-1052.4" width="2" height="8"/>
-<rect transform="scale(1,-1)" x="11" y="-1047.4" width="2" height="3"/>
-<path d="m3 1050.4a3 3 0 0 1 -3 -3h2a1 1 0 0 0 1 1z"/>
-<path d="m8 1044.4a3 3 0 0 1 3 3h-2a1 1 0 0 0 -1 -1z"/>
-<rect x="9" y="1047.4" width="2" height="3"/>
-</g>
-</g>
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m3 4a3 3 0 0 0 -3 3 3 3 0 0 0 3 3h2v-6zm3 0v6h2v-4a1 1 0 0 1 1 1v3h2v-3a3 3 0 0 0 -3 -3zm5 3a3 3 0 0 0 3 3v2h2v-8h-2v4a1 1 0 0 1 -1 -1v-3h-2zm-8-1v2a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1z" fill="#69ecbd"/>
</svg>
diff --git a/editor/icons/icon_vector2.svg b/editor/icons/icon_vector2.svg
new file mode 100644
index 0000000000..9fa798df5d
--- /dev/null
+++ b/editor/icons/icon_vector2.svg
@@ -0,0 +1,4 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m12 2v2h1a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 2 2 0 0 0 -1.7324 1 2 2 0 0 0 -0.26562 1h-0.001953v2h5v-2h-3a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -2.5977 -1.5zm-11 2v6h2a3 3 0 0 0 3 -3v-3h-2v3a1 1 0 0 1 -1 1v-4zm5 3a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1h1v-2h-1a3 3 0 0 0 -3 3z" fill="#bd91f1"/>
+<path d="m12 2v2h1a1 1 0 0 1 1 1 1 1 0 0 1 -1 1 2 2 0 0 0 -1.7324 1 2 2 0 0 0 -0.26562 1h-0.001953v2h5v-2h-3a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -2.5977 -1.5z" fill="#fff" fill-opacity=".39216"/>
+</svg>
diff --git a/editor/icons/icon_vector3.svg b/editor/icons/icon_vector3.svg
new file mode 100644
index 0000000000..cf1d0d0136
--- /dev/null
+++ b/editor/icons/icon_vector3.svg
@@ -0,0 +1,4 @@
+<svg width="16" height="12" version="1.1" viewBox="0 0 16 12" xmlns="http://www.w3.org/2000/svg">
+<path d="m12 2v2h2a1 1 0 0 1 -1 1v2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1h-1v2h1a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -0.36523 -0.50195 3 3 0 0 0 0.36523 -0.49805 3 3 0 0 0 0.39844 -1.5h0.003906v-2zm-11 2v6h2a3 3 0 0 0 3 -3v-3h-2v3a1 1 0 0 1 -1 1v-4zm5 3a3 3 0 0 0 3 3h1v-2h-1a1 1 0 0 1 -1 -1 1 1 0 0 1 1 -1h1v-2h-1a3 3 0 0 0 -3 3z" fill="#e286f0"/>
+<path d="m12 2v2h2a1 1 0 0 1 -1 1v2a1 1 0 0 1 1 1 1 1 0 0 1 -1 1h-1v2h1a3 3 0 0 0 2.5977 -1.5 3 3 0 0 0 0 -3 3 3 0 0 0 -0.36523 -0.50195 3 3 0 0 0 0.36523 -0.49805 3 3 0 0 0 0.39844 -1.5h0.003906v-2z" fill="#fff" fill-opacity=".39216"/>
+</svg>
diff --git a/editor/import/resource_importer_scene.cpp b/editor/import/resource_importer_scene.cpp
index ed7c6dba79..b6e4729352 100644
--- a/editor/import/resource_importer_scene.cpp
+++ b/editor/import/resource_importer_scene.cpp
@@ -515,127 +515,7 @@ Node *ResourceImporterScene::_fix_node(Node *p_node, Node *p_root, Map<Ref<Array
s->set_transform(Transform());
p_node = bv;
-#if 0
- } else if (_teststr(name, "room") && Object::cast_to<MeshInstance>(p_node)) {
- if (isroot)
- return p_node;
-
- MeshInstance *mi = Object::cast_to<MeshInstance>(p_node);
- PoolVector<Face3> faces = mi->get_faces(VisualInstance::FACES_SOLID);
-
- BSP_Tree bsptree(faces);
-
- Ref<RoomBounds> area = memnew(RoomBounds);
- //area->set_bounds(faces);
- //area->set_geometry_hint(faces);
-
- Room *room = memnew(Room);
- room->set_name(_fixstr(name, "room"));
- room->set_transform(mi->get_transform());
- room->set_room(area);
-
- p_node->replace_by(room);
- memdelete(p_node);
- p_node = room;
-
- } else if (_teststr(name, "room")) {
-
- if (isroot)
- return p_node;
-
- Spatial *dummy = Object::cast_to<Spatial>(p_node);
- ERR_FAIL_COND_V(!dummy, NULL);
-
- Room *room = memnew(Room);
- room->set_name(_fixstr(name, "room"));
- room->set_transform(dummy->get_transform());
-
- p_node->replace_by(room);
- memdelete(p_node);
- p_node = room;
-
- //room->compute_room_from_subtree();
-
- } else if (_teststr(name, "portal") && Object::cast_to<MeshInstance>(p_node)) {
-
- if (isroot)
- return p_node;
-
- MeshInstance *mi = Object::cast_to<MeshInstance>(p_node);
- PoolVector<Face3> faces = mi->get_faces(VisualInstance::FACES_SOLID);
-
- ERR_FAIL_COND_V(faces.size() == 0, NULL);
- //step 1 compute the plane
- Set<Vector3> points;
- Plane plane;
-
- Vector3 center;
-
- for (int i = 0; i < faces.size(); i++) {
-
- Face3 f = faces.get(i);
- Plane p = f.get_plane();
- plane.normal += p.normal;
- plane.d += p.d;
-
- for (int i = 0; i < 3; i++) {
-
- Vector3 v = f.vertex[i].snapped(Vector3(0.01, 0.01, 0.01));
- if (!points.has(v)) {
- points.insert(v);
- center += v;
- }
- }
- }
-
- plane.normal.normalize();
- plane.d /= faces.size();
- center /= points.size();
-
- //step 2, create points
-
- Transform t;
- t.basis.from_z(plane.normal);
- t.basis.transpose();
- t.origin = center;
-
- Vector<Point2> portal_points;
-
- for (Set<Vector3>::Element *E = points.front(); E; E = E->next()) {
-
- Vector3 local = t.xform_inv(E->get());
- portal_points.push_back(Point2(local.x, local.y));
- }
- // step 3 bubbly sort points
-
- int swaps = 0;
-
- do {
- swaps = 0;
-
- for (int i = 0; i < portal_points.size() - 1; i++) {
-
- float a = portal_points[i].angle();
- float b = portal_points[i + 1].angle();
-
- if (a > b) {
- SWAP(portal_points[i], portal_points[i + 1]);
- swaps++;
- }
- }
-
- } while (swaps);
-
- Portal *portal = memnew(Portal);
-
- portal->set_shape(portal_points);
- portal->set_transform(mi->get_transform() * t);
-
- p_node->replace_by(portal);
- memdelete(p_node);
- p_node = portal;
-#endif
} else if (Object::cast_to<MeshInstance>(p_node)) {
//last attempt, maybe collision inside the mesh data
@@ -969,15 +849,15 @@ void ResourceImporterScene::_find_meshes(Node *p_node, Map<Ref<ArrayMesh>, Trans
if (mesh.is_valid() && !meshes.has(mesh)) {
Spatial *s = mi;
- while (s->get_parent_spatial()) {
+ Transform transform;
+ while (s) {
+ transform = transform * s->get_transform();
s = s->get_parent_spatial();
}
- if (s == mi) {
- meshes[mesh] = s->get_transform();
- } else {
- meshes[mesh] = s->get_transform() * mi->get_relative_transform(s);
- }
+ meshes[mesh] = transform;
+
+ print_line("mesh transform: " + meshes[mesh]);
}
}
for (int i = 0; i < p_node->get_child_count(); i++) {
@@ -1157,6 +1037,7 @@ void ResourceImporterScene::get_import_options(List<ImportOption> *r_options, in
bool scenes_out = p_preset == PRESET_MULTIPLE_SCENES || p_preset == PRESET_MULTIPLE_SCENES_AND_MATERIALS;
bool animations_out = p_preset == PRESET_SEPARATE_ANIMATIONS || p_preset == PRESET_SEPARATE_MESHES_AND_ANIMATIONS || p_preset == PRESET_SEPARATE_MATERIALS_AND_ANIMATIONS || p_preset == PRESET_SEPARATE_MESHES_MATERIALS_AND_ANIMATIONS;
+ r_options->push_back(ImportOption(PropertyInfo(Variant::REAL, "nodes/root_scale", PROPERTY_HINT_RANGE, "0.001,1000,0.001"), 1.0));
r_options->push_back(ImportOption(PropertyInfo(Variant::STRING, "nodes/custom_script", PROPERTY_HINT_FILE, script_ext_hint), ""));
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "nodes/storage", PROPERTY_HINT_ENUM, "Single Scene,Instanced Sub-Scenes"), scenes_out ? 1 : 0));
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "materials/location", PROPERTY_HINT_ENUM, "Node,Mesh"), (meshes_out || materials_out) ? 1 : 0));
@@ -1329,6 +1210,11 @@ Error ResourceImporterScene::import(const String &p_source_file, const String &p
}
}
+ if (Object::cast_to<Spatial>(scene)) {
+ float root_scale = p_options["nodes/root_scale"];
+ Object::cast_to<Spatial>(scene)->scale(Vector3(root_scale, root_scale, root_scale));
+ }
+
scene->set_name(p_options["nodes/root_name"]);
err = OK;
diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp
index 019e32f847..d70f41d2e0 100644
--- a/editor/plugins/animation_player_editor_plugin.cpp
+++ b/editor/plugins/animation_player_editor_plugin.cpp
@@ -1348,14 +1348,14 @@ void AnimationPlayerEditor::_prepare_onion_layers_2() {
if (SpatialEditor::get_singleton()->is_visible()) {
// 3D
spatial_edit_state = SpatialEditor::get_singleton()->get_state();
- Dictionary new_state = spatial_edit_state.copy();
+ Dictionary new_state = spatial_edit_state.duplicate();
new_state["show_grid"] = false;
new_state["show_origin"] = false;
Array orig_vp = spatial_edit_state["viewports"];
Array vp;
vp.resize(4);
for (int i = 0; i < vp.size(); i++) {
- Dictionary d = ((Dictionary)orig_vp[i]).copy();
+ Dictionary d = ((Dictionary)orig_vp[i]).duplicate();
d["use_environment"] = false;
d["doppler"] = false;
d["gizmos"] = onion.include_gizmos ? d["gizmos"] : Variant(false);
@@ -1368,7 +1368,7 @@ void AnimationPlayerEditor::_prepare_onion_layers_2() {
} else { // CanvasItemEditor
// 2D
canvas_edit_state = CanvasItemEditor::get_singleton()->get_state();
- Dictionary new_state = canvas_edit_state.copy();
+ Dictionary new_state = canvas_edit_state.duplicate();
new_state["show_grid"] = false;
new_state["show_rulers"] = false;
new_state["show_guides"] = false;
diff --git a/editor/plugins/animation_tree_editor_plugin.cpp b/editor/plugins/animation_tree_editor_plugin.cpp
index 8fe6538653..0c6c608d3d 100644
--- a/editor/plugins/animation_tree_editor_plugin.cpp
+++ b/editor/plugins/animation_tree_editor_plugin.cpp
@@ -1435,7 +1435,7 @@ AnimationTreeEditorPlugin::AnimationTreeEditorPlugin(EditorNode *p_node) {
anim_tree_editor = memnew(AnimationTreeEditor);
anim_tree_editor->set_custom_minimum_size(Size2(0, 300));
- button = editor->add_bottom_panel_item("AnimationTree", anim_tree_editor);
+ button = editor->add_bottom_panel_item(TTR("AnimationTree"), anim_tree_editor);
button->hide();
}
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp
index ad22c12372..1241441d43 100644
--- a/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/editor/plugins/canvas_item_editor_plugin.cpp
@@ -3341,8 +3341,8 @@ void CanvasItemEditor::_zoom_on_position(float p_zoom, Point2 p_position) {
zoom = p_zoom;
Point2 ofs = p_position;
ofs = ofs / prev_zoom - ofs / zoom;
- h_scroll->set_value(h_scroll->get_value() + ofs.x);
- v_scroll->set_value(v_scroll->get_value() + ofs.y);
+ h_scroll->set_value(Math::round(h_scroll->get_value() + ofs.x));
+ v_scroll->set_value(Math::round(v_scroll->get_value() + ofs.y));
_update_scroll(0);
viewport->update();
@@ -4100,7 +4100,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
select_button->connect("pressed", this, "_tool_select", make_binds(TOOL_SELECT));
select_button->set_pressed(true);
select_button->set_shortcut(ED_SHORTCUT("canvas_item_editor/select_mode", TTR("Select Mode"), KEY_Q));
- select_button->set_tooltip(TTR("Select Mode") + " $sc\n" + keycode_get_string(KEY_MASK_CMD) + TTR("Drag: Rotate") + "\n" + TTR("Alt+Drag: Move") + "\n" + TTR("Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving).") + "\n" + TTR("Alt+RMB: Depth list selection"));
+ select_button->set_tooltip(keycode_get_string(KEY_MASK_CMD) + TTR("Drag: Rotate") + "\n" + TTR("Alt+Drag: Move") + "\n" + TTR("Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving).") + "\n" + TTR("Alt+RMB: Depth list selection"));
move_button = memnew(ToolButton);
hb->add_child(move_button);
@@ -4344,7 +4344,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
additive_selection = false;
// Update the menus checkboxes
- call_deferred("set_state", get_state());
+ set_state(get_state());
}
CanvasItemEditor *CanvasItemEditor::singleton = NULL;
diff --git a/editor/plugins/mesh_instance_editor_plugin.h b/editor/plugins/mesh_instance_editor_plugin.h
index 68c149f98a..32c779509a 100644
--- a/editor/plugins/mesh_instance_editor_plugin.h
+++ b/editor/plugins/mesh_instance_editor_plugin.h
@@ -35,9 +35,9 @@
#include "scene/3d/mesh_instance.h"
#include "scene/gui/spin_box.h"
-class MeshInstanceEditor : public Node {
+class MeshInstanceEditor : public Control {
- GDCLASS(MeshInstanceEditor, Node);
+ GDCLASS(MeshInstanceEditor, Control);
enum Menu {
diff --git a/editor/plugins/resource_preloader_editor_plugin.cpp b/editor/plugins/resource_preloader_editor_plugin.cpp
index 3210af1433..88649ca267 100644
--- a/editor/plugins/resource_preloader_editor_plugin.cpp
+++ b/editor/plugins/resource_preloader_editor_plugin.cpp
@@ -444,7 +444,7 @@ ResourcePreloaderEditorPlugin::ResourcePreloaderEditorPlugin(EditorNode *p_node)
preloader_editor = memnew(ResourcePreloaderEditor);
preloader_editor->set_custom_minimum_size(Size2(0, 250));
- button = editor->add_bottom_panel_item("ResourcePreloader", preloader_editor);
+ button = editor->add_bottom_panel_item(TTR("ResourcePreloader"), preloader_editor);
button->hide();
//preloader_editor->set_anchor( MARGIN_TOP, Control::ANCHOR_END);
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp
index c02b3458e5..2f0f21cc0e 100644
--- a/editor/plugins/script_editor_plugin.cpp
+++ b/editor/plugins/script_editor_plugin.cpp
@@ -132,7 +132,7 @@ public:
I = I->next();
}
- if (O != E) { //should never heppane..
+ if (O != E) { //should never happen..
cached.erase(O);
}
}
@@ -234,7 +234,6 @@ ScriptEditorQuickOpen::ScriptEditorQuickOpen() {
VBoxContainer *vbc = memnew(VBoxContainer);
add_child(vbc);
- //set_child_rect(vbc);
search_box = memnew(LineEdit);
vbc->add_margin_child(TTR("Search:"), search_box);
search_box->connect("text_changed", this, "_text_changed");
@@ -257,8 +256,6 @@ ScriptEditor *ScriptEditor::script_editor = NULL;
String ScriptEditor::_get_debug_tooltip(const String &p_text, Node *_se) {
- //ScriptEditorBase *se=Object::cast_to<ScriptEditorBase>(_se);
-
String val = debugger->get_var_value(p_text);
if (val != String()) {
return p_text + ": " + val;
@@ -551,8 +548,6 @@ void ScriptEditor::_close_tab(int p_idx, bool p_save) {
idx = history[history_pos].control->get_index();
}
tab_container->set_current_tab(idx);
-
- //script_list->select(idx);
}
_update_history_arrows();
@@ -698,7 +693,6 @@ void ScriptEditor::_reload_scripts() {
uint64_t last_date = script->get_last_modified_time();
uint64_t date = FileAccess::get_modified_time(script->get_path());
- //printf("last date: %lli vs date: %lli\n",last_date,date);
if (last_date == date) {
continue;
}
@@ -776,7 +770,6 @@ bool ScriptEditor::_test_script_times_on_disk(Ref<Script> p_for_script) {
uint64_t last_date = script->get_last_modified_time();
uint64_t date = FileAccess::get_modified_time(script->get_path());
- //printf("last date: %lli vs date: %lli\n",last_date,date);
if (last_date != date) {
TreeItem *ti = disk_changed_list->create_item(r);
@@ -786,7 +779,6 @@ bool ScriptEditor::_test_script_times_on_disk(Ref<Script> p_for_script) {
need_ask = true;
}
need_reload = true;
- //r->set_metadata(0,);
}
}
}
@@ -1205,9 +1197,6 @@ void ScriptEditor::_notification(int p_what) {
_update_modified_scripts_for_external_editor();
} break;
- case NOTIFICATION_PROCESS: {
- } break;
-
case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
help_search->set_icon(get_icon("HelpSearch", "EditorIcons"));
@@ -1329,12 +1318,12 @@ void ScriptEditor::_members_overview_selected(int p_idx) {
if (!se) {
return;
}
- Dictionary state;
- state["scroll_position"] = members_overview->get_item_metadata(p_idx);
+ // Go to the member's line and reset the cursor column. We can't just change scroll_position
+ // directly, since code might be folded.
+ se->goto_line(members_overview->get_item_metadata(p_idx));
+ Dictionary state = se->get_edit_state();
state["column"] = 0;
- state["row"] = members_overview->get_item_metadata(p_idx);
se->set_edit_state(state);
- se->ensure_focus();
}
void ScriptEditor::_help_overview_selected(int p_idx) {
@@ -1367,18 +1356,9 @@ void ScriptEditor::ensure_select_current() {
if (!grab_focus_block && is_visible_in_tree())
se->ensure_focus();
-
- //edit_menu->show();
- //search_menu->show();
}
EditorHelp *eh = Object::cast_to<EditorHelp>(current);
-
- if (eh) {
- //edit_menu->hide();
- //search_menu->hide();
- //script_search_menu->show();
- }
}
_update_selected_editor_menu();
@@ -1823,12 +1803,8 @@ void ScriptEditor::save_all_scripts() {
if (script.is_valid())
se->apply_code();
- if (script->get_path() != "" && script->get_path().find("local://") == -1 && script->get_path().find("::") == -1) {
- //external script, save it
-
- editor->save_resource(script);
- //ResourceSaver::save(script->get_path(),script);
- }
+ if (script->get_path() != "" && script->get_path().find("local://") == -1 && script->get_path().find("::") == -1)
+ editor->save_resource(script); //external script, save it
}
_update_script_names();
@@ -1845,6 +1821,11 @@ void ScriptEditor::apply_scripts() const {
}
}
+void ScriptEditor::open_script_create_dialog(const String &p_base_name, const String &p_base_path) {
+ _menu_option(FILE_NEW);
+ script_create_dialog->config(p_base_name, p_base_path);
+}
+
void ScriptEditor::_editor_play() {
debugger->start();
@@ -1881,7 +1862,6 @@ void ScriptEditor::_editor_stop() {
void ScriptEditor::_add_callback(Object *p_obj, const String &p_function, const PoolStringArray &p_args) {
- //print_line("add callback! hohoho"); kinda sad to remove this
ERR_FAIL_COND(!p_obj);
Ref<Script> script = p_obj->get_script();
ERR_FAIL_COND(!script.is_valid());
@@ -1976,8 +1956,6 @@ void ScriptEditor::_script_split_dragged(float) {
Variant ScriptEditor::get_drag_data_fw(const Point2 &p_point, Control *p_from) {
- // return Variant(); // return this if drag disabled
-
Node *cur_node = tab_container->get_child(tab_container->get_current_tab());
HBoxContainer *drag_preview = memnew(HBoxContainer);
@@ -2197,9 +2175,6 @@ void ScriptEditor::_make_script_list_context_menu() {
}
EditorHelp *eh = Object::cast_to<EditorHelp>(tab_container->get_child(selected));
- if (eh) {
- // nothing
- }
context_menu->add_separator();
context_menu->add_shortcut(ED_GET_SHORTCUT("script_editor/window_move_up"), WINDOW_MOVE_UP);
@@ -2542,12 +2517,13 @@ void ScriptEditor::_bind_methods() {
ClassDB::bind_method("_script_changed", &ScriptEditor::_script_changed);
ClassDB::bind_method("_update_recent_scripts", &ScriptEditor::_update_recent_scripts);
- ClassDB::bind_method(D_METHOD("get_drag_data_fw"), &ScriptEditor::get_drag_data_fw);
- ClassDB::bind_method(D_METHOD("can_drop_data_fw"), &ScriptEditor::can_drop_data_fw);
- ClassDB::bind_method(D_METHOD("drop_data_fw"), &ScriptEditor::drop_data_fw);
+ ClassDB::bind_method(D_METHOD("get_drag_data_fw", "point", "from"), &ScriptEditor::get_drag_data_fw);
+ ClassDB::bind_method(D_METHOD("can_drop_data_fw", "point", "data", "from"), &ScriptEditor::can_drop_data_fw);
+ ClassDB::bind_method(D_METHOD("drop_data_fw", "point", "data", "from"), &ScriptEditor::drop_data_fw);
ClassDB::bind_method(D_METHOD("get_current_script"), &ScriptEditor::_get_current_script);
ClassDB::bind_method(D_METHOD("get_open_scripts"), &ScriptEditor::_get_open_scripts);
+ ClassDB::bind_method(D_METHOD("open_script_create_dialog", "base_name", "base_path"), &ScriptEditor::open_script_create_dialog);
ADD_SIGNAL(MethodInfo("editor_script_changed", PropertyInfo(Variant::OBJECT, "script", PROPERTY_HINT_RESOURCE_TYPE, "Script")));
ADD_SIGNAL(MethodInfo("script_close", PropertyInfo(Variant::OBJECT, "script", PROPERTY_HINT_RESOURCE_TYPE, "Script")));
@@ -2582,10 +2558,9 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
script_list = memnew(ItemList);
list_split->add_child(script_list);
- script_list->set_custom_minimum_size(Size2(150 * EDSCALE, 100)); //need to give a bit of limit to avoid it from disappearing
+ script_list->set_custom_minimum_size(Size2(150 * EDSCALE, 90)); //need to give a bit of limit to avoid it from disappearing
script_list->set_v_size_flags(SIZE_EXPAND_FILL);
script_split->set_split_offset(140);
- //list_split->set_split_offset(500);
_sort_list_on_update = true;
script_list->connect("gui_input", this, "_script_list_gui_input");
script_list->set_allow_rmb_select(true);
@@ -2597,18 +2572,18 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
members_overview = memnew(ItemList);
list_split->add_child(members_overview);
- members_overview->set_custom_minimum_size(Size2(0, 100)); //need to give a bit of limit to avoid it from disappearing
+ members_overview->set_custom_minimum_size(Size2(0, 90)); //need to give a bit of limit to avoid it from disappearing
members_overview->set_v_size_flags(SIZE_EXPAND_FILL);
help_overview = memnew(ItemList);
list_split->add_child(help_overview);
- help_overview->set_custom_minimum_size(Size2(0, 100)); //need to give a bit of limit to avoid it from disappearing
+ help_overview->set_custom_minimum_size(Size2(0, 90)); //need to give a bit of limit to avoid it from disappearing
help_overview->set_v_size_flags(SIZE_EXPAND_FILL);
tab_container = memnew(TabContainer);
tab_container->set_tabs_visible(false);
+ tab_container->set_custom_minimum_size(Size2(200 * EDSCALE, 0));
script_split->add_child(tab_container);
-
tab_container->set_h_size_flags(SIZE_EXPAND_FILL);
ED_SHORTCUT("script_editor/window_sort", TTR("Sort"));
@@ -2756,7 +2731,6 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
{
VBoxContainer *vbc = memnew(VBoxContainer);
disk_changed->add_child(vbc);
- //disk_changed->set_child_rect(vbc);
Label *dl = memnew(Label);
dl->set_text(TTR("The following files are newer on disk.\nWhat action should be taken?:"));
diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h
index ffd42d18ca..9d5c110dec 100644
--- a/editor/plugins/script_editor_plugin.h
+++ b/editor/plugins/script_editor_plugin.h
@@ -360,6 +360,7 @@ public:
void ensure_focus_current();
void apply_scripts() const;
+ void open_script_create_dialog(const String &p_base_name, const String &p_base_path);
void ensure_select_current();
diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp
index 95f2739927..3c9cd74aa1 100644
--- a/editor/plugins/script_text_editor.cpp
+++ b/editor/plugins/script_text_editor.cpp
@@ -537,10 +537,6 @@ void ScriptTextEditor::set_edit_state(const Variant &p_state) {
code_editor->get_text_edit()->cursor_set_line(state["row"]);
code_editor->get_text_edit()->set_v_scroll(state["scroll_position"]);
code_editor->get_text_edit()->grab_focus();
-
- //int scroll_pos;
- //int cursor_column;
- //int cursor_row;
}
String ScriptTextEditor::get_name() {
@@ -924,26 +920,7 @@ void ScriptTextEditor::_edit_option(int p_op) {
if (scr.is_null())
return;
- tx->begin_complex_operation();
- if (tx->is_selection_active()) {
- tx->indent_selection_left();
- } else {
- int begin = tx->cursor_get_line();
- String line_text = tx->get_line(begin);
- // begins with tab
- if (line_text.begins_with("\t")) {
- line_text = line_text.substr(1, line_text.length());
- tx->set_line(begin, line_text);
- }
- // begins with 4 spaces
- else if (line_text.begins_with(" ")) {
- line_text = line_text.substr(4, line_text.length());
- tx->set_line(begin, line_text);
- }
- }
- tx->end_complex_operation();
- tx->update();
- //tx->deselect();
+ tx->indent_left();
} break;
case EDIT_INDENT_RIGHT: {
@@ -951,18 +928,7 @@ void ScriptTextEditor::_edit_option(int p_op) {
if (scr.is_null())
return;
- tx->begin_complex_operation();
- if (tx->is_selection_active()) {
- tx->indent_selection_right();
- } else {
- int begin = tx->cursor_get_line();
- String line_text = tx->get_line(begin);
- line_text = '\t' + line_text;
- tx->set_line(begin, line_text);
- }
- tx->end_complex_operation();
- tx->update();
- //tx->deselect();
+ tx->indent_right();
} break;
case EDIT_DELETE_LINE: {
@@ -1430,48 +1396,70 @@ void ScriptTextEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) {
if (mb.is_valid()) {
- if (mb->get_button_index() == BUTTON_RIGHT && !mb->is_pressed()) {
+ if (mb->get_button_index() == BUTTON_RIGHT) {
int col, row;
TextEdit *tx = code_editor->get_text_edit();
tx->_get_mouse_pos(mb->get_global_position() - tx->get_global_position(), row, col);
Vector2 mpos = mb->get_global_position() - tx->get_global_position();
- bool have_selection = (tx->get_selection_text().length() > 0);
- bool have_color = (tx->get_word_at_pos(mpos) == "Color");
+
+ tx->set_right_click_moves_caret(EditorSettings::get_singleton()->get("text_editor/cursor/right_click_moves_caret"));
+ bool has_color = (tx->get_word_at_pos(mpos) == "Color");
int fold_state = 0;
bool can_fold = tx->can_fold(row);
bool is_folded = tx->is_folded(row);
- if (have_color) {
-
- String line = tx->get_line(row);
- color_line = row;
- int begin = 0;
- int end = 0;
- bool valid = false;
- for (int i = col; i < line.length(); i++) {
- if (line[i] == '(') {
- begin = i;
- continue;
- } else if (line[i] == ')') {
- end = i + 1;
- valid = true;
- break;
+
+ if (tx->is_right_click_moving_caret()) {
+ if (tx->is_selection_active()) {
+
+ int from_line = tx->get_selection_from_line();
+ int to_line = tx->get_selection_to_line();
+ int from_column = tx->get_selection_from_column();
+ int to_column = tx->get_selection_to_column();
+
+ if (row < from_line || row > to_line || (row == from_line && col < from_column) || (row == to_line && col > to_column)) {
+ // Right click is outside the seleted text
+ tx->deselect();
}
}
- if (valid) {
- color_args = line.substr(begin, end - begin);
- String stripped = color_args.replace(" ", "").replace("(", "").replace(")", "");
- Vector<float> color = stripped.split_floats(",");
- if (color.size() > 2) {
- float alpha = color.size() > 3 ? color[3] : 1.0f;
- color_picker->set_pick_color(Color(color[0], color[1], color[2], alpha));
+ if (!tx->is_selection_active()) {
+ tx->cursor_set_line(row, true, false);
+ tx->cursor_set_column(col);
+ }
+ }
+
+ if (!mb->is_pressed()) {
+ if (has_color) {
+ String line = tx->get_line(row);
+ color_line = row;
+ int begin = 0;
+ int end = 0;
+ bool valid = false;
+ for (int i = col; i < line.length(); i++) {
+ if (line[i] == '(') {
+ begin = i;
+ continue;
+ } else if (line[i] == ')') {
+ end = i + 1;
+ valid = true;
+ break;
+ }
+ }
+ if (valid) {
+ color_args = line.substr(begin, end - begin);
+ String stripped = color_args.replace(" ", "").replace("(", "").replace(")", "");
+ Vector<float> color = stripped.split_floats(",");
+ if (color.size() > 2) {
+ float alpha = color.size() > 3 ? color[3] : 1.0f;
+ color_picker->set_pick_color(Color(color[0], color[1], color[2], alpha));
+ }
+ color_panel->set_position(get_global_transform().xform(get_local_mouse_position()));
+ } else {
+ has_color = false;
}
- color_panel->set_position(get_global_transform().xform(get_local_mouse_position()));
- } else {
- have_color = false;
}
+ _make_context_menu(tx->is_selection_active(), has_color, can_fold, is_folded);
}
- _make_context_menu(have_selection, have_color, can_fold, is_folded);
}
}
}
@@ -1503,14 +1491,15 @@ void ScriptTextEditor::_make_context_menu(bool p_selection, bool p_color, bool p
context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/select_all"), EDIT_SELECT_ALL);
context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/undo"), EDIT_UNDO);
context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/redo"), EDIT_REDO);
+ context_menu->add_separator();
+ context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_left"), EDIT_INDENT_LEFT);
+ context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_right"), EDIT_INDENT_RIGHT);
+ context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_comment"), EDIT_TOGGLE_COMMENT);
if (p_selection) {
context_menu->add_separator();
context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/convert_to_uppercase"), EDIT_TO_UPPERCASE);
context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/convert_to_lowercase"), EDIT_TO_LOWERCASE);
- context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_left"), EDIT_INDENT_LEFT);
- context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_right"), EDIT_INDENT_RIGHT);
- context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_comment"), EDIT_TOGGLE_COMMENT);
}
if (p_can_fold || p_is_folded)
context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_fold_line"), EDIT_TOGGLE_FOLD_LINE);
diff --git a/editor/plugins/shader_editor_plugin.cpp b/editor/plugins/shader_editor_plugin.cpp
index b390070b4a..d0b0d3690a 100644
--- a/editor/plugins/shader_editor_plugin.cpp
+++ b/editor/plugins/shader_editor_plugin.cpp
@@ -161,7 +161,7 @@ void ShaderTextEditor::_load_theme_settings() {
for (const Map<StringName, ShaderLanguage::FunctionInfo>::Element *E = ShaderTypes::get_singleton()->get_functions(VisualServer::ShaderMode(shader->get_mode())).front(); E; E = E->next()) {
- for (const Map<StringName, ShaderLanguage::DataType>::Element *F = E->get().built_ins.front(); F; F = F->next()) {
+ for (const Map<StringName, ShaderLanguage::BuiltInInfo>::Element *F = E->get().built_ins.front(); F; F = F->next()) {
keywords.push_back(F->key());
}
}
@@ -379,26 +379,7 @@ void ShaderEditor::_menu_option(int p_option) {
if (shader.is_null())
return;
- tx->begin_complex_operation();
- if (tx->is_selection_active()) {
- tx->indent_selection_left();
- } else {
- int begin = tx->cursor_get_line();
- String line_text = tx->get_line(begin);
- // begins with tab
- if (line_text.begins_with("\t")) {
- line_text = line_text.substr(1, line_text.length());
- tx->set_line(begin, line_text);
- }
- // begins with 4 spaces
- else if (line_text.begins_with(" ")) {
- line_text = line_text.substr(4, line_text.length());
- tx->set_line(begin, line_text);
- }
- }
- tx->end_complex_operation();
- tx->update();
- //tx->deselect();
+ tx->indent_left();
} break;
case EDIT_INDENT_RIGHT: {
@@ -407,18 +388,7 @@ void ShaderEditor::_menu_option(int p_option) {
if (shader.is_null())
return;
- tx->begin_complex_operation();
- if (tx->is_selection_active()) {
- tx->indent_selection_right();
- } else {
- int begin = tx->cursor_get_line();
- String line_text = tx->get_line(begin);
- line_text = '\t' + line_text;
- tx->set_line(begin, line_text);
- }
- tx->end_complex_operation();
- tx->update();
- //tx->deselect();
+ tx->indent_right();
} break;
case EDIT_DELETE_LINE: {
@@ -650,14 +620,36 @@ void ShaderEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) {
if (mb.is_valid()) {
- if (mb->get_button_index() == BUTTON_RIGHT && !mb->is_pressed()) {
+ if (mb->get_button_index() == BUTTON_RIGHT) {
int col, row;
TextEdit *tx = shader_editor->get_text_edit();
tx->_get_mouse_pos(mb->get_global_position() - tx->get_global_position(), row, col);
Vector2 mpos = mb->get_global_position() - tx->get_global_position();
- bool have_selection = (tx->get_selection_text().length() > 0);
- _make_context_menu(have_selection);
+ tx->set_right_click_moves_caret(EditorSettings::get_singleton()->get("text_editor/cursor/right_click_moves_caret"));
+
+ if (tx->is_right_click_moving_caret()) {
+ if (tx->is_selection_active()) {
+
+ int from_line = tx->get_selection_from_line();
+ int to_line = tx->get_selection_to_line();
+ int from_column = tx->get_selection_from_column();
+ int to_column = tx->get_selection_to_column();
+
+ if (row < from_line || row > to_line || (row == from_line && col < from_column) || (row == to_line && col > to_column)) {
+ // Right click is outside the seleted text
+ tx->deselect();
+ }
+ }
+ if (!tx->is_selection_active()) {
+ tx->cursor_set_line(row, true, false);
+ tx->cursor_set_column(col);
+ }
+ }
+
+ if (!mb->is_pressed()) {
+ _make_context_menu(tx->is_selection_active());
+ }
}
}
}
diff --git a/editor/plugins/spatial_editor_plugin.cpp b/editor/plugins/spatial_editor_plugin.cpp
index cefc957ebf..b26038fe09 100644
--- a/editor/plugins/spatial_editor_plugin.cpp
+++ b/editor/plugins/spatial_editor_plugin.cpp
@@ -51,7 +51,6 @@
#define GIZMO_ARROW_SIZE 0.35
#define GIZMO_RING_HALF_WIDTH 0.1
-//#define GIZMO_SCALE_DEFAULT 0.28
#define GIZMO_SCALE_DEFAULT 0.15
#define GIZMO_PLANE_SIZE 0.2
#define GIZMO_PLANE_DST 0.3
@@ -94,7 +93,6 @@ void SpatialEditorViewport::_update_camera(float p_interp_delta) {
// We interpolate a different point here, because in freelook mode the focus point (cursor.pos) orbits around eye_pos
camera_cursor.eye_pos = old_camera_cursor.eye_pos.linear_interpolate(cursor.eye_pos, CLAMP(factor, 0, 1));
- //camera_cursor.pos = camera_cursor.eye_pos + (cursor.pos - cursor.eye_pos);
float orbit_inertia = EDITOR_GET("editors/3d/navigation_feel/orbit_inertia");
orbit_inertia = MAX(0.0001, orbit_inertia);
@@ -153,13 +151,13 @@ void SpatialEditorViewport::_update_camera(float p_interp_delta) {
if (!equal || p_interp_delta == 0 || is_freelook_active() || is_orthogonal != orthogonal) {
camera->set_global_transform(to_camera_transform(camera_cursor));
- update_transform_gizmo_view();
- if (orthogonal) {
- //camera->set_orthogonal(size.width*cursor.distance,get_znear(),get_zfar());
+ if (orthogonal)
camera->set_orthogonal(2 * cursor.distance, 0.1, 8192);
- } else
+ else
camera->set_perspective(get_fov(), get_znear(), get_zfar());
+
+ update_transform_gizmo_view();
}
}
@@ -392,9 +390,6 @@ ObjectID SpatialEditorViewport::_select_ray(const Point2 &p_pos, bool p_append,
ERR_PRINT("Bug?");
}
}
-
- // if (editor_selection->is_selected(spat))
- // r_includes_current=true;
}
if (!item)
@@ -561,6 +556,8 @@ void SpatialEditorViewport::_update_name() {
view_menu->set_text("[ " + name + " " + ortho + " ]");
else
view_menu->set_text("[ " + ortho + " ]");
+
+ view_menu->set_size(Vector2(0, 0)); // resets the button size
}
void SpatialEditorViewport::_compute_edit(const Point2 &p_point) {
@@ -812,17 +809,27 @@ bool SpatialEditorViewport::_gizmo_select(const Vector2 &p_screenpos, bool p_hig
return false;
}
-void SpatialEditorViewport::_smouseenter() {
+void SpatialEditorViewport::_surface_mouse_enter() {
if (!surface->has_focus() && (!get_focus_owner() || !get_focus_owner()->is_text_field()))
surface->grab_focus();
}
-void SpatialEditorViewport::_smouseexit() {
+void SpatialEditorViewport::_surface_mouse_exit() {
_remove_preview();
}
+void SpatialEditorViewport::_surface_focus_enter() {
+
+ view_menu->set_disable_shortcuts(false);
+}
+
+void SpatialEditorViewport::_surface_focus_exit() {
+
+ view_menu->set_disable_shortcuts(true);
+}
+
void SpatialEditorViewport::_list_select(Ref<InputEventMouseButton> b) {
_find_items_at_pos(b->get_position(), clicked_includes_current, selection_results, b->get_shift());
@@ -949,7 +956,6 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
if (_edit.mode != TRANSFORM_NONE && b->is_pressed()) {
//cancel motion
_edit.mode = TRANSFORM_NONE;
- //_validate_selection();
List<Node *> &selection = editor_selection->get_selected_node_list();
@@ -966,7 +972,6 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
sp->set_global_transform(se->original);
}
surface->update();
- //VisualServer::get_singleton()->poly_clear(indicators);
set_message(TTR("Transform Aborted."), 3);
}
@@ -1059,7 +1064,6 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
_edit.gizmo = seg;
_edit.gizmo_handle = handle;
- //_edit.gizmo_initial_pos=seg->get_handle_pos(gizmo_handle);
_edit.gizmo_initial_value = seg->get_handle_value(handle);
break;
}
@@ -1134,13 +1138,10 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
_edit.gizmo = seg;
_edit.gizmo_handle = gizmo_handle;
- //_edit.gizmo_initial_pos=seg->get_handle_pos(gizmo_handle);
_edit.gizmo_initial_value = seg->get_handle_value(gizmo_handle);
- //print_line("GIZMO: "+itos(gizmo_handle)+" FROMPOS: "+_edit.orig_gizmo_pos);
break;
}
}
- //_compute_edit(Point2(b.x,b.y)); //in case a motion happens..
}
surface->update();
@@ -1186,7 +1187,6 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
}
undo_redo->commit_action();
_edit.mode = TRANSFORM_NONE;
- //VisualServer::get_singleton()->poly_clear(indicators);
set_message("");
}
@@ -1785,51 +1785,36 @@ void SpatialEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
}
}
if (ED_IS_SHORTCUT("spatial_editor/bottom_view", p_event)) {
- cursor.y_rot = 0;
- cursor.x_rot = -Math_PI / 2.0;
- set_message(TTR("Bottom View."), 2);
- name = TTR("Bottom");
- _update_name();
+ _menu_option(VIEW_BOTTOM);
}
if (ED_IS_SHORTCUT("spatial_editor/top_view", p_event)) {
- cursor.y_rot = 0;
- cursor.x_rot = Math_PI / 2.0;
- set_message(TTR("Top View."), 2);
- name = TTR("Top");
- _update_name();
+ _menu_option(VIEW_TOP);
}
if (ED_IS_SHORTCUT("spatial_editor/rear_view", p_event)) {
- cursor.x_rot = 0;
- cursor.y_rot = Math_PI;
- set_message(TTR("Rear View."), 2);
- name = TTR("Rear");
- _update_name();
+ _menu_option(VIEW_REAR);
}
if (ED_IS_SHORTCUT("spatial_editor/front_view", p_event)) {
- cursor.x_rot = 0;
- cursor.y_rot = 0;
- set_message(TTR("Front View."), 2);
- name = TTR("Front");
- _update_name();
+ _menu_option(VIEW_FRONT);
}
if (ED_IS_SHORTCUT("spatial_editor/left_view", p_event)) {
- cursor.x_rot = 0;
- cursor.y_rot = Math_PI / 2.0;
- set_message(TTR("Left View."), 2);
- name = TTR("Left");
- _update_name();
+ _menu_option(VIEW_LEFT);
}
if (ED_IS_SHORTCUT("spatial_editor/right_view", p_event)) {
- cursor.x_rot = 0;
- cursor.y_rot = -Math_PI / 2.0;
- set_message(TTR("Right View."), 2);
- name = TTR("Right");
- _update_name();
+ _menu_option(VIEW_RIGHT);
+ }
+ if (ED_IS_SHORTCUT("spatial_editor/focus_origin", p_event)) {
+ _menu_option(VIEW_CENTER_TO_ORIGIN);
+ }
+ if (ED_IS_SHORTCUT("spatial_editor/focus_selection", p_event)) {
+ _menu_option(VIEW_CENTER_TO_SELECTION);
}
if (ED_IS_SHORTCUT("spatial_editor/switch_perspective_orthogonal", p_event)) {
_menu_option(orthogonal ? VIEW_PERSPECTIVE : VIEW_ORTHOGONAL);
_update_name();
}
+ if (ED_IS_SHORTCUT("spatial_editor/align_selection_with_view", p_event)) {
+ _menu_option(VIEW_ALIGN_SELECTION_WITH_VIEW);
+ }
if (ED_IS_SHORTCUT("spatial_editor/insert_anim_key", p_event)) {
if (!get_selected_count() || _edit.mode != TRANSFORM_NONE)
return;
@@ -2114,15 +2099,6 @@ void SpatialEditorViewport::_notification(int p_what) {
if (p_what == NOTIFICATION_PROCESS) {
- //force editr camera
- /*
- current_camera=get_root_node()->get_current_camera();
- if (current_camera!=camera) {
-
-
- }
- */
-
real_t delta = get_process_delta_time();
if (zoom_indicator_delay > 0) {
@@ -2219,15 +2195,9 @@ void SpatialEditorViewport::_notification(int p_what) {
viewport->set_hdr(hdr);
bool show_info = view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(VIEW_INFORMATION));
- if (show_info != info->is_visible()) {
- if (show_info)
- info->show();
- else
- info->hide();
- }
+ info_label->set_visible(show_info);
if (show_info) {
-
String text;
text += TTR("Objects Drawn") + ": " + itos(viewport->get_render_info(Viewport::RENDER_INFO_OBJECTS_IN_FRAME)) + "\n";
text += TTR("Material Changes") + ": " + itos(viewport->get_render_info(Viewport::RENDER_INFO_MATERIAL_CHANGES_IN_FRAME)) + "\n";
@@ -2235,48 +2205,31 @@ void SpatialEditorViewport::_notification(int p_what) {
text += TTR("Surface Changes") + ": " + itos(viewport->get_render_info(Viewport::RENDER_INFO_SURFACE_CHANGES_IN_FRAME)) + "\n";
text += TTR("Draw Calls") + ": " + itos(viewport->get_render_info(Viewport::RENDER_INFO_DRAW_CALLS_IN_FRAME)) + "\n";
text += TTR("Vertices") + ": " + itos(viewport->get_render_info(Viewport::RENDER_INFO_VERTICES_IN_FRAME));
-
- if (info_label->get_text() != text || surface->get_size() != prev_size) {
- info_label->set_text(text);
- Size2 ms = info->get_minimum_size();
- info->set_position(surface->get_size() - ms - Vector2(20, 20) * EDSCALE);
- }
+ info_label->set_text(text);
}
// FPS Counter.
bool show_fps = view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(VIEW_FPS));
- if (show_fps != fps->is_visible()) {
- if (show_fps)
- fps->show();
- else
- fps->hide();
- }
+ fps_label->set_visible(show_fps);
if (show_fps) {
String text;
const float temp_fps = Engine::get_singleton()->get_frames_per_second();
text += TTR("FPS") + ": " + itos(temp_fps) + " (" + String::num(1000.0f / temp_fps, 2) + " ms)";
-
- if (fps_label->get_text() != text || surface->get_size() != prev_size) {
- fps_label->set_text(text);
- Size2 ms = fps->get_size();
- Size2 size = surface->get_size();
- size.y = ms.y + 20;
- fps->set_position(size - ms - Vector2(20, 0) * EDSCALE);
- }
+ fps_label->set_text(text);
}
-
- prev_size = surface->get_size();
}
if (p_what == NOTIFICATION_ENTER_TREE) {
surface->connect("draw", this, "_draw");
surface->connect("gui_input", this, "_sinput");
- surface->connect("mouse_entered", this, "_smouseenter");
- surface->connect("mouse_exited", this, "_smouseexit");
- info->add_style_override("panel", get_stylebox("panel", "Panel"));
- fps->add_style_override("panel", get_stylebox("panel", "Panel"));
+ surface->connect("mouse_entered", this, "_surface_mouse_enter");
+ surface->connect("mouse_exited", this, "_surface_mouse_exit");
+ surface->connect("focus_entered", this, "_surface_focus_enter");
+ surface->connect("focus_exited", this, "_surface_focus_exit");
+ info_label->add_style_override("normal", editor->get_gui_base()->get_stylebox("Information3dViewport", "EditorStyles"));
+ fps_label->add_style_override("normal", editor->get_gui_base()->get_stylebox("Information3dViewport", "EditorStyles"));
preview_camera->set_icon(get_icon("Camera", "EditorIcons"));
_init_gizmo_instance(index);
}
@@ -2448,47 +2401,54 @@ void SpatialEditorViewport::_menu_option(int p_option) {
case VIEW_TOP: {
- cursor.x_rot = Math_PI / 2.0;
cursor.y_rot = 0;
+ cursor.x_rot = Math_PI / 2.0;
+ set_message(TTR("Top View."), 2);
name = TTR("Top");
_update_name();
+
} break;
case VIEW_BOTTOM: {
- cursor.x_rot = -Math_PI / 2.0;
cursor.y_rot = 0;
+ cursor.x_rot = -Math_PI / 2.0;
+ set_message(TTR("Bottom View."), 2);
name = TTR("Bottom");
_update_name();
} break;
case VIEW_LEFT: {
- cursor.y_rot = Math_PI / 2.0;
cursor.x_rot = 0;
+ cursor.y_rot = Math_PI / 2.0;
+ set_message(TTR("Left View."), 2);
name = TTR("Left");
_update_name();
} break;
case VIEW_RIGHT: {
- cursor.y_rot = -Math_PI / 2.0;
cursor.x_rot = 0;
+ cursor.y_rot = -Math_PI / 2.0;
+ set_message(TTR("Right View."), 2);
name = TTR("Right");
_update_name();
} break;
case VIEW_FRONT: {
- cursor.y_rot = 0;
cursor.x_rot = 0;
+ cursor.y_rot = 0;
+ set_message(TTR("Front View."), 2);
name = TTR("Front");
_update_name();
} break;
case VIEW_REAR: {
- cursor.y_rot = Math_PI;
cursor.x_rot = 0;
+ cursor.y_rot = Math_PI;
+ set_message(TTR("Rear View."), 2);
name = TTR("Rear");
_update_name();
@@ -2615,6 +2575,11 @@ void SpatialEditorViewport::_menu_option(int p_option) {
bool current = view_menu->get_popup()->is_item_checked(idx);
view_menu->get_popup()->set_item_checked(idx, !current);
+ if (current)
+ preview_camera->set_anchor_and_margin(MARGIN_TOP, ANCHOR_BEGIN, 10 * EDSCALE);
+ else
+ preview_camera->set_anchor_and_margin(MARGIN_TOP, ANCHOR_BEGIN, 15 * EDSCALE + fps_label->get_size().height);
+
} break;
case VIEW_DISPLAY_NORMAL: {
@@ -2666,14 +2631,13 @@ void SpatialEditorViewport::_preview_exited_scene() {
void SpatialEditorViewport::_init_gizmo_instance(int p_idx) {
- uint32_t layer = 1 << (GIZMO_BASE_LAYER + p_idx); //|(1<<GIZMO_GRID_LAYER);
+ uint32_t layer = 1 << (GIZMO_BASE_LAYER + p_idx);
for (int i = 0; i < 3; i++) {
move_gizmo_instance[i] = VS::get_singleton()->instance_create();
VS::get_singleton()->instance_set_base(move_gizmo_instance[i], spatial_editor->get_move_gizmo(i)->get_rid());
VS::get_singleton()->instance_set_scenario(move_gizmo_instance[i], get_tree()->get_root()->get_world()->get_scenario());
VS::get_singleton()->instance_set_visible(move_gizmo_instance[i], false);
- //VS::get_singleton()->instance_geometry_set_flag(move_gizmo_instance[i],VS::INSTANCE_FLAG_DEPH_SCALE,true);
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(move_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF);
VS::get_singleton()->instance_set_layer_mask(move_gizmo_instance[i], layer);
@@ -2681,7 +2645,6 @@ void SpatialEditorViewport::_init_gizmo_instance(int p_idx) {
VS::get_singleton()->instance_set_base(move_plane_gizmo_instance[i], spatial_editor->get_move_plane_gizmo(i)->get_rid());
VS::get_singleton()->instance_set_scenario(move_plane_gizmo_instance[i], get_tree()->get_root()->get_world()->get_scenario());
VS::get_singleton()->instance_set_visible(move_plane_gizmo_instance[i], false);
- //VS::get_singleton()->instance_geometry_set_flag(move_plane_gizmo_instance[i],VS::INSTANCE_FLAG_DEPH_SCALE,true);
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(move_plane_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF);
VS::get_singleton()->instance_set_layer_mask(move_plane_gizmo_instance[i], layer);
@@ -2689,7 +2652,6 @@ void SpatialEditorViewport::_init_gizmo_instance(int p_idx) {
VS::get_singleton()->instance_set_base(rotate_gizmo_instance[i], spatial_editor->get_rotate_gizmo(i)->get_rid());
VS::get_singleton()->instance_set_scenario(rotate_gizmo_instance[i], get_tree()->get_root()->get_world()->get_scenario());
VS::get_singleton()->instance_set_visible(rotate_gizmo_instance[i], false);
- //VS::get_singleton()->instance_geometry_set_flag(rotate_gizmo_instance[i],VS::INSTANCE_FLAG_DEPH_SCALE,true);
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(rotate_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF);
VS::get_singleton()->instance_set_layer_mask(rotate_gizmo_instance[i], layer);
@@ -2697,7 +2659,6 @@ void SpatialEditorViewport::_init_gizmo_instance(int p_idx) {
VS::get_singleton()->instance_set_base(scale_gizmo_instance[i], spatial_editor->get_scale_gizmo(i)->get_rid());
VS::get_singleton()->instance_set_scenario(scale_gizmo_instance[i], get_tree()->get_root()->get_world()->get_scenario());
VS::get_singleton()->instance_set_visible(scale_gizmo_instance[i], false);
- //VS::get_singleton()->instance_geometry_set_flag(scale_gizmo_instance[i],VS::INSTANCE_FLAG_DEPH_SCALE,true);
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(scale_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF);
VS::get_singleton()->instance_set_layer_mask(scale_gizmo_instance[i], layer);
@@ -2705,7 +2666,6 @@ void SpatialEditorViewport::_init_gizmo_instance(int p_idx) {
VS::get_singleton()->instance_set_base(scale_plane_gizmo_instance[i], spatial_editor->get_scale_plane_gizmo(i)->get_rid());
VS::get_singleton()->instance_set_scenario(scale_plane_gizmo_instance[i], get_tree()->get_root()->get_world()->get_scenario());
VS::get_singleton()->instance_set_visible(scale_plane_gizmo_instance[i], false);
- //VS::get_singleton()->instance_geometry_set_flag(scale_plane_gizmo_instance[i],VS::INSTANCE_FLAG_DEPH_SCALE,true);
VS::get_singleton()->instance_geometry_set_cast_shadows_setting(scale_plane_gizmo_instance[i], VS::SHADOW_CASTING_SETTING_OFF);
VS::get_singleton()->instance_set_layer_mask(scale_plane_gizmo_instance[i], layer);
}
@@ -2770,14 +2730,8 @@ void SpatialEditorViewport::set_can_preview(Camera *p_preview) {
preview = p_preview;
- if (!preview_camera->is_pressed()) {
-
- if (p_preview) {
- preview_camera->show();
- } else {
- preview_camera->hide();
- }
- }
+ if (!preview_camera->is_pressed())
+ preview_camera->set_visible(p_preview);
}
void SpatialEditorViewport::update_transform_gizmo_view() {
@@ -2804,8 +2758,6 @@ void SpatialEditorViewport::update_transform_gizmo_view() {
xform.basis.scale(scale);
- //xform.basis.scale(GIZMO_SCALE_DEFAULT*Vector3(1,1,1));
-
for (int i = 0; i < 3; i++) {
VisualServer::get_singleton()->instance_set_transform(move_gizmo_instance[i], xform);
VisualServer::get_singleton()->instance_set_visible(move_gizmo_instance[i], spatial_editor->is_gizmo_visible() && (spatial_editor->get_tool_mode() == SpatialEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode() == SpatialEditor::TOOL_MODE_MOVE));
@@ -2822,18 +2774,36 @@ void SpatialEditorViewport::update_transform_gizmo_view() {
void SpatialEditorViewport::set_state(const Dictionary &p_state) {
- cursor.pos = p_state["position"];
- cursor.x_rot = p_state["x_rotation"];
- cursor.y_rot = p_state["y_rotation"];
- cursor.distance = p_state["distance"];
- bool env = p_state["use_environment"];
- bool orth = p_state["use_orthogonal"];
- if (orth)
- _menu_option(VIEW_ORTHOGONAL);
- else
- _menu_option(VIEW_PERSPECTIVE);
- if (env != camera->get_environment().is_valid())
- _menu_option(VIEW_ENVIRONMENT);
+ if (p_state.has("position"))
+ cursor.pos = p_state["position"];
+ if (p_state.has("x_rotation"))
+ cursor.x_rot = p_state["x_rotation"];
+ if (p_state.has("y_rotation"))
+ cursor.y_rot = p_state["y_rotation"];
+ if (p_state.has("distance"))
+ cursor.distance = p_state["distance"];
+
+ if (p_state.has("use_orthogonal")) {
+ bool orth = p_state["use_orthogonal"];
+
+ if (orth)
+ _menu_option(VIEW_ORTHOGONAL);
+ else
+ _menu_option(VIEW_PERSPECTIVE);
+ }
+ if (p_state.has("display_mode")) {
+ int display = p_state["display_mode"];
+
+ int idx = view_menu->get_popup()->get_item_index(display);
+ if (!view_menu->get_popup()->is_item_checked(idx))
+ _menu_option(display);
+ }
+ if (p_state.has("use_environment")) {
+ bool env = p_state["use_environment"];
+
+ if (env != camera->get_environment().is_valid())
+ _menu_option(VIEW_ENVIRONMENT);
+ }
if (p_state.has("listener")) {
bool listener = p_state["listener"];
@@ -2862,6 +2832,13 @@ void SpatialEditorViewport::set_state(const Dictionary &p_state) {
if (view_menu->get_popup()->is_item_checked(idx) != information)
_menu_option(VIEW_INFORMATION);
}
+ if (p_state.has("fps")) {
+ bool fps = p_state["fps"];
+
+ int idx = view_menu->get_popup()->get_item_index(VIEW_FPS);
+ if (view_menu->get_popup()->is_item_checked(idx) != fps)
+ _menu_option(VIEW_FPS);
+ }
if (p_state.has("half_res")) {
bool half_res = p_state["half_res"];
@@ -2892,14 +2869,22 @@ Dictionary SpatialEditorViewport::get_state() const {
d["distance"] = cursor.distance;
d["use_environment"] = camera->get_environment().is_valid();
d["use_orthogonal"] = camera->get_projection() == Camera::PROJECTION_ORTHOGONAL;
+ if (view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(VIEW_DISPLAY_NORMAL)))
+ d["display_mode"] = VIEW_DISPLAY_NORMAL;
+ else if (view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(VIEW_DISPLAY_WIREFRAME)))
+ d["display_mode"] = VIEW_DISPLAY_WIREFRAME;
+ else if (view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(VIEW_DISPLAY_OVERDRAW)))
+ d["display_mode"] = VIEW_DISPLAY_OVERDRAW;
+ else if (view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(VIEW_DISPLAY_SHADELESS)))
+ d["display_mode"] = VIEW_DISPLAY_SHADELESS;
d["listener"] = viewport->is_audio_listener();
d["doppler"] = view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(VIEW_AUDIO_DOPPLER));
d["gizmos"] = view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(VIEW_GIZMOS));
d["information"] = view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(VIEW_INFORMATION));
+ d["fps"] = view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(VIEW_FPS));
d["half_res"] = viewport_container->get_stretch_shrink() > 1;
- if (previewing) {
+ if (previewing)
d["previewing"] = EditorNode::get_singleton()->get_edited_scene()->get_path_to(previewing);
- }
return d;
}
@@ -2907,8 +2892,11 @@ Dictionary SpatialEditorViewport::get_state() const {
void SpatialEditorViewport::_bind_methods() {
ClassDB::bind_method(D_METHOD("_draw"), &SpatialEditorViewport::_draw);
- ClassDB::bind_method(D_METHOD("_smouseenter"), &SpatialEditorViewport::_smouseenter);
- ClassDB::bind_method(D_METHOD("_smouseexit"), &SpatialEditorViewport::_smouseexit);
+
+ ClassDB::bind_method(D_METHOD("_surface_mouse_enter"), &SpatialEditorViewport::_surface_mouse_enter);
+ ClassDB::bind_method(D_METHOD("_surface_mouse_exit"), &SpatialEditorViewport::_surface_mouse_exit);
+ ClassDB::bind_method(D_METHOD("_surface_focus_enter"), &SpatialEditorViewport::_surface_focus_enter);
+ ClassDB::bind_method(D_METHOD("_surface_focus_exit"), &SpatialEditorViewport::_surface_focus_exit);
ClassDB::bind_method(D_METHOD("_sinput"), &SpatialEditorViewport::_sinput);
ClassDB::bind_method(D_METHOD("_menu_option"), &SpatialEditorViewport::_menu_option);
ClassDB::bind_method(D_METHOD("_toggle_camera_preview"), &SpatialEditorViewport::_toggle_camera_preview);
@@ -3332,7 +3320,6 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed
camera = memnew(Camera);
camera->set_disable_gizmo(true);
camera->set_cull_mask(((1 << 20) - 1) | (1 << (GIZMO_BASE_LAYER + p_index)) | (1 << GIZMO_EDIT_LAYER) | (1 << GIZMO_GRID_LAYER));
- //camera->set_environment(SpatialEditor::get_singleton()->get_viewport_environment());
viewport->add_child(camera);
camera->make_current();
surface->set_focus_mode(FOCUS_ALL);
@@ -3376,6 +3363,8 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed
view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/align_selection_with_view"), VIEW_ALIGN_SELECTION_WITH_VIEW);
view_menu->get_popup()->connect("id_pressed", this, "_menu_option");
+ view_menu->set_disable_shortcuts(true);
+
ED_SHORTCUT("spatial_editor/freelook_left", TTR("Freelook Left"), KEY_A);
ED_SHORTCUT("spatial_editor/freelook_right", TTR("Freelook Right"), KEY_D);
ED_SHORTCUT("spatial_editor/freelook_forward", TTR("Freelook Forward"), KEY_W);
@@ -3390,7 +3379,7 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed
preview_camera->set_anchor_and_margin(MARGIN_TOP, ANCHOR_BEGIN, 10 * EDSCALE);
preview_camera->set_anchor_and_margin(MARGIN_RIGHT, ANCHOR_END, -10 * EDSCALE);
preview_camera->set_h_grow_direction(GROW_DIRECTION_BEGIN);
- preview_camera->set_text(TTR("preview"));
+ preview_camera->set_text(TTR("Preview"));
surface->add_child(preview_camera);
preview_camera->hide();
preview_camera->connect("toggled", this, "_toggle_camera_preview");
@@ -3399,20 +3388,24 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed
preview_node = NULL;
- info = memnew(PanelContainer);
- info->set_self_modulate(Color(1, 1, 1, 0.4));
- surface->add_child(info);
info_label = memnew(Label);
- info->add_child(info_label);
- info->hide();
+ info_label->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_END, -90 * EDSCALE);
+ info_label->set_anchor_and_margin(MARGIN_TOP, ANCHOR_END, -90 * EDSCALE);
+ info_label->set_anchor_and_margin(MARGIN_RIGHT, ANCHOR_END, -10 * EDSCALE);
+ info_label->set_anchor_and_margin(MARGIN_BOTTOM, ANCHOR_END, -10 * EDSCALE);
+ info_label->set_h_grow_direction(GROW_DIRECTION_BEGIN);
+ info_label->set_v_grow_direction(GROW_DIRECTION_BEGIN);
+ surface->add_child(info_label);
+ info_label->hide();
// FPS Counter.
- fps = memnew(PanelContainer);
- fps->set_self_modulate(Color(1, 1, 1, 0.4));
- surface->add_child(fps);
fps_label = memnew(Label);
- fps->add_child(fps_label);
- fps->hide();
+ fps_label->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_END, -90 * EDSCALE);
+ fps_label->set_anchor_and_margin(MARGIN_TOP, ANCHOR_BEGIN, 10 * EDSCALE);
+ fps_label->set_anchor_and_margin(MARGIN_RIGHT, ANCHOR_END, -10 * EDSCALE);
+ fps_label->set_h_grow_direction(GROW_DIRECTION_BEGIN);
+ surface->add_child(fps_label);
+ fps_label->hide();
accept = NULL;
@@ -3790,7 +3783,6 @@ void SpatialEditor::update_transform_gizmo() {
center.expand_to(xf.origin);
gizmo_basis = Basis();
}
- //count++;
}
Vector3 pcenter = center.position + center.size * 0.5;
@@ -3884,8 +3876,7 @@ Dictionary SpatialEditor::get_state() const {
d["rotate_snap"] = get_rotate_snap();
d["scale_snap"] = get_scale_snap();
- int local_coords_index = transform_menu->get_popup()->get_item_index(MENU_TRANSFORM_LOCAL_COORDS);
- d["local_coords"] = transform_menu->get_popup()->is_item_checked(local_coords_index);
+ d["local_coords"] = tool_option_button[TOOL_OPT_LOCAL_COORDS]->is_pressed();
int vc = 0;
if (view_menu->get_popup()->is_item_checked(view_menu->get_popup()->get_item_index(MENU_VIEW_USE_1_VIEWPORT)))
@@ -3923,8 +3914,7 @@ void SpatialEditor::set_state(const Dictionary &p_state) {
if (d.has("snap_enabled")) {
snap_enabled = d["snap_enabled"];
- int snap_enabled_idx = transform_menu->get_popup()->get_item_index(MENU_TRANSFORM_USE_SNAP);
- transform_menu->get_popup()->set_item_checked(snap_enabled_idx, snap_enabled);
+ tool_option_button[TOOL_OPT_LOCAL_COORDS]->set_pressed(d["snap_enabled"]);
}
if (d.has("translate_snap"))
@@ -3937,8 +3927,7 @@ void SpatialEditor::set_state(const Dictionary &p_state) {
snap_scale->set_text(d["scale_snap"]);
if (d.has("local_coords")) {
- int local_coords_idx = transform_menu->get_popup()->get_item_index(MENU_TRANSFORM_LOCAL_COORDS);
- transform_menu->get_popup()->set_item_checked(local_coords_idx, d["local_coords"]);
+ tool_option_button[TOOL_OPT_LOCAL_COORDS]->set_pressed(d["local_coords"]);
update_transform_gizmo();
}
@@ -4016,17 +4005,6 @@ void SpatialEditor::edit(Spatial *p_spatial) {
}
}
}
-
- /*
- if (p_spatial) {
- _validate_selection();
- if (selected.has(p_spatial->get_instance_id()) && selected.size()==1)
- return;
- _select(p_spatial->get_instance_id(),false,true);
-
- // should become the selection
- }
- */
}
void SpatialEditor::_xform_dialog_action() {
@@ -4078,6 +4056,22 @@ void SpatialEditor::_xform_dialog_action() {
undo_redo->commit_action();
}
+void SpatialEditor::_menu_item_toggled(bool pressed, int p_option) {
+
+ switch (p_option) {
+ case MENU_TOOL_LOCAL_COORDS: {
+
+ tool_option_button[TOOL_OPT_LOCAL_COORDS]->set_pressed(pressed);
+ update_transform_gizmo();
+ } break;
+
+ case MENU_TOOL_USE_SNAP: {
+ tool_option_button[TOOL_OPT_USE_SNAP]->set_pressed(pressed);
+ snap_enabled = pressed;
+ } break;
+ }
+}
+
void SpatialEditor::_menu_item_pressed(int p_option) {
switch (p_option) {
@@ -4091,29 +4085,13 @@ void SpatialEditor::_menu_item_pressed(int p_option) {
for (int i = 0; i < TOOL_MAX; i++)
tool_button[i]->set_pressed(i == p_option);
tool_mode = (ToolMode)p_option;
-
- //static const char *_mode[]={"Selection Mode.","Translation Mode.","Rotation Mode.","Scale Mode.","List Selection Mode."};
- //set_message(_mode[p_option],3);
update_transform_gizmo();
} break;
- case MENU_TRANSFORM_USE_SNAP: {
-
- bool is_checked = transform_menu->get_popup()->is_item_checked(transform_menu->get_popup()->get_item_index(p_option));
- snap_enabled = !is_checked;
- transform_menu->get_popup()->set_item_checked(transform_menu->get_popup()->get_item_index(p_option), snap_enabled);
- } break;
case MENU_TRANSFORM_CONFIGURE_SNAP: {
snap_dialog->popup_centered(Size2(200, 180));
} break;
- case MENU_TRANSFORM_LOCAL_COORDS: {
-
- bool is_checked = transform_menu->get_popup()->is_item_checked(transform_menu->get_popup()->get_item_index(p_option));
- transform_menu->get_popup()->set_item_checked(transform_menu->get_popup()->get_item_index(p_option), !is_checked);
- update_transform_gizmo();
-
- } break;
case MENU_TRANSFORM_DIALOG: {
for (int i = 0; i < 3; i++) {
@@ -4370,9 +4348,6 @@ void SpatialEditor::_init_indicators() {
VisualServer::get_singleton()->mesh_add_surface_from_arrays(origin, VisualServer::PRIMITIVE_LINES, d);
VisualServer::get_singleton()->mesh_surface_set_material(origin, 0, indicator_mat->get_rid());
- //origin = VisualServer::get_singleton()->poly_create();
- //VisualServer::get_singleton()->poly_add_primitive(origin,origin_points,Vector<Vector3>(),origin_colors,Vector<Vector3>());
- //VisualServer::get_singleton()->poly_set_material(origin,indicator_mat,true);
origin_instance = VisualServer::get_singleton()->instance_create2(origin, get_tree()->get_root()->get_world()->get_scenario());
VS::get_singleton()->instance_set_layer_mask(origin_instance, 1 << SpatialEditorViewport::GIZMO_GRID_LAYER);
@@ -4657,9 +4632,6 @@ void SpatialEditor::_finish_indicators() {
VisualServer::get_singleton()->free(grid_instance[i]);
VisualServer::get_singleton()->free(grid[i]);
}
- //VisualServer::get_singleton()->free(poly);
- //VisualServer::get_singleton()->free(indicators_instance);
- //VisualServer::get_singleton()->free(indicators);
}
bool SpatialEditor::is_any_freelook_active() const {
@@ -4718,6 +4690,19 @@ void SpatialEditor::_unhandled_key_input(Ref<InputEvent> p_event) {
else if (ED_IS_SHORTCUT("spatial_editor/tool_scale", p_event))
_menu_item_pressed(MENU_TOOL_SCALE);
+
+ else if (ED_IS_SHORTCUT("spatial_editor/local_coords", p_event))
+ if (are_local_coords_enabled()) {
+ _menu_item_toggled(false, MENU_TOOL_LOCAL_COORDS);
+ } else {
+ _menu_item_toggled(true, MENU_TOOL_LOCAL_COORDS);
+ }
+ else if (ED_IS_SHORTCUT("spatial_editor/snap", p_event))
+ if (is_snap_enabled()) {
+ _menu_item_toggled(false, MENU_TOOL_USE_SNAP);
+ } else {
+ _menu_item_toggled(true, MENU_TOOL_USE_SNAP);
+ }
}
}
}
@@ -4733,6 +4718,9 @@ void SpatialEditor::_notification(int p_what) {
tool_button[SpatialEditor::TOOL_LOCK_SELECTED]->set_icon(get_icon("Lock", "EditorIcons"));
tool_button[SpatialEditor::TOOL_UNLOCK_SELECTED]->set_icon(get_icon("Unlock", "EditorIcons"));
+ tool_option_button[SpatialEditor::TOOL_OPT_LOCAL_COORDS]->set_icon(get_icon("Object", "EditorIcons"));
+ tool_option_button[SpatialEditor::TOOL_OPT_USE_SNAP]->set_icon(get_icon("Snap", "EditorIcons"));
+
view_menu->get_popup()->set_item_icon(view_menu->get_popup()->get_item_index(MENU_VIEW_USE_1_VIEWPORT), get_icon("Panels1", "EditorIcons"));
view_menu->get_popup()->set_item_icon(view_menu->get_popup()->get_item_index(MENU_VIEW_USE_2_VIEWPORTS), get_icon("Panels2", "EditorIcons"));
view_menu->get_popup()->set_item_icon(view_menu->get_popup()->get_item_index(MENU_VIEW_USE_2_VIEWPORTS_ALT), get_icon("Panels2Alt", "EditorIcons"));
@@ -4768,6 +4756,9 @@ void SpatialEditor::_notification(int p_what) {
tool_button[SpatialEditor::TOOL_MODE_SCALE]->set_icon(get_icon("ToolScale", "EditorIcons"));
tool_button[SpatialEditor::TOOL_MODE_LIST_SELECT]->set_icon(get_icon("ListSelect", "EditorIcons"));
+ tool_option_button[SpatialEditor::TOOL_OPT_LOCAL_COORDS]->set_icon(get_icon("Object", "EditorIcons"));
+ tool_option_button[SpatialEditor::TOOL_OPT_USE_SNAP]->set_icon(get_icon("Snap", "EditorIcons"));
+
view_menu->get_popup()->set_item_icon(view_menu->get_popup()->get_item_index(MENU_VIEW_USE_1_VIEWPORT), get_icon("Panels1", "EditorIcons"));
view_menu->get_popup()->set_item_icon(view_menu->get_popup()->get_item_index(MENU_VIEW_USE_2_VIEWPORTS), get_icon("Panels2", "EditorIcons"));
view_menu->get_popup()->set_item_icon(view_menu->get_popup()->get_item_index(MENU_VIEW_USE_2_VIEWPORTS_ALT), get_icon("Panels2Alt", "EditorIcons"));
@@ -4882,10 +4873,10 @@ void SpatialEditor::_node_removed(Node *p_node) {
void SpatialEditor::_bind_methods() {
- //ClassDB::bind_method("_gui_input",&SpatialEditor::_gui_input);
ClassDB::bind_method("_unhandled_key_input", &SpatialEditor::_unhandled_key_input);
ClassDB::bind_method("_node_removed", &SpatialEditor::_node_removed);
ClassDB::bind_method("_menu_item_pressed", &SpatialEditor::_menu_item_pressed);
+ ClassDB::bind_method("_menu_item_toggled", &SpatialEditor::_menu_item_toggled);
ClassDB::bind_method("_xform_dialog_action", &SpatialEditor::_xform_dialog_action);
ClassDB::bind_method("_get_editor_data", &SpatialEditor::_get_editor_data);
ClassDB::bind_method("_request_gizmo", &SpatialEditor::_request_gizmo);
@@ -4942,13 +4933,12 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
snap_enabled = false;
tool_mode = TOOL_MODE_SELECT;
- //set_focus_mode(FOCUS_ALL);
-
hbc_menu = memnew(HBoxContainer);
vbc->add_child(hbc_menu);
Vector<Variant> button_binds;
button_binds.resize(1);
+ String sct;
tool_button[TOOL_MODE_SELECT] = memnew(ToolButton);
hbc_menu->add_child(tool_button[TOOL_MODE_SELECT]);
@@ -4960,7 +4950,6 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
tool_button[TOOL_MODE_SELECT]->set_tooltip(TTR("Select Mode (Q)\n") + keycode_get_string(KEY_MASK_CMD) + TTR("Drag: Rotate\nAlt+Drag: Move\nAlt+RMB: Depth list selection"));
tool_button[TOOL_MODE_MOVE] = memnew(ToolButton);
-
hbc_menu->add_child(tool_button[TOOL_MODE_MOVE]);
tool_button[TOOL_MODE_MOVE]->set_toggle_mode(true);
tool_button[TOOL_MODE_MOVE]->set_flat(true);
@@ -4984,9 +4973,6 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
tool_button[TOOL_MODE_SCALE]->connect("pressed", this, "_menu_item_pressed", button_binds);
tool_button[TOOL_MODE_SCALE]->set_tooltip(TTR("Scale Mode (R)"));
- VSeparator *vs = memnew(VSeparator);
- hbc_menu->add_child(vs);
-
tool_button[TOOL_MODE_LIST_SELECT] = memnew(ToolButton);
hbc_menu->add_child(tool_button[TOOL_MODE_LIST_SELECT]);
tool_button[TOOL_MODE_LIST_SELECT]->set_toggle_mode(true);
@@ -5007,6 +4993,29 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
tool_button[TOOL_UNLOCK_SELECTED]->connect("pressed", this, "_menu_item_pressed", button_binds);
tool_button[TOOL_UNLOCK_SELECTED]->set_tooltip(TTR("Unlock the selected object (can be moved)."));
+ VSeparator *vs = memnew(VSeparator);
+ hbc_menu->add_child(vs);
+
+ tool_option_button[TOOL_OPT_LOCAL_COORDS] = memnew(ToolButton);
+ hbc_menu->add_child(tool_option_button[TOOL_OPT_LOCAL_COORDS]);
+ tool_option_button[TOOL_OPT_LOCAL_COORDS]->set_toggle_mode(true);
+ tool_option_button[TOOL_OPT_LOCAL_COORDS]->set_flat(true);
+ button_binds[0] = MENU_TOOL_LOCAL_COORDS;
+ tool_option_button[TOOL_OPT_LOCAL_COORDS]->connect("toggled", this, "_menu_item_toggled", button_binds);
+ ED_SHORTCUT("spatial_editor/local_coords", TTR("Local Coords"), KEY_T);
+ sct = ED_GET_SHORTCUT("spatial_editor/local_coords").ptr()->get_as_text();
+ tool_option_button[TOOL_OPT_LOCAL_COORDS]->set_tooltip(vformat(TTR("Local Space Mode (%s)"), sct));
+
+ tool_option_button[TOOL_OPT_USE_SNAP] = memnew(ToolButton);
+ hbc_menu->add_child(tool_option_button[TOOL_OPT_USE_SNAP]);
+ tool_option_button[TOOL_OPT_USE_SNAP]->set_toggle_mode(true);
+ tool_option_button[TOOL_OPT_USE_SNAP]->set_flat(true);
+ button_binds[0] = MENU_TOOL_USE_SNAP;
+ tool_option_button[TOOL_OPT_USE_SNAP]->connect("toggled", this, "_menu_item_toggled", button_binds);
+ ED_SHORTCUT("spatial_editor/snap", TTR("Snap"), KEY_Y);
+ sct = ED_GET_SHORTCUT("spatial_editor/snap").ptr()->get_as_text();
+ tool_option_button[TOOL_OPT_USE_SNAP]->set_tooltip(vformat(TTR("Snap Mode (%s)"), sct));
+
vs = memnew(VSeparator);
hbc_menu->add_child(vs);
@@ -5021,7 +5030,6 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
ED_SHORTCUT("spatial_editor/left_view", TTR("Left View"), KEY_MASK_ALT + KEY_KP_3);
ED_SHORTCUT("spatial_editor/right_view", TTR("Right View"), KEY_KP_3);
ED_SHORTCUT("spatial_editor/switch_perspective_orthogonal", TTR("Switch Perspective/Orthogonal view"), KEY_KP_5);
- ED_SHORTCUT("spatial_editor/snap", TTR("Snap"), KEY_S);
ED_SHORTCUT("spatial_editor/insert_anim_key", TTR("Insert Animation Key"), KEY_K);
ED_SHORTCUT("spatial_editor/focus_origin", TTR("Focus Origin"), KEY_O);
ED_SHORTCUT("spatial_editor/focus_selection", TTR("Focus Selection"), KEY_F);
@@ -5043,12 +5051,8 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
hbc_menu->add_child(transform_menu);
p = transform_menu->get_popup();
- p->add_check_shortcut(ED_SHORTCUT("spatial_editor/use_snap", TTR("Use Snap")), MENU_TRANSFORM_USE_SNAP);
p->add_shortcut(ED_SHORTCUT("spatial_editor/configure_snap", TTR("Configure Snap..")), MENU_TRANSFORM_CONFIGURE_SNAP);
p->add_separator();
- p->add_check_shortcut(ED_SHORTCUT("spatial_editor/local_coords", TTR("Local Coords")), MENU_TRANSFORM_LOCAL_COORDS);
- //p->set_item_checked(p->get_item_count()-1,true);
- p->add_separator();
p->add_shortcut(ED_SHORTCUT("spatial_editor/transform_dialog", TTR("Transform Dialog..")), MENU_TRANSFORM_DIALOG);
p->connect("id_pressed", this, "_menu_item_pressed");
@@ -5103,7 +5107,6 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
viewports[i]->assign_pending_data_pointers(preview_node, &preview_bounds, accept);
viewport_base->add_child(viewports[i]);
}
- //vbc->add_child(viewport_base);
/* SNAP DIALOG */
@@ -5113,7 +5116,6 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
VBoxContainer *snap_dialog_vbc = memnew(VBoxContainer);
snap_dialog->add_child(snap_dialog_vbc);
- //snap_dialog->set_child_rect(snap_dialog_vbc);
snap_translate = memnew(LineEdit);
snap_translate->set_text("1");
@@ -5135,7 +5137,6 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
settings_vbc = memnew(VBoxContainer);
settings_vbc->set_custom_minimum_size(Size2(200, 0) * EDSCALE);
settings_dialog->add_child(settings_vbc);
- //settings_dialog->set_child_rect(settings_vbc);
settings_fov = memnew(SpinBox);
settings_fov->set_max(MAX_FOV);
@@ -5158,7 +5159,6 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
settings_zfar->set_value(EDITOR_DEF("editors/3d/default_z_far", 1500));
settings_vbc->add_margin_child(TTR("View Z-Far:"), settings_zfar);
- //settings_dialog->get_cancel()->hide();
/* XFORM DIALOG */
xform_dialog = memnew(ConfirmationDialog);
@@ -5244,14 +5244,12 @@ void SpatialEditorPlugin::make_visible(bool p_visible) {
spatial_editor->show();
spatial_editor->set_process(true);
- //VisualServer::get_singleton()->viewport_set_hide_scenario(editor->get_scene_root()->get_viewport(),false);
spatial_editor->grab_focus();
} else {
spatial_editor->hide();
spatial_editor->set_process(false);
- //VisualServer::get_singleton()->viewport_set_hide_scenario(editor->get_scene_root()->get_viewport(),true);
}
}
void SpatialEditorPlugin::edit(Object *p_object) {
@@ -5304,11 +5302,8 @@ SpatialEditorPlugin::SpatialEditorPlugin(EditorNode *p_node) {
spatial_editor->set_v_size_flags(Control::SIZE_EXPAND_FILL);
editor->get_viewport()->add_child(spatial_editor);
- //spatial_editor->set_anchors_and_margins_preset(Control::PRESET_WIDE);
spatial_editor->hide();
spatial_editor->connect("transform_key_request", editor, "_transform_keyed");
-
- //spatial_editor->set_process(true);
}
SpatialEditorPlugin::~SpatialEditorPlugin() {
diff --git a/editor/plugins/spatial_editor_plugin.h b/editor/plugins/spatial_editor_plugin.h
index 8369a5de54..d080745dc9 100644
--- a/editor/plugins/spatial_editor_plugin.h
+++ b/editor/plugins/spatial_editor_plugin.h
@@ -106,7 +106,6 @@ private:
int index;
String name;
void _menu_option(int p_option);
- Size2 prev_size;
Spatial *preview_node;
AABB *preview_bounds;
@@ -136,10 +135,7 @@ private:
bool freelook_active;
real_t freelook_speed;
- PanelContainer *info;
Label *info_label;
-
- PanelContainer *fps;
Label *fps_label;
struct _RayResult {
@@ -277,8 +273,11 @@ private:
Transform to_camera_transform(const Cursor &p_cursor) const;
void _draw();
- void _smouseenter();
- void _smouseexit();
+ void _surface_mouse_enter();
+ void _surface_mouse_exit();
+ void _surface_focus_enter();
+ void _surface_focus_exit();
+
void _sinput(const Ref<InputEvent> &p_event);
void _update_freelook(real_t delta);
SpatialEditor *spatial_editor;
@@ -405,6 +404,14 @@ public:
};
+ enum ToolOptions {
+
+ TOOL_OPT_LOCAL_COORDS,
+ TOOL_OPT_USE_SNAP,
+ TOOL_OPT_MAX
+
+ };
+
private:
EditorNode *editor;
EditorSelection *editor_selection;
@@ -449,17 +456,6 @@ private:
Spatial *preview_node;
AABB preview_bounds;
- /*
- struct Selected {
- AABB aabb;
- Transform original; // original location when moving
- Transform last_xform; // last transform
- Spatial *sp;
- RID poly_instance;
- };
-
- Map<uint32_t,Selected> selected;
-*/
struct Gizmo {
bool visible;
@@ -474,9 +470,9 @@ private:
MENU_TOOL_ROTATE,
MENU_TOOL_SCALE,
MENU_TOOL_LIST_SELECT,
- MENU_TRANSFORM_USE_SNAP,
+ MENU_TOOL_LOCAL_COORDS,
+ MENU_TOOL_USE_SNAP,
MENU_TRANSFORM_CONFIGURE_SNAP,
- MENU_TRANSFORM_LOCAL_COORDS,
MENU_TRANSFORM_DIALOG,
MENU_VIEW_USE_1_VIEWPORT,
MENU_VIEW_USE_2_VIEWPORTS,
@@ -493,6 +489,7 @@ private:
};
Button *tool_button[TOOL_MAX];
+ Button *tool_option_button[TOOL_OPT_MAX];
MenuButton *transform_menu;
MenuButton *view_menu;
@@ -524,11 +521,10 @@ private:
void _xform_dialog_action();
void _menu_item_pressed(int p_option);
+ void _menu_item_toggled(bool pressed, int p_option);
HBoxContainer *hbc_menu;
- //
- //
void _generate_selection_box();
UndoRedo *undo_redo;
@@ -579,13 +575,12 @@ public:
bool is_gizmo_visible() const { return gizmo.visible; }
ToolMode get_tool_mode() const { return tool_mode; }
+ bool are_local_coords_enabled() const { return tool_option_button[SpatialEditor::TOOL_OPT_LOCAL_COORDS]->is_pressed(); }
bool is_snap_enabled() const { return snap_enabled; }
float get_translate_snap() const { return snap_translate->get_text().to_double(); }
float get_rotate_snap() const { return snap_rotate->get_text().to_double(); }
float get_scale_snap() const { return snap_scale->get_text().to_double(); }
- bool are_local_coords_enabled() const { return transform_menu->get_popup()->is_item_checked(transform_menu->get_popup()->get_item_index(SpatialEditor::MENU_TRANSFORM_LOCAL_COORDS)); }
-
Ref<ArrayMesh> get_move_gizmo(int idx) const { return move_gizmo[idx]; }
Ref<ArrayMesh> get_move_plane_gizmo(int idx) const { return move_plane_gizmo[idx]; }
Ref<ArrayMesh> get_rotate_gizmo(int idx) const { return rotate_gizmo[idx]; }
diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp
index 175655119f..71c81f7111 100644
--- a/editor/plugins/sprite_frames_editor_plugin.cpp
+++ b/editor/plugins/sprite_frames_editor_plugin.cpp
@@ -840,7 +840,7 @@ SpriteFramesEditorPlugin::SpriteFramesEditorPlugin(EditorNode *p_node) {
editor = p_node;
frames_editor = memnew(SpriteFramesEditor);
frames_editor->set_custom_minimum_size(Size2(0, 300) * EDSCALE);
- button = editor->add_bottom_panel_item("SpriteFrames", frames_editor);
+ button = editor->add_bottom_panel_item(TTR("SpriteFrames"), frames_editor);
button->hide();
}
diff --git a/editor/plugins/style_box_editor_plugin.cpp b/editor/plugins/style_box_editor_plugin.cpp
index 5c965e4a05..9840d9021c 100644
--- a/editor/plugins/style_box_editor_plugin.cpp
+++ b/editor/plugins/style_box_editor_plugin.cpp
@@ -103,6 +103,6 @@ StyleBoxEditorPlugin::StyleBoxEditorPlugin(EditorNode *p_node) {
stylebox_editor->set_custom_minimum_size(Size2(0, 250));
//p_node->get_viewport()->add_child(stylebox_editor);
- button = p_node->add_bottom_panel_item("StyleBox", stylebox_editor);
+ button = p_node->add_bottom_panel_item(TTR("StyleBox"), stylebox_editor);
button->hide();
}
diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp
index 7f956b01ff..38a4bfbfc6 100644
--- a/editor/plugins/theme_editor_plugin.cpp
+++ b/editor/plugins/theme_editor_plugin.cpp
@@ -934,6 +934,6 @@ ThemeEditorPlugin::ThemeEditorPlugin(EditorNode *p_node) {
theme_editor->set_custom_minimum_size(Size2(0, 200));
//p_node->get_viewport()->add_child(theme_editor);
- button = editor->add_bottom_panel_item("Theme", theme_editor);
+ button = editor->add_bottom_panel_item(TTR("Theme"), theme_editor);
button->hide();
}
diff --git a/editor/plugins/tile_set_editor_plugin.cpp b/editor/plugins/tile_set_editor_plugin.cpp
index ae726b69ef..b56585f62c 100644
--- a/editor/plugins/tile_set_editor_plugin.cpp
+++ b/editor/plugins/tile_set_editor_plugin.cpp
@@ -314,7 +314,7 @@ TileSetEditorPlugin::TileSetEditorPlugin(EditorNode *p_node) {
autotile_editor->side_panel->set_anchors_and_margins_preset(Control::PRESET_WIDE);
autotile_editor->side_panel->set_custom_minimum_size(Size2(200, 0));
autotile_editor->side_panel->hide();
- autotile_button = p_node->add_bottom_panel_item("Autotiles", autotile_editor);
+ autotile_button = p_node->add_bottom_panel_item(TTR("Autotiles"), autotile_editor);
autotile_button->hide();
}
@@ -387,7 +387,7 @@ AutotileEditor::AutotileEditor(EditorNode *p_editor) {
tools[TOOL_SELECT] = memnew(ToolButton);
tool_containers[TOOLBAR_DUMMY]->add_child(tools[TOOL_SELECT]);
- tools[TOOL_SELECT]->set_tooltip("Select sub-tile to use as icon, this will be also used on invalid autotile bindings.");
+ tools[TOOL_SELECT]->set_tooltip(TTR("Select sub-tile to use as icon, this will be also used on invalid autotile bindings."));
tools[TOOL_SELECT]->set_toggle_mode(true);
tools[TOOL_SELECT]->set_button_group(tg);
tools[TOOL_SELECT]->set_pressed(true);
@@ -533,7 +533,7 @@ void AutotileEditor::_on_edit_mode_changed(int p_edit_mode) {
tool_containers[TOOLBAR_BITMASK]->show();
tool_containers[TOOLBAR_SHAPE]->hide();
tools[TOOL_SELECT]->set_pressed(true);
- tools[TOOL_SELECT]->set_tooltip("LMB: set bit on.\nRMB: set bit off.");
+ tools[TOOL_SELECT]->set_tooltip(TTR("LMB: set bit on.\nRMB: set bit off."));
spin_priority->hide();
} break;
case EDITMODE_COLLISION:
@@ -542,7 +542,7 @@ void AutotileEditor::_on_edit_mode_changed(int p_edit_mode) {
tool_containers[TOOLBAR_DUMMY]->show();
tool_containers[TOOLBAR_BITMASK]->hide();
tool_containers[TOOLBAR_SHAPE]->show();
- tools[TOOL_SELECT]->set_tooltip("Select current edited sub-tile.");
+ tools[TOOL_SELECT]->set_tooltip(TTR("Select current edited sub-tile."));
spin_priority->hide();
} break;
default: {
@@ -550,10 +550,10 @@ void AutotileEditor::_on_edit_mode_changed(int p_edit_mode) {
tool_containers[TOOLBAR_BITMASK]->hide();
tool_containers[TOOLBAR_SHAPE]->hide();
if (edit_mode == EDITMODE_ICON) {
- tools[TOOL_SELECT]->set_tooltip("Select sub-tile to use as icon, this will be also used on invalid autotile bindings.");
+ tools[TOOL_SELECT]->set_tooltip(TTR("Select sub-tile to use as icon, this will be also used on invalid autotile bindings."));
spin_priority->hide();
} else {
- tools[TOOL_SELECT]->set_tooltip("Select sub-tile to change it's priority.");
+ tools[TOOL_SELECT]->set_tooltip(TTR("Select sub-tile to change it's priority."));
spin_priority->show();
}
} break;
@@ -1435,13 +1435,13 @@ bool AutotileEditorHelper::_get(const StringName &p_name, Variant &r_ret) const
return false;
String name = p_name.operator String();
+ bool v = false;
if (name == "bitmask_mode") {
- r_ret = tile_set->get(String::num(autotile_editor->get_current_tile(), 0) + "/autotile/bitmask_mode");
+ r_ret = tile_set->get(String::num(autotile_editor->get_current_tile(), 0) + "/autotile/bitmask_mode", &v);
} else if (name.left(7) == "layout/") {
- bool v;
r_ret = tile_set->get(String::num(autotile_editor->get_current_tile(), 0) + "/autotile" + name.right(6), &v);
- return v;
}
+ return v;
}
void AutotileEditorHelper::_get_property_list(List<PropertyInfo> *p_list) const {
diff --git a/editor/progress_dialog.cpp b/editor/progress_dialog.cpp
index 2c2e5a7c9b..e02925e377 100644
--- a/editor/progress_dialog.cpp
+++ b/editor/progress_dialog.cpp
@@ -188,6 +188,9 @@ void ProgressDialog::add_task(const String &p_task, const String &p_label, int p
cancel_hb->raise();
cancelled = false;
_popup();
+ if (p_can_cancel) {
+ cancel->grab_focus();
+ }
}
bool ProgressDialog::task_step(const String &p_task, const String &p_state, int p_step, bool p_force_redraw) {
diff --git a/editor/project_export.cpp b/editor/project_export.cpp
index 767dbcc27b..3c31b70564 100644
--- a/editor/project_export.cpp
+++ b/editor/project_export.cpp
@@ -718,7 +718,9 @@ void ProjectExportDialog::_export_project() {
export_project->set_access(FileDialog::ACCESS_FILESYSTEM);
export_project->clear_filters();
export_project->set_current_file(default_filename);
- String extension = platform->get_binary_extension();
+
+ String extension = platform->get_binary_extension(current);
+
if (extension != String()) {
export_project->add_filter("*." + extension + " ; " + platform->get_name() + " Export");
}
diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp
index 00488a2a88..04e9f0adc1 100644
--- a/editor/project_manager.cpp
+++ b/editor/project_manager.cpp
@@ -536,21 +536,21 @@ public:
if (mode == MODE_IMPORT) {
set_title(TTR("Import Existing Project"));
- get_ok()->set_text(TTR("Import"));
+ get_ok()->set_text(TTR("Import & Edit"));
name_container->hide();
project_path->grab_focus();
} else if (mode == MODE_NEW) {
set_title(TTR("Create New Project"));
- get_ok()->set_text(TTR("Create"));
+ get_ok()->set_text(TTR("Create & Edit"));
name_container->show();
project_name->grab_focus();
} else if (mode == MODE_INSTALL) {
set_title(TTR("Install Project:") + " " + zip_title);
- get_ok()->set_text(TTR("Install"));
+ get_ok()->set_text(TTR("Install & Edit"));
name_container->hide();
project_path->grab_focus();
}
diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp
index 1a7b7f3575..e69577489e 100644
--- a/editor/project_settings_editor.cpp
+++ b/editor/project_settings_editor.cpp
@@ -1460,7 +1460,6 @@ void ProjectSettingsEditor::_update_translations() {
t2->set_editable(1, true);
t2->set_metadata(1, path);
int idx = langs.find(locale);
- //print_line("find " + locale + " at " + itos(idx));
if (idx < 0)
idx = 0;
@@ -1690,13 +1689,13 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) {
vbc->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_BEGIN, 0);
vbc->set_anchor_and_margin(MARGIN_RIGHT, ANCHOR_END, 0);
- l = memnew(Label);
- vbc->add_child(l);
- l->set_text(TTR("Action:"));
-
hbc = memnew(HBoxContainer);
vbc->add_child(hbc);
+ l = memnew(Label);
+ hbc->add_child(l);
+ l->set_text(TTR("Action:"));
+
action_name = memnew(LineEdit);
action_name->set_h_size_flags(SIZE_EXPAND_FILL);
hbc->add_child(action_name);
@@ -1709,7 +1708,6 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) {
add = memnew(Button);
hbc->add_child(add);
- add->set_custom_minimum_size(Size2(150, 0) * EDSCALE);
add->set_text(TTR("Add"));
add->set_disabled(true);
add->connect("pressed", this, "_action_add");
diff --git a/editor/property_editor.cpp b/editor/property_editor.cpp
index d22bee40d9..16cf325bc2 100644
--- a/editor/property_editor.cpp
+++ b/editor/property_editor.cpp
@@ -335,6 +335,8 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant::
easing_draw->hide();
spinbox->hide();
slider->hide();
+ menu->clear();
+ menu->set_size(Size2(1, 1) * EDSCALE);
for (int i = 0; i < MAX_VALUE_EDITORS; i++) {
@@ -413,7 +415,6 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant::
} else if (hint == PROPERTY_HINT_ENUM) {
- menu->clear();
Vector<String> options = hint_text.split(",");
for (int i = 0; i < options.size(); i++) {
if (options[i].find(":") != -1) {
@@ -494,7 +495,6 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant::
easing_draw->show();
set_size(Size2(200, 150) * EDSCALE);
} else if (hint == PROPERTY_HINT_FLAGS) {
- menu->clear();
Vector<String> flags = hint_text.split(",");
for (int i = 0; i < flags.size(); i++) {
String flag = flags[i];
@@ -536,7 +536,6 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant::
config_action_buttons(names);
} else if (hint == PROPERTY_HINT_ENUM) {
- menu->clear();
Vector<String> options = hint_text.split(",");
for (int i = 0; i < options.size(); i++) {
menu->add_item(options[i], i);
@@ -551,6 +550,7 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant::
text_edit->show();
text_edit->set_text(v);
+ text_edit->deselect();
int button_margin = get_constant("button_margin", "Dialogs");
int margin = get_constant("margin", "Dialogs");
@@ -868,9 +868,6 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant::
if (hint != PROPERTY_HINT_RESOURCE_TYPE)
break;
- menu->clear();
- menu->set_size(Size2(1, 1) * EDSCALE);
-
if (p_name == "script" && hint_text == "Script" && Object::cast_to<Node>(owner)) {
menu->add_icon_item(get_icon("Script", "EditorIcons"), TTR("New Script"), OBJ_MENU_NEW_SCRIPT);
menu->add_separator();
@@ -1763,24 +1760,40 @@ void CustomPropertyEditor::_focus_exit() {
void CustomPropertyEditor::config_action_buttons(const List<String> &p_strings) {
- int cell_width = 60;
- int cell_height = 25;
- int cell_margin = 5;
+ Ref<StyleBox> sb = get_stylebox("panel");
+ int margin_top = sb->get_margin(MARGIN_TOP);
+ int margin_left = sb->get_margin(MARGIN_LEFT);
+ int margin_bottom = sb->get_margin(MARGIN_BOTTOM);
+ int margin_right = sb->get_margin(MARGIN_RIGHT);
- set_size(Size2(cell_margin + (cell_width + cell_margin) * p_strings.size(), (cell_margin * 2) + cell_height) * EDSCALE);
+ int max_width = 0;
+ int height = 0;
for (int i = 0; i < MAX_ACTION_BUTTONS; i++) {
if (i < p_strings.size()) {
+
action_buttons[i]->show();
action_buttons[i]->set_text(p_strings[i]);
- action_buttons[i]->set_position(Point2(cell_margin + (cell_width + cell_margin) * i, cell_margin) * EDSCALE);
- action_buttons[i]->set_size(Size2(cell_width, cell_height - cell_margin * 2) * EDSCALE);
- action_buttons[i]->set_flat(true);
+
+ Size2 btn_m_size = action_buttons[i]->get_minimum_size();
+ if (btn_m_size.width > max_width)
+ max_width = btn_m_size.width;
+
} else {
action_buttons[i]->hide();
}
}
+
+ for (int i = 0; i < p_strings.size(); i++) {
+
+ Size2 btn_m_size = action_buttons[i]->get_size();
+ action_buttons[i]->set_position(Point2(0, height) + Point2(margin_left, margin_top));
+ action_buttons[i]->set_size(Size2(max_width, btn_m_size.height));
+
+ height += btn_m_size.height;
+ }
+ set_size(Size2(max_width, height) + Size2(margin_left + margin_right, margin_top + margin_bottom));
}
void CustomPropertyEditor::config_value_editors(int p_amount, int p_columns, int p_label_w, const List<String> &p_strings) {
@@ -1901,6 +1914,7 @@ CustomPropertyEditor::CustomPropertyEditor() {
Vector<Variant> binds;
binds.push_back(i);
action_buttons[i]->connect("pressed", this, "_action_pressed", binds);
+ action_buttons[i]->set_flat(true);
}
color_picker = NULL;
@@ -2952,14 +2966,19 @@ void PropertyEditor::update_tree() {
if (!found) {
DocData *dd = EditorHelp::get_doc_data();
Map<String, DocData::ClassDoc>::Element *E = dd->class_list.find(classname);
- if (E) {
+ while (E && descr == String()) {
for (int i = 0; i < E->get().properties.size(); i++) {
if (E->get().properties[i].name == propname.operator String()) {
descr = E->get().properties[i].description.strip_edges().word_wrap(80);
+ break;
}
}
+ if (!E->get().inherits.empty()) {
+ E = dd->class_list.find(E->get().inherits);
+ } else {
+ break;
+ }
}
-
descr_cache[classname][propname] = descr;
}
@@ -3950,11 +3969,13 @@ void PropertyEditor::_edit_button(Object *p_item, int p_column, int p_button) {
if (t == Variant::NODE_PATH) {
Variant v = obj->get(n);
- custom_editor->edit(obj, n, (Variant::Type)t, v, h, ht);
Rect2 where = tree->get_item_rect(ti, 1);
where.position -= tree->get_scroll();
- where.position += tree->get_global_position();
+ where.position += tree->get_global_position() + Point2(where.size.width, 0);
+ for (int i = ti->get_button_count(p_column) - 1; i >= p_button; i--)
+ where.position.x -= ti->get_button(p_column, i)->get_width();
custom_editor->set_position(where.position);
+ custom_editor->edit(obj, n, (Variant::Type)t, v, h, ht);
custom_editor->popup();
} else if (t == Variant::STRING) {
@@ -3965,7 +3986,9 @@ void PropertyEditor::_edit_button(Object *p_item, int p_column, int p_button) {
Rect2 where = tree->get_item_rect(ti, 1);
where.position -= tree->get_scroll();
- where.position += tree->get_global_position();
+ where.position += tree->get_global_position() + Point2(where.size.width, 0);
+ for (int i = ti->get_button_count(p_column) - 1; i >= p_button; i--)
+ where.position.x -= ti->get_button(p_column, i)->get_width();
custom_editor->set_position(where.position);
custom_editor->popup();
} else {
@@ -4585,6 +4608,8 @@ SectionedPropertyEditor::SectionedPropertyEditor() {
search_box = NULL;
+ add_constant_override("autohide", 1); // Fixes the dragger always showing up
+
VBoxContainer *left_vb = memnew(VBoxContainer);
left_vb->set_custom_minimum_size(Size2(170, 0) * EDSCALE);
add_child(left_vb);
@@ -4593,16 +4618,17 @@ SectionedPropertyEditor::SectionedPropertyEditor() {
sections->set_v_size_flags(SIZE_EXPAND_FILL);
sections->set_hide_root(true);
- left_vb->add_margin_child(TTR("Sections:"), sections, true);
+ left_vb->add_child(sections, true);
VBoxContainer *right_vb = memnew(VBoxContainer);
+ right_vb->set_custom_minimum_size(Size2(300, 0) * EDSCALE);
right_vb->set_h_size_flags(SIZE_EXPAND_FILL);
add_child(right_vb);
filter = memnew(SectionedPropertyEditorFilter);
editor = memnew(PropertyEditor);
editor->set_v_size_flags(SIZE_EXPAND_FILL);
- right_vb->add_margin_child(TTR("Properties:"), editor, true);
+ right_vb->add_child(editor, true);
editor->get_scene_tree()->set_column_titles_visible(false);
diff --git a/editor/property_editor.h b/editor/property_editor.h
index f684f5768d..115ce07339 100644
--- a/editor/property_editor.h
+++ b/editor/property_editor.h
@@ -314,9 +314,9 @@ public:
class SectionedPropertyEditorFilter;
-class SectionedPropertyEditor : public HBoxContainer {
+class SectionedPropertyEditor : public HSplitContainer {
- GDCLASS(SectionedPropertyEditor, HBoxContainer);
+ GDCLASS(SectionedPropertyEditor, HSplitContainer);
ObjectID obj;
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp
index 4d86030e7d..06dd6bd375 100644
--- a/editor/scene_tree_dock.cpp
+++ b/editor/scene_tree_dock.cpp
@@ -1360,6 +1360,7 @@ void SceneTreeDock::_create() {
editor_data->get_undo_redo().commit_action();
editor->push_item(c);
editor_selection->clear();
+ editor_selection->add_node(child);
if (Object::cast_to<Control>(c)) {
//make editor more comfortable, so some controls don't appear super shrunk
Control *ct = Object::cast_to<Control>(c);
@@ -1373,77 +1374,81 @@ void SceneTreeDock::_create() {
}
} else if (current_option == TOOL_REPLACE) {
- Node *n = scene_tree->get_selected();
- ERR_FAIL_COND(!n);
+ List<Node *> selection = editor_selection->get_selected_node_list();
+ ERR_FAIL_COND(selection.size() <= 0);
+ for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
+ Node *n = E->get();
+ ERR_FAIL_COND(!n);
- Object *c = create_dialog->instance_selected();
+ Object *c = create_dialog->instance_selected();
- ERR_FAIL_COND(!c);
- Node *newnode = Object::cast_to<Node>(c);
- ERR_FAIL_COND(!newnode);
+ ERR_FAIL_COND(!c);
+ Node *newnode = Object::cast_to<Node>(c);
+ ERR_FAIL_COND(!newnode);
- List<PropertyInfo> pinfo;
- n->get_property_list(&pinfo);
+ List<PropertyInfo> pinfo;
+ n->get_property_list(&pinfo);
- for (List<PropertyInfo>::Element *E = pinfo.front(); E; E = E->next()) {
- if (!(E->get().usage & PROPERTY_USAGE_STORAGE))
- continue;
- if (E->get().name == "__meta__")
- continue;
- newnode->set(E->get().name, n->get(E->get().name));
- }
+ for (List<PropertyInfo>::Element *E = pinfo.front(); E; E = E->next()) {
+ if (!(E->get().usage & PROPERTY_USAGE_STORAGE))
+ continue;
+ if (E->get().name == "__meta__")
+ continue;
+ newnode->set(E->get().name, n->get(E->get().name));
+ }
- editor->push_item(NULL);
+ editor->push_item(NULL);
- //reconnect signals
- List<MethodInfo> sl;
+ //reconnect signals
+ List<MethodInfo> sl;
- n->get_signal_list(&sl);
- for (List<MethodInfo>::Element *E = sl.front(); E; E = E->next()) {
+ n->get_signal_list(&sl);
+ for (List<MethodInfo>::Element *E = sl.front(); E; E = E->next()) {
- List<Object::Connection> cl;
- n->get_signal_connection_list(E->get().name, &cl);
+ List<Object::Connection> cl;
+ n->get_signal_connection_list(E->get().name, &cl);
- for (List<Object::Connection>::Element *F = cl.front(); F; F = F->next()) {
+ for (List<Object::Connection>::Element *F = cl.front(); F; F = F->next()) {
- Object::Connection &c = F->get();
- if (!(c.flags & Object::CONNECT_PERSIST))
- continue;
- newnode->connect(c.signal, c.target, c.method, varray(), Object::CONNECT_PERSIST);
+ Object::Connection &c = F->get();
+ if (!(c.flags & Object::CONNECT_PERSIST))
+ continue;
+ newnode->connect(c.signal, c.target, c.method, varray(), Object::CONNECT_PERSIST);
+ }
}
- }
- String newname = n->get_name();
+ String newname = n->get_name();
- List<Node *> to_erase;
- for (int i = 0; i < n->get_child_count(); i++) {
- if (n->get_child(i)->get_owner() == NULL && n->is_owned_by_parent()) {
- to_erase.push_back(n->get_child(i));
+ List<Node *> to_erase;
+ for (int i = 0; i < n->get_child_count(); i++) {
+ if (n->get_child(i)->get_owner() == NULL && n->is_owned_by_parent()) {
+ to_erase.push_back(n->get_child(i));
+ }
}
- }
- n->replace_by(newnode, true);
+ n->replace_by(newnode, true);
- if (n == edited_scene) {
- edited_scene = newnode;
- editor->set_edited_scene(newnode);
- newnode->set_editable_instances(n->get_editable_instances());
- }
+ if (n == edited_scene) {
+ edited_scene = newnode;
+ editor->set_edited_scene(newnode);
+ newnode->set_editable_instances(n->get_editable_instances());
+ }
- //small hack to make collisionshapes and other kind of nodes to work
- for (int i = 0; i < newnode->get_child_count(); i++) {
- Node *c = newnode->get_child(i);
- c->call("set_transform", c->call("get_transform"));
- }
- editor_data->get_undo_redo().clear_history();
- newnode->set_name(newname);
+ //small hack to make collisionshapes and other kind of nodes to work
+ for (int i = 0; i < newnode->get_child_count(); i++) {
+ Node *c = newnode->get_child(i);
+ c->call("set_transform", c->call("get_transform"));
+ }
+ editor_data->get_undo_redo().clear_history();
+ newnode->set_name(newname);
- editor->push_item(newnode);
+ editor->push_item(newnode);
- memdelete(n);
+ memdelete(n);
- while (to_erase.front()) {
- memdelete(to_erase.front()->get());
- to_erase.pop_front();
+ while (to_erase.front()) {
+ memdelete(to_erase.front()->get());
+ to_erase.pop_front();
+ }
}
}
}
@@ -1695,12 +1700,11 @@ void SceneTreeDock::_add_children_to_popup(Object *p_obj, int p_depth) {
icon = get_icon("Object", "EditorIcons");
if (menu->get_item_count() == 0) {
- menu->add_item(TTR("Sub-Resources:"));
- menu->set_item_disabled(0, true);
+ menu->add_submenu_item(TTR("Sub-Resources"), "Sub-Resources");
}
- int index = menu->get_item_count();
- menu->add_icon_item(icon, E->get().name.capitalize(), EDIT_SUBRESOURCE_BASE + subresources.size());
- menu->set_item_h_offset(index, p_depth * 10 * EDSCALE);
+ int index = menu_subresources->get_item_count();
+ menu_subresources->add_icon_item(icon, E->get().name.capitalize(), EDIT_SUBRESOURCE_BASE + subresources.size());
+ menu_subresources->set_item_h_offset(index, p_depth * 10 * EDSCALE);
subresources.push_back(obj->get_instance_id());
_add_children_to_popup(obj, p_depth + 1);
@@ -1730,6 +1734,7 @@ void SceneTreeDock::_tree_rmb(const Vector2 &p_menu_pos) {
if (selection.size() == 1) {
subresources.clear();
+ menu_subresources->clear();
_add_children_to_popup(selection.front()->get(), 0);
if (menu->get_item_count() > 0)
menu->add_separator();
@@ -1737,13 +1742,12 @@ void SceneTreeDock::_tree_rmb(const Vector2 &p_menu_pos) {
menu->add_icon_shortcut(get_icon("Add", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/add_child_node"), TOOL_NEW);
menu->add_icon_shortcut(get_icon("Instance", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/instance_scene"), TOOL_INSTANCE);
menu->add_separator();
- menu->add_icon_shortcut(get_icon("Reload", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/change_node_type"), TOOL_REPLACE);
- menu->add_separator();
menu->add_icon_shortcut(get_icon("ScriptCreate", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/attach_script"), TOOL_ATTACH_SCRIPT);
menu->add_icon_shortcut(get_icon("ScriptRemove", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/clear_script"), TOOL_CLEAR_SCRIPT);
menu->add_separator();
}
-
+ menu->add_icon_shortcut(get_icon("Reload", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/change_node_type"), TOOL_REPLACE);
+ menu->add_separator();
menu->add_icon_shortcut(get_icon("MoveUp", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/move_up"), TOOL_MOVE_UP);
menu->add_icon_shortcut(get_icon("MoveDown", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/move_down"), TOOL_MOVE_DOWN);
menu->add_icon_shortcut(get_icon("Duplicate", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/duplicate"), TOOL_DUPLICATE);
@@ -2046,6 +2050,9 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor, Node *p_scene_root, EditorSel
menu = memnew(PopupMenu);
add_child(menu);
menu->connect("id_pressed", this, "_tool_selected");
+ menu_subresources = memnew(PopupMenu);
+ menu_subresources->set_name("Sub-Resources");
+ menu->add_child(menu_subresources);
first_enter = true;
restore_script_editor_on_drag = false;
diff --git a/editor/scene_tree_dock.h b/editor/scene_tree_dock.h
index 41d5bda180..6a281bb7e8 100644
--- a/editor/scene_tree_dock.h
+++ b/editor/scene_tree_dock.h
@@ -119,6 +119,7 @@ class SceneTreeDock : public VBoxContainer {
TextureRect *filter_icon;
PopupMenu *menu;
+ PopupMenu *menu_subresources;
ConfirmationDialog *clear_inherit_confirm;
bool first_enter;
diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp
index 3e503c45a5..827e8d9ee4 100644
--- a/editor/scene_tree_editor.cpp
+++ b/editor/scene_tree_editor.cpp
@@ -774,9 +774,11 @@ Variant SceneTreeEditor::get_drag_data_fw(const Point2 &p_point, Control *p_from
Node *n = get_node(np);
if (n) {
-
- selected.push_back(n);
- icons.push_back(next->get_icon(0));
+ // Only allow selection if not part of an instanced scene.
+ if (!n->get_owner() || n->get_owner() == get_scene_node() || n->get_owner()->get_filename() == String()) {
+ selected.push_back(n);
+ icons.push_back(next->get_icon(0));
+ }
}
next = tree->get_next_selected(next);
}
diff --git a/editor/script_create_dialog.cpp b/editor/script_create_dialog.cpp
index 3cab14b0c4..97f442b0ec 100644
--- a/editor/script_create_dialog.cpp
+++ b/editor/script_create_dialog.cpp
@@ -331,6 +331,12 @@ void ScriptCreateDialog::_file_selected(const String &p_file) {
} else {
file_path->set_text(p);
_path_changed(p);
+
+ String filename = p.get_file().get_basename();
+ int select_start = p.find_last(filename);
+ file_path->select(select_start, select_start + filename.length());
+ file_path->set_cursor_position(select_start + filename.length());
+ file_path->grab_focus();
}
}
@@ -425,6 +431,10 @@ void ScriptCreateDialog::_path_changed(const String &p_path) {
_update_dialog();
}
+void ScriptCreateDialog::_path_entered(const String &p_path) {
+ ok_pressed();
+}
+
void ScriptCreateDialog::_msg_script_valid(bool valid, const String &p_msg) {
error_label->set_text(TTR(p_msg));
@@ -459,7 +469,7 @@ void ScriptCreateDialog::_update_dialog() {
script_ok = false;
}
}
- if (has_named_classes && (!is_class_name_valid)) {
+ if (has_named_classes && (is_new_script_created && !is_class_name_valid)) {
_msg_script_valid(false, TTR("Invalid class name"));
script_ok = false;
}
@@ -550,6 +560,7 @@ void ScriptCreateDialog::_bind_methods() {
ClassDB::bind_method("_browse_path", &ScriptCreateDialog::_browse_path);
ClassDB::bind_method("_file_selected", &ScriptCreateDialog::_file_selected);
ClassDB::bind_method("_path_changed", &ScriptCreateDialog::_path_changed);
+ ClassDB::bind_method("_path_entered", &ScriptCreateDialog::_path_entered);
ClassDB::bind_method("_template_changed", &ScriptCreateDialog::_template_changed);
ADD_SIGNAL(MethodInfo("script_created", PropertyInfo(Variant::OBJECT, "script", PROPERTY_HINT_RESOURCE_TYPE, "Script")));
}
@@ -715,6 +726,7 @@ ScriptCreateDialog::ScriptCreateDialog() {
hb = memnew(HBoxContainer);
file_path = memnew(LineEdit);
file_path->connect("text_changed", this, "_path_changed");
+ file_path->connect("text_entered", this, "_path_entered");
file_path->set_h_size_flags(SIZE_EXPAND_FILL);
hb->add_child(file_path);
path_button = memnew(Button);
diff --git a/editor/script_create_dialog.h b/editor/script_create_dialog.h
index c7bbc82d47..1cff9871d8 100644
--- a/editor/script_create_dialog.h
+++ b/editor/script_create_dialog.h
@@ -73,6 +73,7 @@ class ScriptCreateDialog : public ConfirmationDialog {
Vector<String> template_list;
void _path_changed(const String &p_path = String());
+ void _path_entered(const String &p_path = String());
void _lang_changed(int l = 0);
void _built_in_pressed();
bool _validate(const String &p_string);
diff --git a/editor/settings_config_dialog.cpp b/editor/settings_config_dialog.cpp
index fccd0c51aa..2bdc824248 100644
--- a/editor/settings_config_dialog.cpp
+++ b/editor/settings_config_dialog.cpp
@@ -100,6 +100,8 @@ void EditorSettingsDialog::popup_edit_settings() {
} else {
popup_centered_ratio(0.7);
}
+
+ _focus_current_search_box();
}
void EditorSettingsDialog::_clear_search_box() {
@@ -137,13 +139,18 @@ void EditorSettingsDialog::_notification(int p_what) {
undo_redo->set_commit_notify_callback(_undo_redo_callback, this);
} break;
case NOTIFICATION_ENTER_TREE: {
- clear_button->set_icon(get_icon("Close", "EditorIcons"));
- shortcut_clear_button->set_icon(get_icon("Close", "EditorIcons"));
+ _update_icons();
} break;
case NOTIFICATION_POPUP_HIDE: {
EditorSettings::get_singleton()->set("interface/dialogs/editor_settings_bounds", get_rect());
set_process_unhandled_input(false);
} break;
+ case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
+ _update_icons();
+ // Update theme colors.
+ property_editor->update_category_list();
+ _update_shortcuts();
+ } break;
}
}
@@ -179,6 +186,14 @@ void EditorSettingsDialog::_unhandled_input(const Ref<InputEvent> &p_event) {
}
}
+void EditorSettingsDialog::_update_icons() {
+
+ search_box->add_icon_override("right_icon", get_icon("Search", "EditorIcons"));
+ shortcut_search_box->add_icon_override("right_icon", get_icon("Search", "EditorIcons"));
+ clear_button->set_icon(get_icon("Close", "EditorIcons"));
+ shortcut_clear_button->set_icon(get_icon("Close", "EditorIcons"));
+}
+
void EditorSettingsDialog::_update_shortcuts() {
shortcuts->clear();
@@ -329,6 +344,26 @@ void EditorSettingsDialog::_press_a_key_confirm() {
undo_redo->commit_action();
}
+void EditorSettingsDialog::_tabs_tab_changed(int p_tab) {
+
+ _focus_current_search_box();
+}
+
+void EditorSettingsDialog::_focus_current_search_box() {
+
+ Control *tab = tabs->get_current_tab_control();
+ LineEdit *current_search_box;
+ if (tab == tab_general)
+ current_search_box = search_box;
+ else if (tab == tab_shortcuts)
+ current_search_box = shortcut_search_box;
+
+ if (current_search_box) {
+ current_search_box->grab_focus();
+ current_search_box->select_all();
+ }
+}
+
void EditorSettingsDialog::_bind_methods() {
ClassDB::bind_method(D_METHOD("_unhandled_input"), &EditorSettingsDialog::_unhandled_input);
@@ -342,6 +377,7 @@ void EditorSettingsDialog::_bind_methods() {
ClassDB::bind_method(D_METHOD("_update_shortcuts"), &EditorSettingsDialog::_update_shortcuts);
ClassDB::bind_method(D_METHOD("_press_a_key_confirm"), &EditorSettingsDialog::_press_a_key_confirm);
ClassDB::bind_method(D_METHOD("_wait_for_key"), &EditorSettingsDialog::_wait_for_key);
+ ClassDB::bind_method(D_METHOD("_tabs_tab_changed"), &EditorSettingsDialog::_tabs_tab_changed);
}
EditorSettingsDialog::EditorSettingsDialog() {
@@ -352,20 +388,19 @@ EditorSettingsDialog::EditorSettingsDialog() {
tabs = memnew(TabContainer);
tabs->set_tab_align(TabContainer::ALIGN_LEFT);
+ tabs->connect("tab_changed", this, "_tabs_tab_changed");
add_child(tabs);
//set_child_rect(tabs);
- VBoxContainer *vbc = memnew(VBoxContainer);
- tabs->add_child(vbc);
- vbc->set_name(TTR("General"));
+ // General Tab
+
+ tab_general = memnew(VBoxContainer);
+ tabs->add_child(tab_general);
+ tab_general->set_name(TTR("General"));
HBoxContainer *hbc = memnew(HBoxContainer);
hbc->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- vbc->add_child(hbc);
-
- Label *l = memnew(Label);
- l->set_text(TTR("Search:") + " ");
- hbc->add_child(l);
+ tab_general->add_child(hbc);
search_box = memnew(LineEdit);
search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
@@ -381,20 +416,18 @@ EditorSettingsDialog::EditorSettingsDialog() {
property_editor->register_search_box(search_box);
property_editor->set_v_size_flags(Control::SIZE_EXPAND_FILL);
property_editor->get_property_editor()->set_undo_redo(undo_redo);
- vbc->add_child(property_editor);
+ tab_general->add_child(property_editor);
property_editor->get_property_editor()->connect("property_edited", this, "_settings_property_edited");
- vbc = memnew(VBoxContainer);
- tabs->add_child(vbc);
- vbc->set_name(TTR("Shortcuts"));
+ // Shortcuts Tab
+
+ tab_shortcuts = memnew(VBoxContainer);
+ tabs->add_child(tab_shortcuts);
+ tab_shortcuts->set_name(TTR("Shortcuts"));
hbc = memnew(HBoxContainer);
hbc->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- vbc->add_child(hbc);
-
- l = memnew(Label);
- l->set_text(TTR("Search:") + " ");
- hbc->add_child(l);
+ tab_shortcuts->add_child(hbc);
shortcut_search_box = memnew(LineEdit);
shortcut_search_box->set_h_size_flags(Control::SIZE_EXPAND_FILL);
@@ -406,7 +439,8 @@ EditorSettingsDialog::EditorSettingsDialog() {
shortcut_clear_button->connect("pressed", this, "_clear_shortcut_search_box");
shortcuts = memnew(Tree);
- vbc->add_margin_child(TTR("Shortcut List:"), shortcuts, true);
+ tab_shortcuts->add_child(shortcuts, true);
+ shortcuts->set_v_size_flags(SIZE_EXPAND_FILL);
shortcuts->set_columns(2);
shortcuts->set_hide_root(true);
//shortcuts->set_hide_folding(true);
@@ -419,7 +453,7 @@ EditorSettingsDialog::EditorSettingsDialog() {
press_a_key->set_focus_mode(FOCUS_ALL);
add_child(press_a_key);
- l = memnew(Label);
+ Label *l = memnew(Label);
l->set_text(TTR("Press a Key.."));
l->set_anchors_and_margins_preset(Control::PRESET_WIDE);
l->set_align(Label::ALIGN_CENTER);
diff --git a/editor/settings_config_dialog.h b/editor/settings_config_dialog.h
index a03b15c06d..64b8833821 100644
--- a/editor/settings_config_dialog.h
+++ b/editor/settings_config_dialog.h
@@ -41,6 +41,8 @@ class EditorSettingsDialog : public AcceptDialog {
bool updating;
TabContainer *tabs;
+ Control *tab_general;
+ Control *tab_shortcuts;
LineEdit *search_box;
LineEdit *shortcut_search_box;
@@ -68,10 +70,14 @@ class EditorSettingsDialog : public AcceptDialog {
void _unhandled_input(const Ref<InputEvent> &p_event);
void _notification(int p_what);
+ void _update_icons();
void _press_a_key_confirm();
void _wait_for_key(const Ref<InputEvent> &p_event);
+ void _tabs_tab_changed(int p_tab);
+ void _focus_current_search_box();
+
void _clear_shortcut_search_box();
void _clear_search_box();
diff --git a/editor/spatial_editor_gizmos.cpp b/editor/spatial_editor_gizmos.cpp
index f0e8d438fa..1a3ab309f7 100644
--- a/editor/spatial_editor_gizmos.cpp
+++ b/editor/spatial_editor_gizmos.cpp
@@ -1529,6 +1529,8 @@ SkeletonSpatialGizmo::SkeletonSpatialGizmo(Skeleton *p_skel) {
skel = p_skel;
set_spatial_node(p_skel);
}
+
+// FIXME: Kept as reference for reimplementation in 3.1+
#if 0
void RoomSpatialGizmo::redraw() {
@@ -2827,11 +2829,7 @@ void BakedIndirectLightGizmo::redraw() {
Vector<Vector3> lines;
Vector3 extents = baker->get_extents();
- static const int subdivs[BakedLightmap::SUBDIV_MAX] = { 64, 128, 256, 512 };
-
AABB aabb = AABB(-extents, extents * 2);
- int subdiv = subdivs[baker->get_bake_subdiv()];
- float cell_size = aabb.get_longest_axis_size() / subdiv;
for (int i = 0; i < 12; i++) {
Vector3 a, b;
@@ -2966,227 +2964,220 @@ NavigationMeshSpatialGizmo::NavigationMeshSpatialGizmo(NavigationMeshInstance *p
navmesh = p_navmesh;
}
-//////
-///
-///
+ //////
+ ///
+ ///
+ ///
-void PinJointSpatialGizmo::redraw() {
+#define BODY_A_RADIUS 0.25
+#define BODY_B_RADIUS 0.27
- clear();
- Vector<Vector3> cursor_points;
- float cs = 0.25;
- cursor_points.push_back(Vector3(+cs, 0, 0));
- cursor_points.push_back(Vector3(-cs, 0, 0));
- cursor_points.push_back(Vector3(0, +cs, 0));
- cursor_points.push_back(Vector3(0, -cs, 0));
- cursor_points.push_back(Vector3(0, 0, +cs));
- cursor_points.push_back(Vector3(0, 0, -cs));
- add_collision_segments(cursor_points);
+Basis JointGizmosDrawer::look_body(const Transform &p_joint_transform, const Transform &p_body_transform) {
+ const Vector3 &p_eye(p_joint_transform.origin);
+ const Vector3 &p_target(p_body_transform.origin);
- Ref<Material> material = create_material("joint_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint"));
+ Vector3 v_x, v_y, v_z;
- add_lines(cursor_points, material);
+ // Look the body with X
+ v_x = p_target - p_eye;
+ v_x.normalize();
+
+ v_z = v_x.cross(Vector3(0, 1, 0));
+ v_z.normalize();
+
+ v_y = v_z.cross(v_x);
+ v_y.normalize();
+
+ Basis base;
+ base.set(v_x, v_y, v_z);
+
+ // Absorb current joint transform
+ base = p_joint_transform.basis.inverse() * base;
+
+ return base;
}
-PinJointSpatialGizmo::PinJointSpatialGizmo(PinJoint *p_p3d) {
+Basis JointGizmosDrawer::look_body_toward(Vector3::Axis p_axis, const Transform &joint_transform, const Transform &body_transform) {
- p3d = p_p3d;
- set_spatial_node(p3d);
+ switch (p_axis) {
+ case Vector3::AXIS_X:
+ return look_body_toward_x(joint_transform, body_transform);
+ case Vector3::AXIS_Y:
+ return look_body_toward_y(joint_transform, body_transform);
+ case Vector3::AXIS_Z:
+ return look_body_toward_z(joint_transform, body_transform);
+ default:
+ return Basis();
+ }
}
-////
+Basis JointGizmosDrawer::look_body_toward_x(const Transform &p_joint_transform, const Transform &p_body_transform) {
-void HingeJointSpatialGizmo::redraw() {
+ const Vector3 &p_eye(p_joint_transform.origin);
+ const Vector3 &p_target(p_body_transform.origin);
- clear();
- Vector<Vector3> cursor_points;
- float cs = 0.25;
- /*cursor_points.push_back(Vector3(+cs,0,0));
- cursor_points.push_back(Vector3(-cs,0,0));
- cursor_points.push_back(Vector3(0,+cs,0));
- cursor_points.push_back(Vector3(0,-cs,0));*/
- cursor_points.push_back(Vector3(0, 0, +cs * 2));
- cursor_points.push_back(Vector3(0, 0, -cs * 2));
+ const Vector3 p_front(p_joint_transform.basis.get_axis(0));
- float ll = p3d->get_param(HingeJoint::PARAM_LIMIT_LOWER);
- float ul = p3d->get_param(HingeJoint::PARAM_LIMIT_UPPER);
+ Vector3 v_x, v_y, v_z;
- if (p3d->get_flag(HingeJoint::FLAG_USE_LIMIT) && ll < ul) {
+ // Look the body with X
+ v_x = p_target - p_eye;
+ v_x.normalize();
- const int points = 32;
+ v_y = p_front.cross(v_x);
+ v_y.normalize();
- for (int i = 0; i < points; i++) {
+ v_z = v_y.cross(p_front);
+ v_z.normalize();
- float s = ll + i * (ul - ll) / points;
- float n = ll + (i + 1) * (ul - ll) / points;
+ // Clamp X to FRONT axis
+ v_x = p_front;
+ v_x.normalize();
- Vector3 from = Vector3(-Math::sin(s), Math::cos(s), 0) * cs;
- Vector3 to = Vector3(-Math::sin(n), Math::cos(n), 0) * cs;
+ Basis base;
+ base.set(v_x, v_y, v_z);
- if (i == points - 1) {
- cursor_points.push_back(to);
- cursor_points.push_back(Vector3());
- }
- if (i == 0) {
- cursor_points.push_back(from);
- cursor_points.push_back(Vector3());
- }
+ // Absorb current joint transform
+ base = p_joint_transform.basis.inverse() * base;
- cursor_points.push_back(from);
- cursor_points.push_back(to);
- }
+ return base;
+}
- cursor_points.push_back(Vector3(0, cs * 1.5, 0));
- cursor_points.push_back(Vector3());
+Basis JointGizmosDrawer::look_body_toward_y(const Transform &p_joint_transform, const Transform &p_body_transform) {
- } else {
+ const Vector3 &p_eye(p_joint_transform.origin);
+ const Vector3 &p_target(p_body_transform.origin);
- const int points = 32;
+ const Vector3 p_up(p_joint_transform.basis.get_axis(1));
- for (int i = 0; i < points; i++) {
+ Vector3 v_x, v_y, v_z;
- float s = ll + i * (Math_PI * 2.0) / points;
- float n = ll + (i + 1) * (Math_PI * 2.0) / points;
+ // Look the body with X
+ v_x = p_target - p_eye;
+ v_x.normalize();
- Vector3 from = Vector3(-Math::sin(s), Math::cos(s), 0) * cs;
- Vector3 to = Vector3(-Math::sin(n), Math::cos(n), 0) * cs;
+ v_z = v_x.cross(p_up);
+ v_z.normalize();
- cursor_points.push_back(from);
- cursor_points.push_back(to);
- }
- }
+ v_x = p_up.cross(v_z);
+ v_x.normalize();
- Ref<Material> material = create_material("joint_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint"));
+ // Clamp Y to UP axis
+ v_y = p_up;
+ v_y.normalize();
- add_collision_segments(cursor_points);
- add_lines(cursor_points, material);
-}
+ Basis base;
+ base.set(v_x, v_y, v_z);
-HingeJointSpatialGizmo::HingeJointSpatialGizmo(HingeJoint *p_p3d) {
+ // Absorb current joint transform
+ base = p_joint_transform.basis.inverse() * base;
- p3d = p_p3d;
- set_spatial_node(p3d);
+ return base;
}
-///////
-///
-////
+Basis JointGizmosDrawer::look_body_toward_z(const Transform &p_joint_transform, const Transform &p_body_transform) {
-void SliderJointSpatialGizmo::redraw() {
+ const Vector3 &p_eye(p_joint_transform.origin);
+ const Vector3 &p_target(p_body_transform.origin);
- clear();
- Vector<Vector3> cursor_points;
- float cs = 0.25;
- /*cursor_points.push_back(Vector3(+cs,0,0));
- cursor_points.push_back(Vector3(-cs,0,0));
- cursor_points.push_back(Vector3(0,+cs,0));
- cursor_points.push_back(Vector3(0,-cs,0));*/
- cursor_points.push_back(Vector3(0, 0, +cs * 2));
- cursor_points.push_back(Vector3(0, 0, -cs * 2));
-
- float ll = p3d->get_param(SliderJoint::PARAM_ANGULAR_LIMIT_LOWER);
- float ul = p3d->get_param(SliderJoint::PARAM_ANGULAR_LIMIT_UPPER);
- float lll = p3d->get_param(SliderJoint::PARAM_LINEAR_LIMIT_LOWER);
- float lul = p3d->get_param(SliderJoint::PARAM_LINEAR_LIMIT_UPPER);
-
- if (lll <= lul) {
-
- cursor_points.push_back(Vector3(lul, 0, 0));
- cursor_points.push_back(Vector3(lll, 0, 0));
-
- cursor_points.push_back(Vector3(lul, -cs, -cs));
- cursor_points.push_back(Vector3(lul, -cs, cs));
- cursor_points.push_back(Vector3(lul, -cs, cs));
- cursor_points.push_back(Vector3(lul, cs, cs));
- cursor_points.push_back(Vector3(lul, cs, cs));
- cursor_points.push_back(Vector3(lul, cs, -cs));
- cursor_points.push_back(Vector3(lul, cs, -cs));
- cursor_points.push_back(Vector3(lul, -cs, -cs));
-
- cursor_points.push_back(Vector3(lll, -cs, -cs));
- cursor_points.push_back(Vector3(lll, -cs, cs));
- cursor_points.push_back(Vector3(lll, -cs, cs));
- cursor_points.push_back(Vector3(lll, cs, cs));
- cursor_points.push_back(Vector3(lll, cs, cs));
- cursor_points.push_back(Vector3(lll, cs, -cs));
- cursor_points.push_back(Vector3(lll, cs, -cs));
- cursor_points.push_back(Vector3(lll, -cs, -cs));
+ const Vector3 p_lateral(p_joint_transform.basis.get_axis(2));
- } else {
+ Vector3 v_x, v_y, v_z;
- cursor_points.push_back(Vector3(+cs * 2, 0, 0));
- cursor_points.push_back(Vector3(-cs * 2, 0, 0));
- }
+ // Look the body with X
+ v_x = p_target - p_eye;
+ v_x.normalize();
- if (ll < ul) {
+ v_z = p_lateral;
+ v_z.normalize();
- const int points = 32;
+ v_y = v_z.cross(v_x);
+ v_y.normalize();
- for (int i = 0; i < points; i++) {
+ // Clamp X to Z axis
+ v_x = v_y.cross(v_z);
+ v_x.normalize();
- float s = ll + i * (ul - ll) / points;
- float n = ll + (i + 1) * (ul - ll) / points;
+ Basis base;
+ base.set(v_x, v_y, v_z);
- Vector3 from = Vector3(0, Math::cos(s), -Math::sin(s)) * cs;
- Vector3 to = Vector3(0, Math::cos(n), -Math::sin(n)) * cs;
+ // Absorb current joint transform
+ base = p_joint_transform.basis.inverse() * base;
- if (i == points - 1) {
- cursor_points.push_back(to);
- cursor_points.push_back(Vector3());
- }
- if (i == 0) {
- cursor_points.push_back(from);
- cursor_points.push_back(Vector3());
- }
+ return base;
+}
- cursor_points.push_back(from);
- cursor_points.push_back(to);
- }
+void JointGizmosDrawer::draw_circle(Vector3::Axis p_axis, real_t p_radius, const Transform &p_offset, const Basis &p_base, real_t p_limit_lower, real_t p_limit_upper, Vector<Vector3> &r_points, bool p_inverse) {
+
+ if (p_limit_lower == p_limit_upper) {
- cursor_points.push_back(Vector3(0, cs * 1.5, 0));
- cursor_points.push_back(Vector3());
+ r_points.push_back(p_offset.translated(Vector3()).origin);
+ r_points.push_back(p_offset.translated(p_base.xform(Vector3(0.5, 0, 0))).origin);
} else {
+ if (p_limit_lower > p_limit_upper) {
+ p_limit_lower = -Math_PI;
+ p_limit_upper = Math_PI;
+ }
+
const int points = 32;
for (int i = 0; i < points; i++) {
- float s = ll + i * (Math_PI * 2.0) / points;
- float n = ll + (i + 1) * (Math_PI * 2.0) / points;
+ real_t s = p_limit_lower + i * (p_limit_upper - p_limit_lower) / points;
+ real_t n = p_limit_lower + (i + 1) * (p_limit_upper - p_limit_lower) / points;
+
+ Vector3 from;
+ Vector3 to;
+ switch (p_axis) {
+ case Vector3::AXIS_X:
+ if (p_inverse) {
+ from = p_base.xform(Vector3(0, Math::sin(s), Math::cos(s))) * p_radius;
+ to = p_base.xform(Vector3(0, Math::sin(n), Math::cos(n))) * p_radius;
+ } else {
+ from = p_base.xform(Vector3(0, -Math::sin(s), Math::cos(s))) * p_radius;
+ to = p_base.xform(Vector3(0, -Math::sin(n), Math::cos(n))) * p_radius;
+ }
+ break;
+ case Vector3::AXIS_Y:
+ if (p_inverse) {
+ from = p_base.xform(Vector3(Math::cos(s), 0, -Math::sin(s))) * p_radius;
+ to = p_base.xform(Vector3(Math::cos(n), 0, -Math::sin(n))) * p_radius;
+ } else {
+ from = p_base.xform(Vector3(Math::cos(s), 0, Math::sin(s))) * p_radius;
+ to = p_base.xform(Vector3(Math::cos(n), 0, Math::sin(n))) * p_radius;
+ }
+ break;
+ case Vector3::AXIS_Z:
+ from = p_base.xform(Vector3(Math::cos(s), Math::sin(s), 0)) * p_radius;
+ to = p_base.xform(Vector3(Math::cos(n), Math::sin(n), 0)) * p_radius;
+ break;
+ }
- Vector3 from = Vector3(0, Math::cos(s), -Math::sin(s)) * cs;
- Vector3 to = Vector3(0, Math::cos(n), -Math::sin(n)) * cs;
+ if (i == points - 1) {
+ r_points.push_back(p_offset.translated(to).origin);
+ r_points.push_back(p_offset.translated(Vector3()).origin);
+ }
+ if (i == 0) {
+ r_points.push_back(p_offset.translated(from).origin);
+ r_points.push_back(p_offset.translated(Vector3()).origin);
+ }
- cursor_points.push_back(from);
- cursor_points.push_back(to);
+ r_points.push_back(p_offset.translated(from).origin);
+ r_points.push_back(p_offset.translated(to).origin);
}
- }
- Ref<Material> material = create_material("joint_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint"));
-
- add_collision_segments(cursor_points);
- add_lines(cursor_points, material);
-}
-
-SliderJointSpatialGizmo::SliderJointSpatialGizmo(SliderJoint *p_p3d) {
-
- p3d = p_p3d;
- set_spatial_node(p3d);
+ r_points.push_back(p_offset.translated(Vector3(0, p_radius * 1.5, 0)).origin);
+ r_points.push_back(p_offset.translated(Vector3()).origin);
+ }
}
-///////
-///
-////
-
-void ConeTwistJointSpatialGizmo::redraw() {
-
- clear();
- Vector<Vector3> points;
+void JointGizmosDrawer::draw_cone(const Transform &p_offset, const Basis &p_base, real_t p_swing, real_t p_twist, Vector<Vector3> &r_points) {
float r = 1.0;
- float w = r * Math::sin(p3d->get_param(ConeTwistJoint::PARAM_SWING_SPAN));
- float d = r * Math::cos(p3d->get_param(ConeTwistJoint::PARAM_SWING_SPAN));
+ float w = r * Math::sin(p_swing);
+ float d = r * Math::cos(p_swing);
//swing
for (int i = 0; i < 360; i += 10) {
@@ -3196,27 +3187,21 @@ void ConeTwistJointSpatialGizmo::redraw() {
Point2 a = Vector2(Math::sin(ra), Math::cos(ra)) * w;
Point2 b = Vector2(Math::sin(rb), Math::cos(rb)) * w;
- /*points.push_back(Vector3(a.x,0,a.y));
- points.push_back(Vector3(b.x,0,b.y));
- points.push_back(Vector3(0,a.x,a.y));
- points.push_back(Vector3(0,b.x,b.y));*/
- points.push_back(Vector3(d, a.x, a.y));
- points.push_back(Vector3(d, b.x, b.y));
+ r_points.push_back(p_offset.translated(p_base.xform(Vector3(d, a.x, a.y))).origin);
+ r_points.push_back(p_offset.translated(p_base.xform(Vector3(d, b.x, b.y))).origin);
if (i % 90 == 0) {
- points.push_back(Vector3(d, a.x, a.y));
- points.push_back(Vector3());
+ r_points.push_back(p_offset.translated(p_base.xform(Vector3(d, a.x, a.y))).origin);
+ r_points.push_back(p_offset.translated(p_base.xform(Vector3())).origin);
}
}
- points.push_back(Vector3());
- points.push_back(Vector3(1, 0, 0));
+ r_points.push_back(p_offset.translated(p_base.xform(Vector3())).origin);
+ r_points.push_back(p_offset.translated(p_base.xform(Vector3(1, 0, 0))).origin);
- //twist
- /*
- */
- float ts = Math::rad2deg(p3d->get_param(ConeTwistJoint::PARAM_TWIST_SPAN));
+ /// Twist
+ float ts = Math::rad2deg(p_twist);
ts = MIN(ts, 720);
for (int i = 0; i < int(ts); i += 5) {
@@ -3228,18 +3213,276 @@ void ConeTwistJointSpatialGizmo::redraw() {
Point2 a = Vector2(Math::sin(ra), Math::cos(ra)) * w * c;
Point2 b = Vector2(Math::sin(rb), Math::cos(rb)) * w * cn;
- /*points.push_back(Vector3(a.x,0,a.y));
- points.push_back(Vector3(b.x,0,b.y));
- points.push_back(Vector3(0,a.x,a.y));
- points.push_back(Vector3(0,b.x,b.y));*/
+ r_points.push_back(p_offset.translated(p_base.xform(Vector3(c, a.x, a.y))).origin);
+ r_points.push_back(p_offset.translated(p_base.xform(Vector3(cn, b.x, b.y))).origin);
+ }
+}
- points.push_back(Vector3(c, a.x, a.y));
- points.push_back(Vector3(cn, b.x, b.y));
+void PinJointSpatialGizmo::CreateGizmo(const Transform &p_offset, Vector<Vector3> &r_cursor_points) {
+ float cs = 0.25;
+
+ r_cursor_points.push_back(p_offset.translated(Vector3(+cs, 0, 0)).origin);
+ r_cursor_points.push_back(p_offset.translated(Vector3(-cs, 0, 0)).origin);
+ r_cursor_points.push_back(p_offset.translated(Vector3(0, +cs, 0)).origin);
+ r_cursor_points.push_back(p_offset.translated(Vector3(0, -cs, 0)).origin);
+ r_cursor_points.push_back(p_offset.translated(Vector3(0, 0, +cs)).origin);
+ r_cursor_points.push_back(p_offset.translated(Vector3(0, 0, -cs)).origin);
+}
+
+void PinJointSpatialGizmo::redraw() {
+
+ clear();
+ Vector<Vector3> cursor_points;
+ CreateGizmo(Transform(), cursor_points);
+ add_collision_segments(cursor_points);
+
+ Ref<Material> material = create_material("joint_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint"));
+
+ add_lines(cursor_points, material);
+}
+
+PinJointSpatialGizmo::PinJointSpatialGizmo(PinJoint *p_p3d) {
+
+ p3d = p_p3d;
+ set_spatial_node(p3d);
+}
+
+////
+
+void HingeJointSpatialGizmo::CreateGizmo(const Transform &p_offset, const Transform &p_trs_joint, const Transform &p_trs_body_a, const Transform &p_trs_body_b, real_t p_limit_lower, real_t p_limit_upper, bool p_use_limit, Vector<Vector3> &r_common_points, Vector<Vector3> *r_body_a_points, Vector<Vector3> *r_body_b_points) {
+
+ r_common_points.push_back(p_offset.translated(Vector3(0, 0, 0.5)).origin);
+ r_common_points.push_back(p_offset.translated(Vector3(0, 0, -0.5)).origin);
+
+ if (!p_use_limit) {
+ p_limit_upper = -1;
+ p_limit_lower = 0;
+ }
+
+ if (r_body_a_points) {
+
+ JointGizmosDrawer::draw_circle(Vector3::AXIS_Z,
+ BODY_A_RADIUS,
+ p_offset,
+ JointGizmosDrawer::look_body_toward_z(p_trs_joint, p_trs_body_a),
+ p_limit_lower,
+ p_limit_upper,
+ *r_body_a_points);
+ }
+
+ if (r_body_b_points) {
+ JointGizmosDrawer::draw_circle(Vector3::AXIS_Z,
+ BODY_B_RADIUS,
+ p_offset,
+ JointGizmosDrawer::look_body_toward_z(p_trs_joint, p_trs_body_b),
+ p_limit_lower,
+ p_limit_upper,
+ *r_body_b_points);
}
+}
+
+void HingeJointSpatialGizmo::redraw() {
+
+ const Spatial *node_body_a = Object::cast_to<Spatial>(p3d->get_node(p3d->get_node_a()));
+ const Spatial *node_body_b = Object::cast_to<Spatial>(p3d->get_node(p3d->get_node_b()));
+
+ Vector<Vector3> points;
+ Vector<Vector3> body_a_points;
+ Vector<Vector3> body_b_points;
+ CreateGizmo(
+ Transform(),
+ p3d->get_global_transform(),
+ node_body_a ? node_body_a->get_global_transform() : Transform(),
+ node_body_b ? node_body_b->get_global_transform() : Transform(),
+ p3d->get_param(HingeJoint::PARAM_LIMIT_LOWER),
+ p3d->get_param(HingeJoint::PARAM_LIMIT_UPPER),
+ p3d->get_flag(HingeJoint::FLAG_USE_LIMIT),
+ points,
+ node_body_a ? &body_a_points : NULL,
+ node_body_b ? &body_b_points : NULL);
+
+ clear();
+
+ Ref<Material> common_material = create_material("joint_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint"));
+ Ref<Material> body_a_material = create_material("joint_body_a_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint_body_a"));
+ Ref<Material> body_b_material = create_material("joint_body_b_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint_body_b"));
+
+ add_collision_segments(points);
+ add_collision_segments(body_a_points);
+ add_collision_segments(body_b_points);
+
+ add_lines(points, common_material);
+ add_lines(body_a_points, body_a_material);
+ add_lines(body_b_points, body_b_material);
+}
+
+HingeJointSpatialGizmo::HingeJointSpatialGizmo(HingeJoint *p_p3d) {
+
+ p3d = p_p3d;
+ set_spatial_node(p3d);
+}
+
+///////
+///
+////
+
+void SliderJointSpatialGizmo::CreateGizmo(const Transform &p_offset, const Transform &p_trs_joint, const Transform &p_trs_body_a, const Transform &p_trs_body_b, real_t p_angular_limit_lower, real_t p_angular_limit_upper, real_t p_linear_limit_lower, real_t p_linear_limit_upper, Vector<Vector3> &r_points, Vector<Vector3> *r_body_a_points, Vector<Vector3> *r_body_b_points) {
+
+ p_linear_limit_lower = -p_linear_limit_lower;
+ p_linear_limit_upper = -p_linear_limit_upper;
+
+ float cs = 0.25;
+ r_points.push_back(p_offset.translated(Vector3(0, 0, 0.5)).origin);
+ r_points.push_back(p_offset.translated(Vector3(0, 0, -0.5)).origin);
+
+ if (p_linear_limit_lower >= p_linear_limit_upper) {
+
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_upper, 0, 0)).origin);
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_lower, 0, 0)).origin);
+
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_upper, -cs, -cs)).origin);
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_upper, -cs, cs)).origin);
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_upper, -cs, cs)).origin);
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_upper, cs, cs)).origin);
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_upper, cs, cs)).origin);
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_upper, cs, -cs)).origin);
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_upper, cs, -cs)).origin);
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_upper, -cs, -cs)).origin);
+
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_lower, -cs, -cs)).origin);
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_lower, -cs, cs)).origin);
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_lower, -cs, cs)).origin);
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_lower, cs, cs)).origin);
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_lower, cs, cs)).origin);
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_lower, cs, -cs)).origin);
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_lower, cs, -cs)).origin);
+ r_points.push_back(p_offset.translated(Vector3(p_linear_limit_lower, -cs, -cs)).origin);
+
+ } else {
+
+ r_points.push_back(p_offset.translated(Vector3(+cs * 2, 0, 0)).origin);
+ r_points.push_back(p_offset.translated(Vector3(-cs * 2, 0, 0)).origin);
+ }
+
+ if (r_body_a_points)
+ JointGizmosDrawer::draw_circle(
+ Vector3::AXIS_X,
+ BODY_A_RADIUS,
+ p_offset,
+ JointGizmosDrawer::look_body_toward(Vector3::AXIS_X, p_trs_joint, p_trs_body_a),
+ p_angular_limit_lower,
+ p_angular_limit_upper,
+ *r_body_a_points);
+
+ if (r_body_b_points)
+ JointGizmosDrawer::draw_circle(
+ Vector3::AXIS_X,
+ BODY_B_RADIUS,
+ p_offset,
+ JointGizmosDrawer::look_body_toward(Vector3::AXIS_X, p_trs_joint, p_trs_body_b),
+ p_angular_limit_lower,
+ p_angular_limit_upper,
+ *r_body_b_points,
+ true);
+}
+
+void SliderJointSpatialGizmo::redraw() {
+
+ const Spatial *node_body_a = Object::cast_to<Spatial>(p3d->get_node(p3d->get_node_a()));
+ const Spatial *node_body_b = Object::cast_to<Spatial>(p3d->get_node(p3d->get_node_b()));
+
+ clear();
+ Vector<Vector3> cursor_points;
+ Vector<Vector3> body_a_points;
+ Vector<Vector3> body_b_points;
+
+ CreateGizmo(
+ Transform(),
+ p3d->get_global_transform(),
+ node_body_a ? node_body_a->get_global_transform() : Transform(),
+ node_body_b ? node_body_b->get_global_transform() : Transform(),
+ p3d->get_param(SliderJoint::PARAM_ANGULAR_LIMIT_LOWER),
+ p3d->get_param(SliderJoint::PARAM_ANGULAR_LIMIT_UPPER),
+ p3d->get_param(SliderJoint::PARAM_LINEAR_LIMIT_LOWER),
+ p3d->get_param(SliderJoint::PARAM_LINEAR_LIMIT_UPPER),
+ cursor_points,
+ node_body_a ? &body_a_points : NULL,
+ node_body_b ? &body_b_points : NULL);
Ref<Material> material = create_material("joint_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint"));
+ Ref<Material> body_a_material = create_material("joint_body_a_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint_body_a"));
+ Ref<Material> body_b_material = create_material("joint_body_b_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint_body_b"));
+
+ add_collision_segments(cursor_points);
+ add_collision_segments(body_a_points);
+ add_collision_segments(body_b_points);
+
+ add_lines(cursor_points, material);
+ add_lines(body_a_points, body_a_material);
+ add_lines(body_b_points, body_b_material);
+}
+
+SliderJointSpatialGizmo::SliderJointSpatialGizmo(SliderJoint *p_p3d) {
+
+ p3d = p_p3d;
+ set_spatial_node(p3d);
+}
+
+///////
+///
+////
+
+void ConeTwistJointSpatialGizmo::CreateGizmo(const Transform &p_offset, const Transform &p_trs_joint, const Transform &p_trs_body_a, const Transform &p_trs_body_b, real_t p_swing, real_t p_twist, Vector<Vector3> &r_points, Vector<Vector3> *r_body_a_points, Vector<Vector3> *r_body_b_points) {
+
+ if (r_body_a_points)
+ JointGizmosDrawer::draw_cone(
+ p_offset,
+ JointGizmosDrawer::look_body(p_trs_joint, p_trs_body_a),
+ p_swing,
+ p_twist,
+ *r_body_a_points);
+
+ if (r_body_b_points)
+ JointGizmosDrawer::draw_cone(
+ p_offset,
+ JointGizmosDrawer::look_body(p_trs_joint, p_trs_body_b),
+ p_swing,
+ p_twist,
+ *r_body_b_points);
+}
+
+void ConeTwistJointSpatialGizmo::redraw() {
+
+ const Spatial *node_body_a = Object::cast_to<Spatial>(p3d->get_node(p3d->get_node_a()));
+ const Spatial *node_body_b = Object::cast_to<Spatial>(p3d->get_node(p3d->get_node_b()));
+
+ clear();
+ Vector<Vector3> points;
+ Vector<Vector3> body_a_points;
+ Vector<Vector3> body_b_points;
+
+ CreateGizmo(
+ Transform(),
+ p3d->get_global_transform(),
+ node_body_a ? node_body_a->get_global_transform() : Transform(),
+ node_body_b ? node_body_b->get_global_transform() : Transform(),
+ p3d->get_param(ConeTwistJoint::PARAM_SWING_SPAN),
+ p3d->get_param(ConeTwistJoint::PARAM_TWIST_SPAN),
+ points,
+ node_body_a ? &body_a_points : NULL,
+ node_body_b ? &body_b_points : NULL);
+
+ Ref<Material> material = create_material("joint_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint"));
+ Ref<Material> body_a_material = create_material("joint_body_a_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint_body_a"));
+ Ref<Material> body_b_material = create_material("joint_body_b_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint_body_b"));
+
add_collision_segments(points);
+ add_collision_segments(body_a_points);
+ add_collision_segments(body_b_points);
+
add_lines(points, material);
+ add_lines(body_a_points, body_a_material);
+ add_lines(body_b_points, body_b_material);
}
ConeTwistJointSpatialGizmo::ConeTwistJointSpatialGizmo(ConeTwistJoint *p_p3d) {
@@ -3248,26 +3491,46 @@ ConeTwistJointSpatialGizmo::ConeTwistJointSpatialGizmo(ConeTwistJoint *p_p3d) {
set_spatial_node(p3d);
}
-////////
-/// \brief SpatialEditorGizmos::singleton
-///
///////
///
////
-void Generic6DOFJointSpatialGizmo::redraw() {
+void Generic6DOFJointSpatialGizmo::CreateGizmo(
+ const Transform &p_offset,
+ const Transform &p_trs_joint,
+ const Transform &p_trs_body_a,
+ const Transform &p_trs_body_b,
+ real_t p_angular_limit_lower_x,
+ real_t p_angular_limit_upper_x,
+ real_t p_linear_limit_lower_x,
+ real_t p_linear_limit_upper_x,
+ bool p_enable_angular_limit_x,
+ bool p_enable_linear_limit_x,
+ real_t p_angular_limit_lower_y,
+ real_t p_angular_limit_upper_y,
+ real_t p_linear_limit_lower_y,
+ real_t p_linear_limit_upper_y,
+ bool p_enable_angular_limit_y,
+ bool p_enable_linear_limit_y,
+ real_t p_angular_limit_lower_z,
+ real_t p_angular_limit_upper_z,
+ real_t p_linear_limit_lower_z,
+ real_t p_linear_limit_upper_z,
+ bool p_enable_angular_limit_z,
+ bool p_enable_linear_limit_z,
+ Vector<Vector3> &r_points,
+ Vector<Vector3> *r_body_a_points,
+ Vector<Vector3> *r_body_b_points) {
- clear();
- Vector<Vector3> cursor_points;
float cs = 0.25;
for (int ax = 0; ax < 3; ax++) {
- /*cursor_points.push_back(Vector3(+cs,0,0));
- cursor_points.push_back(Vector3(-cs,0,0));
- cursor_points.push_back(Vector3(0,+cs,0));
- cursor_points.push_back(Vector3(0,-cs,0));
- cursor_points.push_back(Vector3(0,0,+cs*2));
- cursor_points.push_back(Vector3(0,0,-cs*2)); */
+ /*r_points.push_back(p_offset.translated(Vector3(+cs,0,0)).origin);
+ r_points.push_back(p_offset.translated(Vector3(-cs,0,0)).origin);
+ r_points.push_back(p_offset.translated(Vector3(0,+cs,0)).origin);
+ r_points.push_back(p_offset.translated(Vector3(0,-cs,0)).origin);
+ r_points.push_back(p_offset.translated(Vector3(0,0,+cs*2)).origin);
+ r_points.push_back(p_offset.translated(Vector3(0,0,-cs*2)).origin); */
float ll;
float ul;
@@ -3280,61 +3543,50 @@ void Generic6DOFJointSpatialGizmo::redraw() {
switch (ax) {
case 0:
- ll = p3d->get_param_x(Generic6DOFJoint::PARAM_ANGULAR_LOWER_LIMIT);
- ul = p3d->get_param_x(Generic6DOFJoint::PARAM_ANGULAR_UPPER_LIMIT);
- lll = p3d->get_param_x(Generic6DOFJoint::PARAM_LINEAR_LOWER_LIMIT);
- lul = p3d->get_param_x(Generic6DOFJoint::PARAM_LINEAR_UPPER_LIMIT);
- enable_ang = p3d->get_flag_x(Generic6DOFJoint::FLAG_ENABLE_ANGULAR_LIMIT);
- enable_lin = p3d->get_flag_x(Generic6DOFJoint::FLAG_ENABLE_LINEAR_LIMIT);
+ ll = p_angular_limit_lower_x;
+ ul = p_angular_limit_upper_x;
+ lll = -p_linear_limit_lower_x;
+ lul = -p_linear_limit_upper_x;
+ enable_ang = p_enable_angular_limit_x;
+ enable_lin = p_enable_linear_limit_x;
a1 = 0;
a2 = 1;
a3 = 2;
break;
case 1:
- ll = p3d->get_param_y(Generic6DOFJoint::PARAM_ANGULAR_LOWER_LIMIT);
- ul = p3d->get_param_y(Generic6DOFJoint::PARAM_ANGULAR_UPPER_LIMIT);
- lll = p3d->get_param_y(Generic6DOFJoint::PARAM_LINEAR_LOWER_LIMIT);
- lul = p3d->get_param_y(Generic6DOFJoint::PARAM_LINEAR_UPPER_LIMIT);
- enable_ang = p3d->get_flag_y(Generic6DOFJoint::FLAG_ENABLE_ANGULAR_LIMIT);
- enable_lin = p3d->get_flag_y(Generic6DOFJoint::FLAG_ENABLE_LINEAR_LIMIT);
-
+ ll = p_angular_limit_lower_y;
+ ul = p_angular_limit_upper_y;
+ lll = -p_linear_limit_lower_y;
+ lul = -p_linear_limit_upper_y;
+ enable_ang = p_enable_angular_limit_y;
+ enable_lin = p_enable_linear_limit_y;
a1 = 1;
a2 = 2;
a3 = 0;
break;
case 2:
- ll = p3d->get_param_z(Generic6DOFJoint::PARAM_ANGULAR_LOWER_LIMIT);
- ul = p3d->get_param_z(Generic6DOFJoint::PARAM_ANGULAR_UPPER_LIMIT);
- lll = p3d->get_param_z(Generic6DOFJoint::PARAM_LINEAR_LOWER_LIMIT);
- lul = p3d->get_param_z(Generic6DOFJoint::PARAM_LINEAR_UPPER_LIMIT);
- enable_ang = p3d->get_flag_z(Generic6DOFJoint::FLAG_ENABLE_ANGULAR_LIMIT);
- enable_lin = p3d->get_flag_z(Generic6DOFJoint::FLAG_ENABLE_LINEAR_LIMIT);
-
+ ll = p_angular_limit_lower_z;
+ ul = p_angular_limit_upper_z;
+ lll = -p_linear_limit_lower_z;
+ lul = -p_linear_limit_upper_z;
+ enable_ang = p_enable_angular_limit_z;
+ enable_lin = p_enable_linear_limit_z;
a1 = 2;
a2 = 0;
a3 = 1;
break;
}
-#define ADD_VTX(x, y, z) \
- { \
- Vector3 v; \
- v[a1] = (x); \
- v[a2] = (y); \
- v[a3] = (z); \
- cursor_points.push_back(v); \
- }
-
-#define SET_VTX(what, x, y, z) \
- { \
- Vector3 v; \
- v[a1] = (x); \
- v[a2] = (y); \
- v[a3] = (z); \
- what = v; \
+#define ADD_VTX(x, y, z) \
+ { \
+ Vector3 v; \
+ v[a1] = (x); \
+ v[a2] = (y); \
+ v[a3] = (z); \
+ r_points.push_back(p_offset.translated(v).origin); \
}
- if (enable_lin && lll <= lul) {
+ if (enable_lin && lll >= lul) {
ADD_VTX(lul, 0, 0);
ADD_VTX(lll, 0, 0);
@@ -3363,69 +3615,88 @@ void Generic6DOFJointSpatialGizmo::redraw() {
ADD_VTX(-cs * 2, 0, 0);
}
- if (enable_ang && ll <= ul) {
-
- const int points = 32;
-
- for (int i = 0; i < points; i++) {
-
- float s = ll + i * (ul - ll) / points;
- float n = ll + (i + 1) * (ul - ll) / points;
-
- Vector3 from;
- SET_VTX(from, 0, Math::cos(s), -Math::sin(s));
- from *= cs;
- Vector3 to;
- SET_VTX(to, 0, Math::cos(n), -Math::sin(n));
- to *= cs;
-
- if (i == points - 1) {
- cursor_points.push_back(to);
- cursor_points.push_back(Vector3());
- }
- if (i == 0) {
- cursor_points.push_back(from);
- cursor_points.push_back(Vector3());
- }
-
- cursor_points.push_back(from);
- cursor_points.push_back(to);
- }
-
- ADD_VTX(0, cs * 1.5, 0);
- cursor_points.push_back(Vector3());
-
- } else {
-
- const int points = 32;
-
- for (int i = 0; i < points; i++) {
+ if (!enable_ang) {
+ ll = 0;
+ ul = -1;
+ }
- float s = ll + i * (Math_PI * 2.0) / points;
- float n = ll + (i + 1) * (Math_PI * 2.0) / points;
+ if (r_body_a_points)
+ JointGizmosDrawer::draw_circle(
+ static_cast<Vector3::Axis>(ax),
+ BODY_A_RADIUS,
+ p_offset,
+ JointGizmosDrawer::look_body_toward(static_cast<Vector3::Axis>(ax), p_trs_joint, p_trs_body_a),
+ ll,
+ ul,
+ *r_body_a_points,
+ true);
+
+ if (r_body_b_points)
+ JointGizmosDrawer::draw_circle(
+ static_cast<Vector3::Axis>(ax),
+ BODY_B_RADIUS,
+ p_offset,
+ JointGizmosDrawer::look_body_toward(static_cast<Vector3::Axis>(ax), p_trs_joint, p_trs_body_b),
+ ll,
+ ul,
+ *r_body_b_points);
+ }
- //Vector3 from=Vector3(0,Math::cos(s),-Math::sin(s) )*cs;
- //Vector3 to=Vector3( 0,Math::cos(n),-Math::sin(n) )*cs;
+#undef ADD_VTX
+}
- Vector3 from;
- SET_VTX(from, 0, Math::cos(s), -Math::sin(s));
- from *= cs;
- Vector3 to;
- SET_VTX(to, 0, Math::cos(n), -Math::sin(n));
- to *= cs;
+void Generic6DOFJointSpatialGizmo::redraw() {
- cursor_points.push_back(from);
- cursor_points.push_back(to);
- }
- }
- }
+ const Spatial *node_body_a = Object::cast_to<Spatial>(p3d->get_node(p3d->get_node_a()));
+ const Spatial *node_body_b = Object::cast_to<Spatial>(p3d->get_node(p3d->get_node_b()));
-#undef ADD_VTX
-#undef SET_VTX
+ clear();
+ Vector<Vector3> cursor_points;
+ Vector<Vector3> body_a_points;
+ Vector<Vector3> body_b_points;
+
+ CreateGizmo(
+ Transform(),
+ p3d->get_global_transform(),
+ node_body_a ? node_body_a->get_global_transform() : Transform(),
+ node_body_b ? node_body_b->get_global_transform() : Transform(),
+
+ p3d->get_param_x(Generic6DOFJoint::PARAM_ANGULAR_LOWER_LIMIT),
+ p3d->get_param_x(Generic6DOFJoint::PARAM_ANGULAR_UPPER_LIMIT),
+ p3d->get_param_x(Generic6DOFJoint::PARAM_LINEAR_LOWER_LIMIT),
+ p3d->get_param_x(Generic6DOFJoint::PARAM_LINEAR_UPPER_LIMIT),
+ p3d->get_flag_x(Generic6DOFJoint::FLAG_ENABLE_ANGULAR_LIMIT),
+ p3d->get_flag_x(Generic6DOFJoint::FLAG_ENABLE_LINEAR_LIMIT),
+
+ p3d->get_param_y(Generic6DOFJoint::PARAM_ANGULAR_LOWER_LIMIT),
+ p3d->get_param_y(Generic6DOFJoint::PARAM_ANGULAR_UPPER_LIMIT),
+ p3d->get_param_y(Generic6DOFJoint::PARAM_LINEAR_LOWER_LIMIT),
+ p3d->get_param_y(Generic6DOFJoint::PARAM_LINEAR_UPPER_LIMIT),
+ p3d->get_flag_y(Generic6DOFJoint::FLAG_ENABLE_ANGULAR_LIMIT),
+ p3d->get_flag_y(Generic6DOFJoint::FLAG_ENABLE_LINEAR_LIMIT),
+
+ p3d->get_param_z(Generic6DOFJoint::PARAM_ANGULAR_LOWER_LIMIT),
+ p3d->get_param_z(Generic6DOFJoint::PARAM_ANGULAR_UPPER_LIMIT),
+ p3d->get_param_z(Generic6DOFJoint::PARAM_LINEAR_LOWER_LIMIT),
+ p3d->get_param_z(Generic6DOFJoint::PARAM_LINEAR_UPPER_LIMIT),
+ p3d->get_flag_z(Generic6DOFJoint::FLAG_ENABLE_ANGULAR_LIMIT),
+ p3d->get_flag_z(Generic6DOFJoint::FLAG_ENABLE_LINEAR_LIMIT),
+
+ cursor_points,
+ node_body_a ? &body_a_points : NULL,
+ node_body_a ? &body_b_points : NULL);
Ref<Material> material = create_material("joint_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint"));
+ Ref<Material> body_a_material = create_material("joint_body_a_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint_body_a"));
+ Ref<Material> body_b_material = create_material("joint_body_b_material", EDITOR_GET("editors/3d_gizmos/gizmo_colors/joint_body_b"));
+
add_collision_segments(cursor_points);
+ add_collision_segments(body_a_points);
+ add_collision_segments(body_b_points);
+
add_lines(cursor_points, material);
+ add_lines(body_a_points, body_a_material);
+ add_lines(body_b_points, body_b_material);
}
Generic6DOFJointSpatialGizmo::Generic6DOFJointSpatialGizmo(Generic6DOFJoint *p_p3d) {
@@ -3618,6 +3889,8 @@ SpatialEditorGizmos::SpatialEditorGizmos() {
EDITOR_DEF("editors/3d_gizmos/gizmo_colors/baked_indirect_light", Color(0.5, 0.6, 1));
EDITOR_DEF("editors/3d_gizmos/gizmo_colors/shape", Color(0.5, 0.7, 1));
EDITOR_DEF("editors/3d_gizmos/gizmo_colors/joint", Color(0.5, 0.8, 1));
+ EDITOR_DEF("editors/3d_gizmos/gizmo_colors/joint_body_a", Color(0.6, 0.8, 1));
+ EDITOR_DEF("editors/3d_gizmos/gizmo_colors/joint_body_b", Color(0.6, 0.9, 1));
EDITOR_DEF("editors/3d_gizmos/gizmo_colors/navigation_edge", Color(0.5, 1, 1));
EDITOR_DEF("editors/3d_gizmos/gizmo_colors/navigation_edge_disabled", Color(0.7, 0.7, 0.7));
EDITOR_DEF("editors/3d_gizmos/gizmo_colors/navigation_solid", Color(0.5, 1, 1, 0.4));
diff --git a/editor/spatial_editor_gizmos.h b/editor/spatial_editor_gizmos.h
index ea8a33d2c6..7bf632d371 100644
--- a/editor/spatial_editor_gizmos.h
+++ b/editor/spatial_editor_gizmos.h
@@ -107,6 +107,7 @@ protected:
void add_solid_box(Ref<Material> &p_material, Vector3 size);
void set_spatial_node(Spatial *p_node);
+ const Spatial *get_spatial_node() const { return spatial_node; }
static void _bind_methods();
@@ -372,6 +373,21 @@ public:
NavigationMeshSpatialGizmo(NavigationMeshInstance *p_navmesh = NULL);
};
+class JointGizmosDrawer {
+public:
+ static Basis look_body(const Transform &joint_transform, const Transform &body_transform);
+ static Basis look_body_toward(Vector3::Axis p_axis, const Transform &joint_transform, const Transform &body_transform);
+ static Basis look_body_toward_x(const Transform &joint_transform, const Transform &body_transform);
+ static Basis look_body_toward_y(const Transform &joint_transform, const Transform &body_transform);
+ /// Special function just used for physics joints, it that returns a basis constrained toward Joint Z axis
+ /// with axis X and Y that are looking toward the body and oriented toward up
+ static Basis look_body_toward_z(const Transform &joint_transform, const Transform &body_transform);
+
+ // Draw circle around p_axis
+ static void draw_circle(Vector3::Axis p_axis, real_t p_radius, const Transform &p_offset, const Basis &p_base, real_t p_limit_lower, real_t p_limit_upper, Vector<Vector3> &r_points, bool p_inverse = false);
+ static void draw_cone(const Transform &p_offset, const Basis &p_base, real_t p_swing, real_t p_twist, Vector<Vector3> &r_points);
+};
+
class PinJointSpatialGizmo : public EditorSpatialGizmo {
GDCLASS(PinJointSpatialGizmo, EditorSpatialGizmo);
@@ -379,6 +395,8 @@ class PinJointSpatialGizmo : public EditorSpatialGizmo {
PinJoint *p3d;
public:
+ static void CreateGizmo(const Transform &p_offset, Vector<Vector3> &r_cursor_points);
+
void redraw();
PinJointSpatialGizmo(PinJoint *p_p3d = NULL);
};
@@ -390,6 +408,8 @@ class HingeJointSpatialGizmo : public EditorSpatialGizmo {
HingeJoint *p3d;
public:
+ static void CreateGizmo(const Transform &p_offset, const Transform &p_trs_joint, const Transform &p_trs_body_a, const Transform &p_trs_body_b, real_t p_limit_lower, real_t p_limit_upper, bool p_use_limit, Vector<Vector3> &r_common_points, Vector<Vector3> *r_body_a_points, Vector<Vector3> *r_body_b_points);
+
void redraw();
HingeJointSpatialGizmo(HingeJoint *p_p3d = NULL);
};
@@ -401,6 +421,8 @@ class SliderJointSpatialGizmo : public EditorSpatialGizmo {
SliderJoint *p3d;
public:
+ static void CreateGizmo(const Transform &p_offset, const Transform &p_trs_joint, const Transform &p_trs_body_a, const Transform &p_trs_body_b, real_t p_angular_limit_lower, real_t p_angular_limit_upper, real_t p_linear_limit_lower, real_t p_linear_limit_upper, Vector<Vector3> &r_points, Vector<Vector3> *r_body_a_points, Vector<Vector3> *r_body_b_points);
+
void redraw();
SliderJointSpatialGizmo(SliderJoint *p_p3d = NULL);
};
@@ -412,6 +434,8 @@ class ConeTwistJointSpatialGizmo : public EditorSpatialGizmo {
ConeTwistJoint *p3d;
public:
+ static void CreateGizmo(const Transform &p_offset, const Transform &p_trs_joint, const Transform &p_trs_body_a, const Transform &p_trs_body_b, real_t p_swing, real_t p_twist, Vector<Vector3> &r_points, Vector<Vector3> *r_body_a_points, Vector<Vector3> *r_body_b_points);
+
void redraw();
ConeTwistJointSpatialGizmo(ConeTwistJoint *p_p3d = NULL);
};
@@ -423,6 +447,33 @@ class Generic6DOFJointSpatialGizmo : public EditorSpatialGizmo {
Generic6DOFJoint *p3d;
public:
+ static void CreateGizmo(
+ const Transform &p_offset,
+ const Transform &p_trs_joint,
+ const Transform &p_trs_body_a,
+ const Transform &p_trs_body_b,
+ real_t p_angular_limit_lower_x,
+ real_t p_angular_limit_upper_x,
+ real_t p_linear_limit_lower_x,
+ real_t p_linear_limit_upper_x,
+ bool p_enable_angular_limit_x,
+ bool p_enable_linear_limit_x,
+ real_t p_angular_limit_lower_y,
+ real_t p_angular_limit_upper_y,
+ real_t p_linear_limit_lower_y,
+ real_t p_linear_limit_upper_y,
+ bool p_enable_angular_limit_y,
+ bool p_enable_linear_limit_y,
+ real_t p_angular_limit_lower_z,
+ real_t p_angular_limit_upper_z,
+ real_t p_linear_limit_lower_z,
+ real_t p_linear_limit_upper_z,
+ bool p_enable_angular_limit_z,
+ bool p_enable_linear_limit_z,
+ Vector<Vector3> &r_points,
+ Vector<Vector3> *r_body_a_points,
+ Vector<Vector3> *r_body_b_points);
+
void redraw();
Generic6DOFJointSpatialGizmo(Generic6DOFJoint *p_p3d = NULL);
};
diff --git a/editor/translations/af.po b/editor/translations/af.po
index accb9d6d5e..86d5294a57 100644
--- a/editor/translations/af.po
+++ b/editor/translations/af.po
@@ -8,7 +8,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-27 02:44+0000\n"
+"PO-Revision-Date: 2017-12-01 11:44+0000\n"
"Last-Translator: Ray West <the.raxar@gmail.com>\n"
"Language-Team: Afrikaans <https://hosted.weblate.org/projects/godot-engine/"
"godot/af/>\n"
@@ -27,8 +27,9 @@ msgid "All Selection"
msgstr "Alle Seleksie"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Skuif Byvoeg Sleutel"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Anim Verander Waarde"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -39,7 +40,8 @@ msgid "Anim Change Transform"
msgstr "Anim Verander Transform"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Anim Verander Waarde"
#: editor/animation_editor.cpp
@@ -243,7 +245,7 @@ msgstr "Animasie Zoem."
#: editor/animation_editor.cpp
msgid "Length (s):"
-msgstr "Lengte (s):"
+msgstr "Lengte(s):"
#: editor/animation_editor.cpp
msgid "Animation length (in seconds)."
@@ -537,8 +539,8 @@ msgstr "Koppel tans Sein:"
#: editor/connections_dialog.cpp
#, fuzzy
-msgid "Create Subscription"
-msgstr "Skep Intekening"
+msgid "Disconnect '%s' from '%s'"
+msgstr "Koppel '%s' aan '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -554,7 +556,8 @@ msgid "Signals"
msgstr "Seine"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Skep Nuwe"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -569,7 +572,7 @@ msgstr "Onlangse:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Soek:"
@@ -610,6 +613,7 @@ msgstr ""
"Verandering sal eers in werking tree nadat herlaai word."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Afhanklikhede"
@@ -713,9 +717,10 @@ msgid "Delete selected files?"
msgstr "Skrap gekose lêers?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Skrap"
@@ -858,6 +863,11 @@ msgid "Rename Audio Bus"
msgstr "Hernoem Oudio-Bus"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Wissel Oudio-Bus Solo"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Wissel Oudio-Bus Solo"
@@ -905,8 +915,8 @@ msgstr "Omseil"
msgid "Bus options"
msgstr "Bus opsies"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Dupliseer"
@@ -919,6 +929,10 @@ msgid "Delete Effect"
msgstr "Skrap Effek"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "Voeg Oudio-Bus By"
@@ -1072,7 +1086,8 @@ msgstr "Pad:"
msgid "Node Name:"
msgstr "Nodus Naam:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Naam"
@@ -1080,10 +1095,6 @@ msgstr "Naam"
msgid "Singleton"
msgstr "EnkelHouer"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Lys:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "Toneel word Opgedateer"
@@ -1096,6 +1107,14 @@ msgstr "Plaaslike veranderinge word gebêre..."
msgid "Updating scene.."
msgstr "Toneel word opgedateer..."
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "Kies asseblief eerste die basis gids"
@@ -1146,6 +1165,22 @@ msgstr "Lêer Bestaan reeds. Oorskryf?"
msgid "Select Current Folder"
msgstr "Skep Vouer"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Verfris"
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr "Alle Erkende"
@@ -1193,10 +1228,6 @@ msgid "Go Up"
msgstr "Gaan Op"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Verfris"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "Wissel Versteekte Lêers"
@@ -1376,7 +1407,8 @@ msgstr "Afvoer:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "Vee uit"
@@ -2266,6 +2298,14 @@ msgstr ""
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr ""
@@ -2401,7 +2441,7 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+msgid "Request Failed."
msgstr ""
#: editor/export_template_manager.cpp
@@ -2448,8 +2488,9 @@ msgid "Connecting.."
msgstr ""
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
-msgstr ""
+#, fuzzy
+msgid "Can't Connect"
+msgstr "Koppel"
#: editor/export_template_manager.cpp
msgid "Connected"
@@ -2539,6 +2580,11 @@ msgid "Error moving:\n"
msgstr ""
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Fout terwyl laai:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr ""
@@ -2571,32 +2617,35 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Dupliseer"
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Dupliseer"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
+msgid "Expand all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Rename.."
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Move To.."
+msgid "Rename.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
+msgid "Move To.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr ""
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Open Lêer(s)"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2611,6 +2660,11 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Dupliseer"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2703,6 +2757,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3266,6 +3328,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr ""
@@ -3307,6 +3370,27 @@ msgstr ""
msgid "Assets ZIP File"
msgstr ""
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3441,7 +3525,6 @@ msgid "Toggles snapping"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3621,16 +3704,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3822,6 +3895,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3862,6 +3951,18 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV1"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV2"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4038,10 +4139,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4059,15 +4156,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4129,10 +4226,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4415,11 +4508,13 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4435,7 +4530,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4448,6 +4543,10 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+msgid "Copy Script Path"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4634,11 +4733,7 @@ msgid "Clone Down"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+msgid "Fold/Unfold Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -4966,6 +5061,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5070,6 +5173,18 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5142,10 +5257,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5187,6 +5298,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5569,6 +5684,10 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Tile Set"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5580,6 +5699,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr ""
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5697,10 +5820,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -5957,7 +6076,7 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
+msgid "Erase Input Action"
msgstr ""
#: editor/project_settings_editor.cpp
@@ -6025,6 +6144,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6201,6 +6324,10 @@ msgid "New Script"
msgstr ""
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6232,6 +6359,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6240,10 +6371,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6793,6 +6920,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6841,15 +6972,52 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Skuif huidige baan op."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7498,6 +7666,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7526,10 +7710,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7582,10 +7762,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr ""
@@ -7644,3 +7820,13 @@ msgstr ""
#: scene/resources/dynamic_font.cpp
msgid "Invalid font size."
msgstr ""
+
+#~ msgid "Move Add Key"
+#~ msgstr "Skuif Byvoeg Sleutel"
+
+#, fuzzy
+#~ msgid "Create Subscription"
+#~ msgstr "Skep Intekening"
+
+#~ msgid "List:"
+#~ msgstr "Lys:"
diff --git a/editor/translations/ar.po b/editor/translations/ar.po
index 42b75c6802..ccf40c8316 100644
--- a/editor/translations/ar.po
+++ b/editor/translations/ar.po
@@ -12,13 +12,14 @@
# noureldin sharaf <sharaf.noureldin@yahoo.com>, 2017.
# omar anwar aglan <omar.aglan91@yahoo.com>, 2017.
# OWs Tetra <owstetra@gmail.com>, 2017.
+# Rex_sa <asd1234567890m@gmail.com>, 2017.
# Wajdi Feki <wajdi.feki@gmail.com>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-27 23:44+0000\n"
-"Last-Translator: omar anwar aglan <omar.aglan91@yahoo.com>\n"
+"PO-Revision-Date: 2017-12-20 15:42+0000\n"
+"Last-Translator: Rex_sa <asd1234567890m@gmail.com>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/"
"godot/ar/>\n"
"Language: ar\n"
@@ -26,7 +27,7 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
-"X-Generator: Weblate 2.18-dev\n"
+"X-Generator: Weblate 2.18\n"
#: editor/animation_editor.cpp
msgid "Disabled"
@@ -37,8 +38,9 @@ msgid "All Selection"
msgstr "ÙƒÙÙ„ Ø§Ù„Ù…ÙØ­Ø¯Ø¯"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Ù…ÙØªØ§Ø­ Ø¥Ø¶Ø§ÙØ© الحركة"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "قيمة تغيير التحريك"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -49,7 +51,8 @@ msgid "Anim Change Transform"
msgstr "تحويل تغيير التحريك"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "قيمة تغيير التحريك"
#: editor/animation_editor.cpp
@@ -543,8 +546,9 @@ msgid "Connecting Signal:"
msgstr "يوصل الإشارة:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "عمل اشتراك"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "وصل '%s' إلي '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -560,7 +564,8 @@ msgid "Signals"
msgstr "الإشارات"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "إنشاء جديد"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -575,7 +580,7 @@ msgstr "الحالي:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "بحث:"
@@ -616,6 +621,7 @@ msgstr ""
"التغييرات ستظهر بعد إعادة التشغيل."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "التبعيات"
@@ -718,9 +724,10 @@ msgid "Delete selected files?"
msgstr "إمسح Ø§Ù„Ù…Ù„ÙØ§Øª المحددة؟"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "مسح"
@@ -863,6 +870,11 @@ msgid "Rename Audio Bus"
msgstr "إعادة تسمية بيوس الصوت"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "تبديل بيوس الصوت إلي ÙØ±Ø¯ÙŠ"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "تبديل بيوس الصوت إلي ÙØ±Ø¯ÙŠ"
@@ -910,8 +922,8 @@ msgstr "تخطي"
msgid "Bus options"
msgstr "إعدادات البيوس"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "تكرير"
@@ -924,6 +936,10 @@ msgid "Delete Effect"
msgstr "إمسح التأثير"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "أض٠بيوس الصوت"
@@ -1074,7 +1090,8 @@ msgstr "المسار:"
msgid "Node Name:"
msgstr "إسم العقدة:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "الأسم"
@@ -1082,10 +1099,6 @@ msgstr "الأسم"
msgid "Singleton"
msgstr "Ø§Ù„ÙØ±Ø¯ÙŠØ©"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "القائمة:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "ÙŠÙØ­Ø¯Ø« المشهد"
@@ -1098,6 +1111,14 @@ msgstr "جاري تخزين التعديلات المحلية.."
msgid "Updating scene.."
msgstr "ÙŠÙØ­Ø¯Ø« المشهد..."
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "من ÙØ¶Ù„Ùƒ حدد الوجهة الأساسية أولاً"
@@ -1144,9 +1165,24 @@ msgid "File Exists, Overwrite?"
msgstr "المل٠موجود، إستبدال؟"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "أنشئ مجلد"
+msgstr "تحديد المجلد الحالي"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "نسخ المسار"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "أظهر ÙÙŠ مدير Ø§Ù„Ù…Ù„ÙØ§Øª"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "مجلد جديد.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "تحديث"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1195,10 +1231,6 @@ msgid "Go Up"
msgstr "إذهب للأعلي"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "تحديث"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "أظهر Ø§Ù„Ù…Ù„ÙØ§Øª المخÙية"
@@ -1378,7 +1410,8 @@ msgstr "الخرج:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "خالي"
@@ -1533,14 +1566,12 @@ msgstr ""
"هذا النظام."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand all properties"
-msgstr "توسيع الكل"
+msgstr "توسيع كل Ø§Ù„ØªÙØ§ØµÙŠÙ„"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Collapse all properties"
-msgstr "طوي الكل"
+msgstr "طي كل Ø§Ù„ØªÙØ§ØµÙŠÙ„"
#: editor/editor_node.cpp
msgid "Copy Params"
@@ -2319,6 +2350,16 @@ msgstr "ذاتي"
msgid "Frame #:"
msgstr "اطار #:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "الوقت:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "نداء"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "اختار جهاز من القائمة"
@@ -2458,7 +2499,8 @@ msgstr "لا يوجد إستجابة."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "ÙØ´Ù„ الطلب."
#: editor/export_template_manager.cpp
@@ -2505,7 +2547,8 @@ msgid "Connecting.."
msgstr "جاري الإتصال..."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "لا يمكن الإتصال"
#: editor/export_template_manager.cpp
@@ -2599,6 +2642,11 @@ msgid "Error moving:\n"
msgstr "خطأ ÙÙŠ تحريك:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "خطآ ÙÙŠ التحميل:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "غير قادر علي تحديث التبعيات:\n"
@@ -2631,6 +2679,16 @@ msgid "Renaming folder:"
msgstr "إعادة تسمية مجلد:"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "تكرير"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "إعادة تسمية مجلد:"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "توسيع الكل"
@@ -2639,10 +2697,6 @@ msgid "Collapse all"
msgstr "طوي الكل"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "نسخ المسار"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "إعادة تسمية.."
@@ -2651,12 +2705,9 @@ msgid "Move To.."
msgstr "تحريك إلي.."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "مجلد جديد.."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "أظهر ÙÙŠ مدير Ø§Ù„Ù…Ù„ÙØ§Øª"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "ÙØªØ­ مشهد"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2671,6 +2722,11 @@ msgid "View Owners.."
msgstr "أظهر المÙلاك.."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "تكرير"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "المجلد السابق"
@@ -2765,6 +2821,14 @@ msgid "Importing Scene.."
msgstr "حاري إستيراد المشهد.."
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "تشغيل الكود Ø§Ù„Ù…ÙØ®ØµØµ.."
@@ -3017,25 +3081,24 @@ msgid "Enable Onion Skinning"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "الوصÙ"
+msgstr "الاتجاهات"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Past"
-msgstr ""
+msgstr "الماضي"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Future"
-msgstr ""
+msgstr "المستقبل"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "العمق"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "الخطوة 1"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
@@ -3047,7 +3110,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Ø§Ù„Ø§Ø®ØªÙ„Ø§ÙØ§Øª Ùقط"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
@@ -3055,7 +3118,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "تضمين جيزموس (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -3332,6 +3395,7 @@ msgid "last"
msgstr "الأخير"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "الكل"
@@ -3373,6 +3437,27 @@ msgstr "تجربة"
msgid "Assets ZIP File"
msgstr "مل٠أصول مضغوط"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "إستعراض"
@@ -3509,7 +3594,6 @@ msgid "Toggles snapping"
msgstr "إلغاء/ØªÙØ¹ÙŠÙ„ الكبس"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "إستخدم الكبس"
@@ -3689,94 +3773,86 @@ msgstr "خطأ ÙÙŠ توضيح المشهد من %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "حسناً :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
-msgstr ""
+msgstr "هذه العملية تتطلب عقدة واحدة محددة."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change default type"
-msgstr ""
+msgstr "غير النوع Ø§Ù„Ø¥ÙØªØ±Ø§Ø¶ÙŠ"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Drag & drop + Shift : Add node as sibling\n"
"Drag & drop + Alt : Change node type"
msgstr ""
+"سحب وإسقاط + Shift : Ø¥Ø¶Ø§ÙØ© العقدة كقريب لعقدة أخري\n"
+"سحب و إسقاط + Alt : تغيير نوع العقدة"
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Create Poly3D"
-msgstr ""
+msgstr "إنشاء بولي 3d"
#: editor/plugins/collision_shape_2d_editor_plugin.cpp
msgid "Set Handle"
-msgstr ""
+msgstr "حدد المعامل"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Remove item %d?"
-msgstr ""
+msgstr "مسح العنصر %d؟"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Add Item"
-msgstr ""
+msgstr "Ø¥Ø¶Ø§ÙØ© عنصر"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Remove Selected Item"
-msgstr ""
+msgstr "مسح العنصر المحدد"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Import from Scene"
-msgstr ""
+msgstr "إستيراد من المشهد"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Update from Scene"
-msgstr ""
+msgstr "تحديث من المشهد"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Flat0"
-msgstr ""
+msgstr "مسطح0"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Flat1"
-msgstr ""
+msgstr "مسطح1"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Ease in"
-msgstr ""
+msgstr "تخÙي٠للداخل"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Ease out"
-msgstr ""
+msgstr "تخÙي٠للخارج"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Smoothstep"
-msgstr ""
+msgstr "خطوة ناعمة"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Modify Curve Point"
-msgstr ""
+msgstr "نعديل نقطة الإنحناء"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Modify Curve Tangent"
-msgstr ""
+msgstr "تعديل مماس الإنحناء"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Load Curve Preset"
-msgstr ""
+msgstr "تحميل إعداد مسبق للإنحناء"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Add point"
-msgstr ""
+msgstr "Ø¥Ø¶Ø§ÙØ© نقطة"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Remove point"
@@ -3784,15 +3860,15 @@ msgstr "مسح النقطة"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Left linear"
-msgstr ""
+msgstr "الخط الشمالي"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Right linear"
-msgstr ""
+msgstr "الخط اليميني"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Load preset"
-msgstr ""
+msgstr "تحميل الإعداد المعد مسبقاً"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Remove Curve Point"
@@ -3800,114 +3876,132 @@ msgstr "مسح نقطة الإنحناء"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Toggle Curve Linear Tangent"
-msgstr ""
+msgstr "إلغاء/ØªÙØ¹ÙŠÙ„ مماس خط المنحني"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Hold Shift to edit tangents individually"
-msgstr ""
+msgstr "إبقي ضاغطاً علي Shift لتعديل المماس ÙØ±Ø¯ÙŠØ§Ù‹"
#: editor/plugins/gi_probe_editor_plugin.cpp
msgid "Bake GI Probe"
-msgstr ""
+msgstr "طبخ مجس GI"
#: editor/plugins/gradient_editor_plugin.cpp
msgid "Add/Remove Color Ramp Point"
-msgstr ""
+msgstr "Ø¥Ø¶Ø§ÙØ©/مسح نقطة منحدر اللون"
#: editor/plugins/gradient_editor_plugin.cpp
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Modify Color Ramp"
-msgstr ""
+msgstr "تعديل منحدر اللون"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
-msgstr ""
+msgstr "العنصر %d"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Items"
-msgstr ""
+msgstr "العناصر"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item List Editor"
-msgstr ""
+msgstr "Ù…ÙØ¹Ø¯Ù„ قائمة العناصر"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid ""
"No OccluderPolygon2D resource on this node.\n"
"Create and assign one?"
msgstr ""
+"لا مصدر شكل Ù…ÙØ·Ø¨Ù‚ 2D ÙÙŠ هذه العقدة.\n"
+"أنشئ و ضع واحدة؟"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create Occluder Polygon"
-msgstr ""
+msgstr "أنشئ شكل Ù…ÙØ·Ø¨Ù‚"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create a new polygon from scratch."
-msgstr ""
+msgstr "أنشئ شكل جديد من لا شئ."
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Edit existing polygon:"
-msgstr ""
+msgstr "تعديل الشكل الموجود Ø¨Ø§Ù„ÙØ¹Ù„:"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "LMB: Move Point."
-msgstr ""
+msgstr "زر Ø§Ù„ÙØ£Ø±Ø© الأوسط: تحريك النقطة."
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Ctrl+LMB: Split Segment."
-msgstr ""
+msgstr "Ctrl+ زر Ø§Ù„ÙØ£Ø±Ø© الأوسط: ÙØµÙ„ المقطع."
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "RMB: Erase Point."
-msgstr ""
+msgstr "زر Ø§Ù„ÙØ£Ø±Ø© الأيمن: مسح النقطة."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh is empty!"
-msgstr ""
+msgstr "الميش ÙØ§Ø±Øº!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Trimesh Body"
-msgstr ""
+msgstr "أنشئ جسم تراميش ثابت"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Convex Body"
-msgstr ""
+msgstr "أنشئ جسم محدب ثابت"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "This doesn't work on scene root!"
-msgstr ""
+msgstr "هذا لا يعمل علي جزر المشهد!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Shape"
-msgstr ""
+msgstr "أنشئ شكل تراميش"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Convex Shape"
-msgstr ""
+msgstr "أنشئ شكل محدب"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Navigation Mesh"
+msgstr "أنشئ ميش التنقل"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "MeshInstance lacks a Mesh!"
+msgid "UV Unwrap failed, mesh may not be manifold?"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Mesh has not surface to create outlines from!"
+msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Could not create outline!"
+msgid "Model has no UV in this layer"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "MeshInstance lacks a Mesh!"
+msgstr "MeshInstance ÙŠÙØªÙ‚ر إلي ميش!"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr "الميش ليس لديه سطح لكي ينشئ حدود منه!"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Could not create outline!"
+msgstr "لا يمكن إنشاء الحد!"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline"
-msgstr ""
+msgstr "أنشئ الحد"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh"
-msgstr ""
+msgstr "الميش"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Static Body"
@@ -3927,15 +4021,29 @@ msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh.."
+msgstr "إنشاء شبكة الخطوط العريضة .."
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "أظهر"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "أظهر"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
-msgstr ""
+msgstr "إنشاء شبكة الخطوط العريضة"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Outline Size:"
-msgstr ""
+msgstr "حجم الخطوط:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "No mesh source specified (and no MultiMesh set in node)."
@@ -4106,10 +4214,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4127,15 +4231,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4197,10 +4301,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4483,11 +4583,13 @@ msgstr "ترتيب"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4503,7 +4605,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4516,6 +4618,11 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "نسخ المسار"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4702,14 +4809,11 @@ msgid "Clone Down"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
+#, fuzzy
+msgid "Fold/Unfold Line"
msgstr "خط مطوي"
#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
msgstr ""
@@ -5034,6 +5138,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "حسناً :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "لا أب للصق الطÙÙ„ عليه."
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5138,6 +5250,19 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "أكبس إلي الموجهات"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5210,10 +5335,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5255,6 +5376,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5637,6 +5762,11 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "مجموعة البلاط.."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5648,6 +5778,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "إلغاء"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5765,10 +5899,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -6025,7 +6155,7 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
+msgid "Erase Input Action"
msgstr ""
#: editor/project_settings_editor.cpp
@@ -6093,6 +6223,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6269,6 +6403,10 @@ msgid "New Script"
msgstr ""
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr "إجعلة مميزاً"
@@ -6300,6 +6438,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6308,10 +6450,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6861,6 +6999,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6909,15 +7051,52 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "مسح نقطة الإنحناء"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7575,6 +7754,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7603,10 +7798,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7659,10 +7850,6 @@ msgid "Add current color as a preset"
msgstr "أض٠اللون الحالي كإعداد مسبق"
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "إلغاء"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "تنبيه!"
@@ -7671,9 +7858,8 @@ msgid "Please Confirm..."
msgstr "يرجى التاكيد..."
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select this Folder"
-msgstr "إختر طريقة"
+msgstr "حدد هذا المجلد"
#: scene/gui/popup.cpp
msgid ""
@@ -7723,6 +7909,15 @@ msgstr ""
msgid "Invalid font size."
msgstr ""
+#~ msgid "Move Add Key"
+#~ msgstr "Ù…ÙØªØ§Ø­ Ø¥Ø¶Ø§ÙØ© الحركة"
+
+#~ msgid "Create Subscription"
+#~ msgstr "عمل اشتراك"
+
+#~ msgid "List:"
+#~ msgstr "القائمة:"
+
#~ msgid "Method List For '%s':"
#~ msgstr "قائمة الطرق لـ '%s':"
diff --git a/editor/translations/bg.po b/editor/translations/bg.po
index f2bf979b75..3fbb7b4339 100644
--- a/editor/translations/bg.po
+++ b/editor/translations/bg.po
@@ -28,7 +28,7 @@ msgid "All Selection"
msgstr ""
#: editor/animation_editor.cpp
-msgid "Move Add Key"
+msgid "Anim Change Keyframe Time"
msgstr ""
#: editor/animation_editor.cpp
@@ -40,7 +40,7 @@ msgid "Anim Change Transform"
msgstr ""
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+msgid "Anim Change Keyframe Value"
msgstr ""
#: editor/animation_editor.cpp
@@ -532,7 +532,7 @@ msgid "Connecting Signal:"
msgstr ""
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
+msgid "Disconnect '%s' from '%s'"
msgstr ""
#: editor/connections_dialog.cpp
@@ -549,8 +549,9 @@ msgid "Signals"
msgstr ""
#: editor/create_dialog.cpp
-msgid "Create New"
-msgstr ""
+#, fuzzy
+msgid "Create New %s"
+msgstr "Създаване на нов проект"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -564,7 +565,7 @@ msgstr ""
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "ТърÑене:"
@@ -601,6 +602,7 @@ msgid ""
msgstr ""
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr ""
@@ -701,9 +703,10 @@ msgid "Delete selected files?"
msgstr ""
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr ""
@@ -846,6 +849,10 @@ msgid "Rename Audio Bus"
msgstr ""
#: editor/editor_audio_buses.cpp
+msgid "Change Audio Bus Volume"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr ""
@@ -894,8 +901,8 @@ msgstr ""
msgid "Bus options"
msgstr "ÐаÑтройки за отÑтранÑване на грешки"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr ""
@@ -908,6 +915,10 @@ msgid "Delete Effect"
msgstr ""
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr ""
@@ -1060,7 +1071,8 @@ msgstr "Път:"
msgid "Node Name:"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr ""
@@ -1068,10 +1080,6 @@ msgstr ""
msgid "Singleton"
msgstr ""
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "ОбновÑване на Ñцената"
@@ -1084,6 +1092,14 @@ msgstr ""
msgid "Updating scene.."
msgstr "ОбновÑване на Ñцената.."
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
#, fuzzy
msgid "Please select a base directory first"
@@ -1135,6 +1151,23 @@ msgstr "Файлът ÑъщеÑтвува. ИÑкате ли да го презÐ
msgid "Select Current Folder"
msgstr "Създаване на папка"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+#, fuzzy
+msgid "New Folder.."
+msgstr "Създаване на папка"
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr ""
@@ -1182,10 +1215,6 @@ msgid "Go Up"
msgstr ""
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr ""
@@ -1367,7 +1396,8 @@ msgstr ""
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "ИзчиÑтване"
@@ -2269,6 +2299,14 @@ msgstr ""
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr ""
@@ -2406,8 +2444,9 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
-msgstr ""
+#, fuzzy
+msgid "Request Failed."
+msgstr "Запитване.."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -2457,7 +2496,7 @@ msgstr "Свързване.."
#: editor/export_template_manager.cpp
#, fuzzy
-msgid "Can't Conect"
+msgid "Can't Connect"
msgstr "Създаване на нов проект"
#: editor/export_template_manager.cpp
@@ -2555,6 +2594,11 @@ msgstr "Имаше грешка при внаÑÑнето:"
#: editor/filesystem_dock.cpp
#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Имаше грешка при внаÑÑнето:"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
msgid "Unable to update dependencies:\n"
msgstr "Сцената '%s' има нарушени завиÑимоÑти:"
@@ -2588,15 +2632,20 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Имаше грешка при внаÑÑнето:"
+
+#: editor/filesystem_dock.cpp
+msgid "Duplicating folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
+msgid "Expand all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
@@ -2609,12 +2658,8 @@ msgstr ""
#: editor/filesystem_dock.cpp
#, fuzzy
-msgid "New Folder.."
-msgstr "Създаване на папка"
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr ""
+msgid "Open Scene(s)"
+msgstr "ОтварÑне на Ñцена"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2629,6 +2674,10 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+msgid "Duplicate.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2724,6 +2773,14 @@ msgid "Importing Scene.."
msgstr "ВнаÑÑне на Ñцената.."
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3292,6 +3349,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Ð’Ñички"
@@ -3333,6 +3391,27 @@ msgstr ""
msgid "Assets ZIP File"
msgstr ""
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3470,7 +3549,6 @@ msgid "Toggles snapping"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3650,16 +3728,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3852,6 +3920,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3892,6 +3976,20 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Преглед на файловете"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Преглед на файловете"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4068,10 +4166,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4089,15 +4183,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4159,10 +4253,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4446,11 +4536,13 @@ msgstr "Подреждане:"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4466,7 +4558,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4479,6 +4571,10 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+msgid "Copy Script Path"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4667,14 +4763,10 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
+msgid "Fold/Unfold Line"
msgstr "Изтриване на анимациÑта?"
#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
msgstr ""
@@ -5000,6 +5092,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5107,6 +5207,19 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Избиране на вÑичко"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5179,10 +5292,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5224,6 +5333,10 @@ msgid "Settings"
msgstr "ÐаÑтройки"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5609,6 +5722,11 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "Файл:"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5620,6 +5738,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Отказ"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5739,10 +5861,6 @@ msgid "Imported Project"
msgstr "ВнеÑен проект"
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -6003,7 +6121,7 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
+msgid "Erase Input Action"
msgstr ""
#: editor/project_settings_editor.cpp
@@ -6071,6 +6189,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6249,6 +6371,10 @@ msgid "New Script"
msgstr "Ðов Ñкрипт"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6281,6 +6407,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6289,10 +6419,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "Изберете ÑвойÑтво"
@@ -6855,6 +6981,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6903,16 +7033,56 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "ПремеÑтване на пътечката нагоре."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Platform"
+msgstr "ИзнаÑÑне към платформа"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "ИзнаÑÑне на библиотеката"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "ИзнаÑÑне на библиотеката"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Library"
msgstr "ИзнаÑÑне на библиотеката"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7609,6 +7779,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7637,10 +7823,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7696,10 +7878,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Отказ"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Тревога!"
@@ -7849,10 +8027,6 @@ msgstr ""
#~ msgid "Invalid project path, the path must exist!"
#~ msgstr "ÐедейÑтвителен път. ПътÑÑ‚ трÑбва да ÑъщеÑтвува!"
-#, fuzzy
-#~ msgid "Tiles"
-#~ msgstr "Файл:"
-
#~ msgid "Close scene? (Unsaved changes will be lost)"
#~ msgstr "Да Ñе затвори ли Ñцената? (незаразените промени ще Ñе загубÑÑ‚)"
@@ -7892,9 +8066,6 @@ msgstr ""
#~ msgid "Project Export Settings"
#~ msgstr "ÐаÑтройки за изнаÑÑне на проекта"
-#~ msgid "Export to Platform"
-#~ msgstr "ИзнаÑÑне към платформа"
-
#~ msgid "Export all files in the project directory."
#~ msgstr "ИзнаÑÑне на вÑички файлове в папката на проекта."
diff --git a/editor/translations/bn.po b/editor/translations/bn.po
index d329b1a3fc..99dbbf427b 100644
--- a/editor/translations/bn.po
+++ b/editor/translations/bn.po
@@ -29,8 +29,9 @@ msgid "All Selection"
msgstr "সব সিলেকà§à¦Ÿ করà§à¦¨"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "অà§à¦¯à¦¾à¦¡ কি মà§à¦­ করà§à¦¨"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) ভà§à¦¯à¦¾à¦²à§ পরিবরà§à¦¤à¦¨ করà§à¦¨"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -41,7 +42,8 @@ msgid "Anim Change Transform"
msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) টà§à¦°à¦¾à¦¨à§à¦¸à¦«à¦°à§à¦® পরিবরà§à¦¤à¦¨ করà§à¦¨"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) ভà§à¦¯à¦¾à¦²à§ পরিবরà§à¦¤à¦¨ করà§à¦¨"
#: editor/animation_editor.cpp
@@ -536,8 +538,9 @@ msgid "Connecting Signal:"
msgstr "সংযোজক সংকেত/সিগনà§à¦¯à¦¾à¦²:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "সদসà§à¦¯à¦¤à¦¾/সাবসà§à¦•à§à¦°à¦¿à¦ªà¦¶à¦¨ তৈরি করà§à¦¨"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "'%s' à¦à¦° সাথে '%s' সংযà§à¦•à§à¦¤ করà§à¦¨"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -553,7 +556,8 @@ msgid "Signals"
msgstr "সংকেতসমূহ"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "নতà§à¦¨ তৈরি করà§à¦¨"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -568,7 +572,7 @@ msgstr "সামà§à¦ªà§à¦°à¦¤à¦¿à¦•:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ করà§à¦¨:"
@@ -609,6 +613,7 @@ msgstr ""
"পà§à¦¨à¦°à¦¾à§Ÿ-লোড (রিলোড)-à¦à¦° সময় পরিবরà§à¦¤à¦¨à¦¸à¦®à§‚হ কারà§à¦¯à¦•র হবে।"
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "নিরà§à¦­à¦°à¦¤à¦¾-সমূহ"
@@ -712,9 +717,10 @@ msgid "Delete selected files?"
msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ফাইলসমূহ অপসারণ করবেন?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "অপসারণ করà§à¦¨"
@@ -856,6 +862,11 @@ msgid "Rename Audio Bus"
msgstr "অডিও বাস পà§à¦¨à¦°à¦¾à¦¯à¦¼ নামকরণ করà§à¦¨"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "অডিও বাস সলো টগল করà§à¦¨"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "অডিও বাস সলো টগল করà§à¦¨"
@@ -903,8 +914,8 @@ msgstr "বাইপাস"
msgid "Bus options"
msgstr "বাস অপশন"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "ডà§à¦ªà§à¦²à¦¿à¦•েট"
@@ -917,6 +928,10 @@ msgid "Delete Effect"
msgstr "ইফেকà§à¦Ÿ ডিলিট করà§à¦¨"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "অডিও বাস যোগ করà§à¦¨"
@@ -1073,7 +1088,8 @@ msgstr "পথ:"
msgid "Node Name:"
msgstr "নোডের নাম:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "নাম"
@@ -1081,10 +1097,6 @@ msgstr "নাম"
msgid "Singleton"
msgstr "à¦à¦•ক-বসà§à¦¤à§/সিঙà§à¦—েলটোন"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "তালিকা:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "দৃশà§à¦¯ হাল নাগাদ হচà§à¦›à§‡"
@@ -1097,6 +1109,15 @@ msgstr "সà§à¦¥à¦¾à¦¨à§€à§Ÿ পরিবরà§à¦¤à¦¨-সমূহ সংরক
msgid "Updating scene.."
msgstr "দৃশà§à¦¯ হাল নাগাদ হচà§à¦›à§‡.."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(খালি/শূনà§à¦¯)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
#, fuzzy
msgid "Please select a base directory first"
@@ -1148,6 +1169,23 @@ msgstr "à¦à¦•ই নামের ফাইল উপসà§à¦¥à¦¿à¦¤, তা ম
msgid "Select Current Folder"
msgstr "ফোলà§à¦¡à¦¾à¦° তৈরি করà§à¦¨"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "পথ পà§à¦°à¦¤à¦¿à¦²à¦¿à¦ªà¦¿/কপি করà§à¦¨"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "ফাইল-মà§à¦¯à¦¾à¦¨à§‡à¦œà¦¾à¦°à§‡ দেখà§à¦¨"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+#, fuzzy
+msgid "New Folder.."
+msgstr "ফোলà§à¦¡à¦¾à¦° তৈরি করà§à¦¨"
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "রিফà§à¦°à§‡à¦¸ করà§à¦¨"
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr "সব ফাইল পরিচিতি সমà§à¦ªà¦¨à§à¦¨"
@@ -1195,10 +1233,6 @@ msgid "Go Up"
msgstr "উপরের দিকে যান"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "রিফà§à¦°à§‡à¦¸ করà§à¦¨"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "অদৃশà§à¦¯ ফাইলসমূহ অদলবদল/টগল করà§à¦¨"
@@ -1392,7 +1426,8 @@ msgstr " আউটপà§à¦Ÿ/ফলাফল:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "পরিসà§à¦•ার করà§à¦¨/কà§à¦²à§€à§Ÿà¦¾à¦°"
@@ -2370,6 +2405,16 @@ msgstr "সà§à¦¬à§€à¦¯à¦¼"
msgid "Frame #:"
msgstr "ফà§à¦°à§‡à¦® #:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "সময়:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "ডাকà§à¦¨ (Call)"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "লিসà§à¦Ÿ থেকে ডিভাইস সিলেকà§à¦Ÿ করà§à¦¨"
@@ -2518,7 +2563,8 @@ msgstr "কোন পà§à¦°à¦¤à¦¿à¦•à§à¦°à¦¿à§Ÿà¦¾ নেই।"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "রিকà§à§Ÿà§‡à¦¸à§à¦Ÿ বà§à¦¯à¦°à§à¦¥ হয়েছে।"
#: editor/export_template_manager.cpp
@@ -2573,7 +2619,7 @@ msgstr "সংযোগ.."
#: editor/export_template_manager.cpp
#, fuzzy
-msgid "Can't Conect"
+msgid "Can't Connect"
msgstr "সংযোগ.."
#: editor/export_template_manager.cpp
@@ -2685,6 +2731,11 @@ msgstr "ইমà§à¦ªà§‹à¦°à§à¦Ÿà§‡ সমসà§à¦¯à¦¾ হয়েছে:"
#: editor/filesystem_dock.cpp
#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "লোডে সমসà§à¦¯à¦¾ হয়েছে:"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
msgid "Unable to update dependencies:\n"
msgstr "'%s' দৃশà§à¦¯à¦Ÿà¦¿à¦° অসংলগà§à¦¨ নিরà§à¦­à¦°à¦¤à¦¾ রয়েছে:"
@@ -2723,6 +2774,16 @@ msgstr "নোড পà§à¦¨à¦ƒà¦¨à¦¾à¦®à¦•রণ করà§à¦¨"
#: editor/filesystem_dock.cpp
#, fuzzy
+msgid "Duplicating file:"
+msgstr "ডà§à¦ªà§à¦²à¦¿à¦•েট"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "নোড পà§à¦¨à¦ƒà¦¨à¦¾à¦®à¦•রণ করà§à¦¨"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
msgid "Expand all"
msgstr "ধারক/বাহক পরà§à¦¯à¦¨à§à¦¤ বিসà§à¦¤à§ƒà¦¤ করà§à¦¨"
@@ -2731,10 +2792,6 @@ msgid "Collapse all"
msgstr "কলাপà§à¦¸ করà§à¦¨"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "পথ পà§à¦°à¦¤à¦¿à¦²à¦¿à¦ªà¦¿/কপি করà§à¦¨"
-
-#: editor/filesystem_dock.cpp
#, fuzzy
msgid "Rename.."
msgstr "পà§à¦¨à¦ƒà¦¨à¦¾à¦®à¦•রণ করà§à¦¨"
@@ -2745,12 +2802,8 @@ msgstr "à¦à¦–ানে সরান.."
#: editor/filesystem_dock.cpp
#, fuzzy
-msgid "New Folder.."
-msgstr "ফোলà§à¦¡à¦¾à¦° তৈরি করà§à¦¨"
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "ফাইল-মà§à¦¯à¦¾à¦¨à§‡à¦œà¦¾à¦°à§‡ দেখà§à¦¨"
+msgid "Open Scene(s)"
+msgstr "দৃশà§à¦¯ খà§à¦²à§à¦¨"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2765,6 +2818,11 @@ msgid "View Owners.."
msgstr "সà§à¦¬à¦¤à§à¦¬à¦¾à¦§à¦¿à¦•ারীদের দেখà§à¦¨.."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "ডà§à¦ªà§à¦²à¦¿à¦•েট"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "পূরà§à¦¬à§‡à¦° সà§à¦¥à¦¾à¦¨"
@@ -2862,6 +2920,16 @@ msgid "Importing Scene.."
msgstr "দৃশà§à¦¯ ইমà§à¦ªà§‹à¦°à§à¦Ÿ করা হচà§à¦›à§‡.."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "লাইটà§à¦®à§à¦¯à¦¾à¦ªà§‡ হসà§à¦¤à¦¾à¦¨à§à¦¤à¦° করà§à¦¨:"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "AABB উৎপনà§à¦¨ করà§à¦¨"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "সà§à¦¬à¦¨à¦¿à¦°à§à¦®à¦¿à¦¤ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ চালানো হচà§à¦›à§‡.."
@@ -3446,6 +3514,7 @@ msgid "last"
msgstr "শেষ"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "সকল"
@@ -3487,6 +3556,28 @@ msgstr "পরীকà§à¦·à¦¾à¦®à§‚লক উৎস"
msgid "Assets ZIP File"
msgstr "পà§à¦°à¦¯à¦¼à§‡à¦¾à¦œà¦¨à§€à¦¯à¦¼ উপকরণসমূহের ZIP ফাইল"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "লাইটà§à¦®à§à¦¯à¦¾à¦ªà§‡ হসà§à¦¤à¦¾à¦¨à§à¦¤à¦° করà§à¦¨:"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "পà§à¦°à¦¿à¦­à¦¿à¦‰"
@@ -3631,7 +3722,6 @@ msgid "Toggles snapping"
msgstr "ছেদবিনà§à¦¦à§ অদলবদল করà§à¦¨ (টগল বà§à¦°à§‡à¦•পয়েনà§à¦Ÿ)"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨"
@@ -3821,16 +3911,6 @@ msgstr "%s হতে দৃশà§à¦¯ ইনসà§à¦Ÿà§à¦¯à¦¾à¦¨à§à¦¸ করা
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "ঠিক আছে :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "ইনসà§à¦Ÿà§à¦¯à¦¾à¦¨à§à¦¸ করার জনà§à¦¯ পà§à¦°à§Ÿà§‹à¦œà¦¨à§€à§Ÿ ধারক উপসà§à¦¥à¦¿à¦¤ নেই।"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr "à¦à¦‡ কাজটি করার জনà§à¦¯ à¦à¦•টি à¦à¦•ক নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ নোড পà§à¦°à§Ÿà§‹à¦œà¦¨à¥¤"
@@ -4037,6 +4117,22 @@ msgid "Create Navigation Mesh"
msgstr "Navigation Mesh তৈরি করà§à¦¨"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr "MeshInstance-ঠMesh নেই!"
@@ -4077,6 +4173,20 @@ msgid "Create Outline Mesh.."
msgstr "পà§à¦°à¦¾à¦¨à§à¦¤à¦°à§‡à¦–া মেস তৈরি করà§à¦¨.."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "দৃশà§à¦¯/পরিদরà§à¦¶à¦¨"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "দৃশà§à¦¯/পরিদরà§à¦¶à¦¨"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr "পà§à¦°à¦¾à¦¨à§à¦¤à¦°à§‡à¦–া মেস তৈরি করà§à¦¨"
@@ -4262,10 +4372,6 @@ msgid "Create Navigation Polygon"
msgstr "Navigation Polygon তৈরি করà§à¦¨"
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr "Emission Mask পরিসà§à¦•ার করà§à¦¨"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
#, fuzzy
msgid "Generating AABB"
@@ -4284,10 +4390,6 @@ msgid "No pixels with transparency > 128 in image.."
msgstr "সà§à¦¬à¦šà§à¦›à¦¤à¦¾à¦¸à¦¹ কোনো পিকà§à¦¸à§‡à¦² নেই > ছবিতে ১২৮.."
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "Emission Mask সà§à¦¥à¦¾à¦ªà¦¨ করà§à¦¨"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
msgstr "ভিজিবিলিটি রেকà§à¦Ÿ তৈরি করà§à¦¨"
@@ -4296,6 +4398,10 @@ msgid "Load Emission Mask"
msgstr "Emission Mask লোড করà§à¦¨"
#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "Emission Mask পরিসà§à¦•ার করà§à¦¨"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
#, fuzzy
msgid "Particles"
@@ -4361,10 +4467,6 @@ msgid "Create Emission Points From Node"
msgstr "Node হতে Emitter তৈরি করà§à¦¨"
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "Emitter পরিসà§à¦•ার করà§à¦¨"
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr "Emitter তৈরি করà§à¦¨"
@@ -4662,11 +4764,13 @@ msgstr "সাজান:"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "উপরে যান"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "নীচে যান"
@@ -4682,7 +4786,7 @@ msgstr "পূরà§à¦¬à¦¬à¦°à§à¦¤à§€ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ"
msgid "File"
msgstr "ফাইল"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "নতà§à¦¨"
@@ -4695,6 +4799,11 @@ msgid "Soft Reload Script"
msgstr "সà§à¦¬à¦²à§à¦ª-পà§à¦°à¦­à¦¾à¦¬à¦¸à¦¹ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ রিলোড করà§à¦¨"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "পথ পà§à¦°à¦¤à¦¿à¦²à¦¿à¦ªà¦¿/কপি করà§à¦¨"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr "পূরà§à¦¬à§‡à¦° ইতিহাস"
@@ -4890,11 +4999,7 @@ msgstr "কà§à¦²à§‹à¦¨ করে নীচে নিন"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
-msgstr "লাইন-ঠযান"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+msgid "Fold/Unfold Line"
msgstr "লাইন আনফোলà§à¦¡ করà§à¦¨"
#: editor/plugins/script_text_editor.cpp
@@ -5230,6 +5335,14 @@ msgstr "à¦à¦« পি à¦à¦¸"
msgid "Align with view"
msgstr "দরà§à¦¶à¦¨à§‡à¦° সাথে সারিবদà§à¦§ করà§à¦¨"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "ঠিক আছে :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "ইনসà§à¦Ÿà§à¦¯à¦¾à¦¨à§à¦¸ করার জনà§à¦¯ পà§à¦°à§Ÿà§‹à¦œà¦¨à§€à§Ÿ ধারক উপসà§à¦¥à¦¿à¦¤ নেই।"
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "Normal পà§à¦°à¦¦à¦°à§à¦¶à¦¨"
@@ -5346,6 +5459,20 @@ msgid "Scale Mode (R)"
msgstr "মাপের মোড করà§à¦¨ (R)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "সà§à¦¥à¦¾à¦¨à§€à§Ÿ সà§à¦¥à¦¾à¦¨à¦¾à¦™à§à¦•সমূহ"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "মাপের মোড করà§à¦¨ (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª মোড:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "নিমà§à¦¨ দরà§à¦¶à¦¨"
@@ -5423,10 +5550,6 @@ msgid "Configure Snap.."
msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª কনফিগার করà§à¦¨.."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "সà§à¦¥à¦¾à¦¨à§€à§Ÿ সà§à¦¥à¦¾à¦¨à¦¾à¦™à§à¦•সমূহ"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr "রà§à¦ªà¦¾à¦¨à§à¦¤à¦°à§‡à¦° à¦à¦° সংলাপ.."
@@ -5468,6 +5591,10 @@ msgid "Settings"
msgstr "সেটিংস"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª সেটিংস"
@@ -5860,6 +5987,11 @@ msgid "Merge from scene?"
msgstr "দৃশà§à¦¯ হতে à¦à¦•তà§à¦°à¦¿à¦¤ করবেন?"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet (টাইল-সেট).."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "দৃশà§à¦¯ হতে তৈরি করবেন"
@@ -5871,6 +6003,10 @@ msgstr "দৃশà§à¦¯ হতে à¦à¦•তà§à¦°à¦¿à¦¤ করবেন"
msgid "Error"
msgstr "সমসà§à¦¯à¦¾/ভà§à¦²"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "বাতিল"
+
#: editor/project_export.cpp
#, fuzzy
msgid "Runnable"
@@ -6014,10 +6150,6 @@ msgid "Imported Project"
msgstr "পà§à¦°à¦•লà§à¦ª ইমà§à¦ªà§‹à¦°à§à¦Ÿ করা হয়েছে"
#: editor/project_manager.cpp
-msgid " "
-msgstr " "
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr "আপনার পà§à¦°à¦œà§‡à¦•à§à¦Ÿà¦Ÿà¦¿à¦° জনà§à¦¯ à¦à¦•টি নাম নিরà§à¦¦à¦¿à¦·à§à¦Ÿ করà§à¦¨à¥¤"
@@ -6296,8 +6428,9 @@ msgid "Joypad Button Index:"
msgstr "জয়সà§à¦Ÿà¦¿à¦• বোতাম ইনà§à¦¡à§‡à¦•à§à¦¸:"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "ইনপà§à¦Ÿ অà§à¦¯à¦¾à¦•শন যোগ করà§à¦¨"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "ইনপà§à¦Ÿ অà§à¦¯à¦¾à¦•শন ইভেনà§à¦Ÿ মà§à¦›à§‡ ফেলà§à¦¨"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6370,6 +6503,10 @@ msgid "Already existing"
msgstr "সà§à¦¥à¦¾à§Ÿà§€à§Ÿà¦¤à¦¾ টগল করà§à¦¨"
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "ইনপà§à¦Ÿ অà§à¦¯à¦¾à¦•শন যোগ করà§à¦¨"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "সংরকà§à¦·à¦£à§‡ সমসà§à¦¯à¦¾ হয়েছে।"
@@ -6554,6 +6691,10 @@ msgid "New Script"
msgstr "নতà§à¦¨ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
#, fuzzy
msgid "Make Unique"
msgstr "বোনà§â€Œ/হাড় তৈরি করà§à¦¨"
@@ -6590,6 +6731,11 @@ msgstr "বিট %d, মান %d।"
msgid "On"
msgstr "চালà§"
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "খালি বসà§à¦¤à§ যোগ করà§à¦¨"
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "নিযà§à¦•à§à¦¤ করà§à¦¨ (Set)"
@@ -6598,10 +6744,6 @@ msgstr "নিযà§à¦•à§à¦¤ করà§à¦¨ (Set)"
msgid "Properties:"
msgstr "পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿-সমূহ:"
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr "অংশাদি:"
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "গà§à¦£à¦¾à¦—à§à¦£/বৈশিষà§à¦Ÿà§à¦¯ বাছাই করà§à¦¨"
@@ -7188,6 +7330,10 @@ msgstr "শাখা হতে সà§à¦¥à¦¾à¦ªà¦¨ করà§à¦¨"
msgid "Shortcuts"
msgstr "শরà§à¦Ÿà¦•াটসমূহ"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "Light à¦à¦° বà§à¦¯à¦¾à¦¸à¦¾à¦°à§à¦§ পরিবরà§à¦¤à¦¨ করà§à¦¨"
@@ -7236,17 +7382,57 @@ msgstr "পারà§à¦Ÿà¦¿à¦•ল পরিবরà§à¦¤à¦¨ করà§à¦¨ AABB"
msgid "Change Probe Extents"
msgstr "পà§à¦°à§‹à¦¬à§‡à¦° (Probe) পরিবà§à¦¯à¦¾à¦ªà§à¦¤à¦¿ পরিবরà§à¦¤à¦¨ করà§à¦¨"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "পথের বিনà§à¦¦à§ অপসারণ করà§à¦¨"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Platform"
+msgstr "পà§à¦²à¦¾à¦Ÿà¦«à¦°à§à¦®à§‡ পà§à¦°à¦¤à¦¿à¦²à¦¿à¦ªà¦¿ করà§à¦¨.."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "MeshLibrary (মেস-লাইবà§à¦°à§‡à¦°à¦¿).."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "জিডিনà§à¦¯à¦¾à¦Ÿà¦¿à¦­"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Library"
msgstr "MeshLibrary (মেস-লাইবà§à¦°à§‡à¦°à¦¿).."
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Status"
msgstr "অবসà§à¦¥à¦¾:"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr "লাইবà§à¦°à§‡à¦°à¦¿: "
@@ -7972,6 +8158,25 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "ছবিসমূহ বà§à¦²à¦¿à¦Ÿà¦¿à¦‚ (Blitting) করা হচà§à¦›à§‡"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "ছবিসমূহ বà§à¦²à¦¿à¦Ÿà¦¿à¦‚ (Blitting) করা হচà§à¦›à§‡"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "ছবিসমূহ বà§à¦²à¦¿à¦Ÿà¦¿à¦‚ (Blitting) করা হচà§à¦›à§‡"
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -8009,10 +8214,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr "ছবিসমূহ বà§à¦²à¦¿à¦Ÿà¦¿à¦‚ (Blitting) করা হচà§à¦›à§‡"
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -8074,10 +8275,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "বাতিল"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "সতরà§à¦•তা!"
@@ -8145,6 +8342,31 @@ msgstr "ফনà§à¦Ÿ তà§à¦²à¦¤à§‡/লোডে সমসà§à¦¯à¦¾ হয়েà¦
msgid "Invalid font size."
msgstr "ফনà§à¦Ÿà§‡à¦° আকার অগà§à¦°à¦¹à¦¨à¦¯à§‹à¦—à§à¦¯à¥¤"
+#~ msgid "Move Add Key"
+#~ msgstr "অà§à¦¯à¦¾à¦¡ কি মà§à¦­ করà§à¦¨"
+
+#~ msgid "Create Subscription"
+#~ msgstr "সদসà§à¦¯à¦¤à¦¾/সাবসà§à¦•à§à¦°à¦¿à¦ªà¦¶à¦¨ তৈরি করà§à¦¨"
+
+#~ msgid "List:"
+#~ msgstr "তালিকা:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "Emission Mask সà§à¦¥à¦¾à¦ªà¦¨ করà§à¦¨"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "Emitter পরিসà§à¦•ার করà§à¦¨"
+
+#, fuzzy
+#~ msgid "Fold Line"
+#~ msgstr "লাইন-ঠযান"
+
+#~ msgid " "
+#~ msgstr " "
+
+#~ msgid "Sections:"
+#~ msgstr "অংশাদি:"
+
#, fuzzy
#~ msgid ""
#~ "\n"
@@ -8672,9 +8894,6 @@ msgstr "ফনà§à¦Ÿà§‡à¦° আকার অগà§à¦°à¦¹à¦¨à¦¯à§‹à¦—à§à¦¯à¥¤"
#~ msgid "Making BVH"
#~ msgstr "BVH তৈরি করা হচà§à¦›à§‡"
-#~ msgid "Transfer to Lightmaps:"
-#~ msgstr "লাইটà§à¦®à§à¦¯à¦¾à¦ªà§‡ হসà§à¦¤à¦¾à¦¨à§à¦¤à¦° করà§à¦¨:"
-
#~ msgid "Allocating Texture #"
#~ msgstr "গঠনবিনà§à¦¯à¦¾à¦¸ বণà§à¦Ÿà¦¿à¦¤ হচà§à¦›à§‡ #"
@@ -8818,9 +9037,6 @@ msgstr "ফনà§à¦Ÿà§‡à¦° আকার অগà§à¦°à¦¹à¦¨à¦¯à§‹à¦—à§à¦¯à¥¤"
#~ msgid "Del"
#~ msgstr "ডিলিট/অপসারণ"
-#~ msgid "Copy To Platform.."
-#~ msgstr "পà§à¦²à¦¾à¦Ÿà¦«à¦°à§à¦®à§‡ পà§à¦°à¦¤à¦¿à¦²à¦¿à¦ªà¦¿ করà§à¦¨.."
-
#~ msgid "just pressed"
#~ msgstr "à¦à¦‡à¦®à¦¾à¦¤à§à¦° চাপিত"
diff --git a/editor/translations/ca.po b/editor/translations/ca.po
index 82fa7fac49..9f6e600978 100644
--- a/editor/translations/ca.po
+++ b/editor/translations/ca.po
@@ -3,12 +3,13 @@
# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
+# BennyBeat <bennybeat@gmail.com>, 2017.
# Roger Blanco Ribera <roger.blancoribera@gmail.com>, 2016-2017.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-28 03:45+0000\n"
+"PO-Revision-Date: 2017-12-20 15:42+0000\n"
"Last-Translator: Roger Blanco Ribera <roger.blancoribera@gmail.com>\n"
"Language-Team: Catalan <https://hosted.weblate.org/projects/godot-engine/"
"godot/ca/>\n"
@@ -16,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.18-dev\n"
+"X-Generator: Weblate 2.18\n"
#: editor/animation_editor.cpp
msgid "Disabled"
@@ -27,8 +28,9 @@ msgid "All Selection"
msgstr "Tota la Selecció"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Mou o Afegeix una Clau"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Modifica el Valor"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -39,7 +41,8 @@ msgid "Anim Change Transform"
msgstr "Modifica la Transformació de l'Animació"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Modifica el Valor"
#: editor/animation_editor.cpp
@@ -145,7 +148,7 @@ msgstr "Vés al Pas Següent"
#: editor/animation_editor.cpp
msgid "Goto Prev Step"
-msgstr "Vés al Pas Previ"
+msgstr "Vés al Pas Anterior"
#: editor/animation_editor.cpp editor/plugins/curve_editor_plugin.cpp
#: editor/property_editor.cpp
@@ -186,11 +189,11 @@ msgstr "Poleix l'Animació"
#: editor/animation_editor.cpp
msgid "Create NEW track for %s and insert key?"
-msgstr "Vol crear una NOVA pista per a %s i inserir-hi una clau?"
+msgstr "Voleu crear una NOVA pista per a %s i inserir-hi una clau?"
#: editor/animation_editor.cpp
msgid "Create %d NEW tracks and insert keys?"
-msgstr "Vol crear %d noves pistes i inserir-hi claus?"
+msgstr "Voleu crear %d NOVES pistes i inserir-hi claus?"
#: editor/animation_editor.cpp editor/create_dialog.cpp
#: editor/editor_audio_buses.cpp editor/plugins/abstract_polygon_2d_editor.cpp
@@ -219,7 +222,7 @@ msgstr "Modifica la durada"
#: editor/animation_editor.cpp
msgid "Change Anim Loop"
-msgstr "Modifica la repetició de l'Animació"
+msgstr "Modifica el bucle de l'Animació"
#: editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
@@ -263,19 +266,19 @@ msgstr "Activa/Desactiva el bucle de l'animació."
#: editor/animation_editor.cpp
msgid "Add new tracks."
-msgstr "Afegir noves pistes."
+msgstr "Afegeix noves pistes."
#: editor/animation_editor.cpp
msgid "Move current track up."
-msgstr "Moure amunt la pista actual."
+msgstr "Mou amunt."
#: editor/animation_editor.cpp
msgid "Move current track down."
-msgstr "Moure avall la pista actual."
+msgstr "Mou avall."
#: editor/animation_editor.cpp
msgid "Remove selected track."
-msgstr "Treure la pista seleccionada."
+msgstr "Treu la pista seleccionada."
#: editor/animation_editor.cpp
msgid "Track tools"
@@ -283,7 +286,7 @@ msgstr "Eines de Pista"
#: editor/animation_editor.cpp
msgid "Enable editing of individual keys by clicking them."
-msgstr "Activa l'editatge individual de claus en clicar-hi."
+msgstr "Edició individual de claus en clicar-hi."
#: editor/animation_editor.cpp
msgid "Anim. Optimizer"
@@ -324,11 +327,11 @@ msgstr "Relació d'Escala:"
#: editor/animation_editor.cpp
msgid "Call Functions in Which Node?"
-msgstr "Cridar Funcions en el Node \"Which\"?"
+msgstr "Voleu cridar les Funcions en el Node \"Which\"?"
#: editor/animation_editor.cpp
msgid "Remove invalid keys"
-msgstr "Treure claus invàlides"
+msgstr "Treu claus no vàlides"
#: editor/animation_editor.cpp
msgid "Remove unresolved and empty tracks"
@@ -340,7 +343,7 @@ msgstr "Poleix totes les animacions"
#: editor/animation_editor.cpp
msgid "Clean-Up Animation(s) (NO UNDO!)"
-msgstr "Poleix la/les Animació/ns (NO ES POT DESFER!)"
+msgstr "Poleix les Animacions (No es pot desfer!)"
#: editor/animation_editor.cpp
msgid "Clean-Up"
@@ -348,7 +351,7 @@ msgstr "Poleix"
#: editor/array_property_edit.cpp
msgid "Resize Array"
-msgstr "Redimensiona Matriu"
+msgstr "Redimensiona la Matriu"
#: editor/array_property_edit.cpp
msgid "Change Array Value Type"
@@ -474,22 +477,22 @@ msgstr "Connecta al Node:"
#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
msgid "Add"
-msgstr "Afegir"
+msgstr "Afegeix"
#: editor/connections_dialog.cpp editor/dependency_editor.cpp
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp
#: editor/project_settings_editor.cpp
msgid "Remove"
-msgstr "Treure"
+msgstr "Treu"
#: editor/connections_dialog.cpp
msgid "Add Extra Call Argument:"
-msgstr "Afegir Argument de Crida Extra:"
+msgstr "Arguments de Crida addicionals:"
#: editor/connections_dialog.cpp
msgid "Extra Call Arguments:"
-msgstr "Arguments de Crida Extra:"
+msgstr "Arguments de Crida addicionals:"
#: editor/connections_dialog.cpp
msgid "Path to Node:"
@@ -534,8 +537,9 @@ msgid "Connecting Signal:"
msgstr "Connectant Senyal:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Crea Subscripció"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Connecta '%s' amb '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -551,7 +555,8 @@ msgid "Signals"
msgstr "Senyals"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Crea Nou"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -566,7 +571,7 @@ msgstr "Recents:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Cerca:"
@@ -607,6 +612,7 @@ msgstr ""
"Els canvis s'actualitzaran en recarregar."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Dependències"
@@ -649,7 +655,8 @@ msgstr "Propietaris de:"
#: editor/dependency_editor.cpp
msgid "Remove selected files from the project? (no undo)"
-msgstr "Elimina fitxer seleccionats del project? (no es pot desfer)"
+msgstr ""
+"Voleu Eliminar els fitxers seleccionats del projecte? (No es pot desfer!)"
#: editor/dependency_editor.cpp
msgid ""
@@ -657,8 +664,8 @@ msgid ""
"work.\n"
"Remove them anyway? (no undo)"
msgstr ""
-"Els fitxers eliminats son necessaris per a altres recursos.\n"
-"Eliminar de totes formes? (No es pot desfer)"
+"Els fitxers seleccionats són utilitzats per altres recursos.\n"
+"Voleu Eliminar-los de totes maneres? (No es pot desfer!)"
#: editor/dependency_editor.cpp
msgid "Cannot remove:\n"
@@ -690,7 +697,7 @@ msgstr "Errors de càrrega!"
#: editor/dependency_editor.cpp
msgid "Permanently delete %d item(s)? (No undo!)"
-msgstr "Eliminar permanentment %d element(s)? (No es pot desfer!)"
+msgstr "Voleu Eliminar permanentment %d element(s)? (No es pot desfer!)"
#: editor/dependency_editor.cpp
msgid "Owns"
@@ -706,12 +713,13 @@ msgstr "Navegador de Recursos Orfes"
#: editor/dependency_editor.cpp
msgid "Delete selected files?"
-msgstr "Esborra fitxers seleccionats?"
+msgstr "Voleu Esborrar els fitxers seleccionats?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Esborra"
@@ -745,7 +753,7 @@ msgstr "Desenvolupador Principal"
#: editor/editor_about.cpp editor/project_manager.cpp
msgid "Project Manager"
-msgstr "Gestor De Projectes"
+msgstr "Gestor del Projecte"
#: editor/editor_about.cpp
msgid "Developers"
@@ -835,7 +843,7 @@ msgstr "Èxit!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp
msgid "Install"
-msgstr "Instal·lar"
+msgstr "Instal·la"
#: editor/editor_asset_installer.cpp
msgid "Package Installer"
@@ -847,19 +855,24 @@ msgstr "Altaveus"
#: editor/editor_audio_buses.cpp
msgid "Add Effect"
-msgstr "Afegir un efecte"
+msgstr "Afegeix"
#: editor/editor_audio_buses.cpp
msgid "Rename Audio Bus"
msgstr "Reanomena Bus d'Àudio"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Commuta el solo del Bus d'àudio"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
-msgstr "Commuta el bus d'àudio solo"
+msgstr "Commuta el solo del Bus d'àudio"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Mute"
-msgstr "Silenciar/Desilenciar Bus d'Àudio"
+msgstr "Silencia/Desilencia Bus d'Àudio"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Bypass Effects"
@@ -867,19 +880,19 @@ msgstr "Commuta els Efectes de Bypass del Bus d'Àudio"
#: editor/editor_audio_buses.cpp
msgid "Select Audio Bus Send"
-msgstr "Seleccionar l'enviament del Bus d'Àudio"
+msgstr "Selecciona l'Enviament del Bus d'Àudio"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus Effect"
-msgstr "Afegir Efecte de bus d'Àudio"
+msgstr "Afegeix un Efecte de bus d'Àudio"
#: editor/editor_audio_buses.cpp
msgid "Move Bus Effect"
-msgstr "Moure Efecte de Bus"
+msgstr "Mou l'Efecte de Bus"
#: editor/editor_audio_buses.cpp
msgid "Delete Bus Effect"
-msgstr "Eliminar Efecte de Bus"
+msgstr "Elimina l'Efecte de Bus"
#: editor/editor_audio_buses.cpp
msgid "Audio Bus, Drag and Drop to rearrange."
@@ -901,26 +914,30 @@ msgstr "Derivació"
msgid "Bus options"
msgstr "Opcions del Bus"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
-msgstr "Duplicar"
+msgstr "Duplica"
#: editor/editor_audio_buses.cpp
msgid "Reset Volume"
-msgstr "Restablir el Volum"
+msgstr "Restableix el Volum"
#: editor/editor_audio_buses.cpp
msgid "Delete Effect"
msgstr "Elimina l'Efecte"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
-msgstr "Afegir Bus d'Àudio"
+msgstr "Afegeix un Bus d'Àudio"
#: editor/editor_audio_buses.cpp
msgid "Master bus can't be deleted!"
-msgstr "El Bus Mestre no es pot pas eliminar!"
+msgstr "El Bus Principal no es pot pas eliminar!"
#: editor/editor_audio_buses.cpp
msgid "Delete Audio Bus"
@@ -928,19 +945,19 @@ msgstr "Elimina Bus d'Àudio"
#: editor/editor_audio_buses.cpp
msgid "Duplicate Audio Bus"
-msgstr "Duplicar el Bus d'Àudio"
+msgstr "Duplica el Bus d'Àudio"
#: editor/editor_audio_buses.cpp
msgid "Reset Bus Volume"
-msgstr "Restablir el Volum del Bus"
+msgstr "Restableix el Volum del Bus"
#: editor/editor_audio_buses.cpp
msgid "Move Audio Bus"
-msgstr "Moure Bus d'Àudio"
+msgstr "Mou el Bus d'Àudio"
#: editor/editor_audio_buses.cpp
msgid "Save Audio Bus Layout As.."
-msgstr "Desar el Disseny del Bus d'Àudio com..."
+msgstr "Anomena i Desa el Disseny del Bus d'Àudio..."
#: editor/editor_audio_buses.cpp
msgid "Location for New Layout.."
@@ -960,7 +977,7 @@ msgstr "Fitxer incorrecte. No és un disseny de bus d'àudio."
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
-msgstr "Afegir Bus"
+msgstr "Afegeix Bus"
#: editor/editor_audio_buses.cpp
msgid "Create a new Bus Layout."
@@ -969,28 +986,28 @@ msgstr "Crea un nou Disseny de Bus."
#: editor/editor_audio_buses.cpp editor/property_editor.cpp
#: editor/script_create_dialog.cpp
msgid "Load"
-msgstr "Carregar"
+msgstr "Carrega"
#: editor/editor_audio_buses.cpp
msgid "Load an existing Bus Layout."
-msgstr "Carregar un Disseny de Bus existent."
+msgstr "Carrega un Disseny de Bus existent."
#: editor/editor_audio_buses.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Save As"
-msgstr "Desar com a"
+msgstr "Anomena i Desa"
#: editor/editor_audio_buses.cpp
msgid "Save this Bus Layout to a file."
-msgstr "Desar el Disseny del Bus en un fitxer."
+msgstr "Desa el Disseny del Bus en un fitxer."
#: editor/editor_audio_buses.cpp editor/import_dock.cpp
msgid "Load Default"
-msgstr "Carregar Valors predeterminats"
+msgstr "Carrega Valors predeterminats"
#: editor/editor_audio_buses.cpp
msgid "Load the default Bus Layout."
-msgstr "Carregar el disseny del Bus predeterminat."
+msgstr "Carrega el disseny del Bus predeterminat."
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
@@ -1003,17 +1020,20 @@ msgstr "Caràcters vàlids:"
#: editor/editor_autoload_settings.cpp
msgid "Invalid name. Must not collide with an existing engine class name."
msgstr ""
-"Nom no vàlid. No pot coincidir amb noms de classe del motor ja existents."
+"El Nom no és vàlid. No pot coincidir amb noms de classe del motor ja "
+"existents."
#: editor/editor_autoload_settings.cpp
msgid "Invalid name. Must not collide with an existing buit-in type name."
msgstr ""
-"Nom no vàlid. No pot coincidir amb noms de tipus integrats ja existents."
+"El Nom no és vàlid. No pot coincidir amb noms de tipus integrats ja "
+"existents."
#: editor/editor_autoload_settings.cpp
msgid "Invalid name. Must not collide with an existing global constant name."
msgstr ""
-"Nom no vàlid. No pot coincidir amb noms de constants globals ja existents."
+"El Nom no és vàlid. No pot coincidir amb noms de constants globals ja "
+"existents."
#: editor/editor_autoload_settings.cpp
msgid "Invalid Path."
@@ -1029,7 +1049,7 @@ msgstr "Fora del camí dels recursos."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
-msgstr "Afegir AutoCàrrega"
+msgstr "Afegeix AutoCàrrega"
#: editor/editor_autoload_settings.cpp
msgid "Autoload '%s' already exists!"
@@ -1045,11 +1065,11 @@ msgstr "Commuta les Globals d'AutoCàrrega"
#: editor/editor_autoload_settings.cpp
msgid "Move Autoload"
-msgstr "Moure AutoCàrrega"
+msgstr "Mou l'AutoCàrrega"
#: editor/editor_autoload_settings.cpp
msgid "Remove Autoload"
-msgstr "Treure Autocàrrega"
+msgstr "Treu Autocàrrega"
#: editor/editor_autoload_settings.cpp
msgid "Enable"
@@ -1068,7 +1088,8 @@ msgstr "Camí:"
msgid "Node Name:"
msgstr "Nom del node:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Nom"
@@ -1076,21 +1097,26 @@ msgstr "Nom"
msgid "Singleton"
msgstr "Singleton"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Llista:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
-msgstr "Actualitzant Escena"
+msgstr "Actualitzant l'Escena"
#: editor/editor_data.cpp
msgid "Storing local changes.."
-msgstr "Emmagatzemant canvis locals.."
+msgstr "Emmagatzemant canvis locals..."
#: editor/editor_data.cpp
msgid "Updating scene.."
-msgstr "Actualitzant escena.."
+msgstr "S'està actualitzant l'escena.."
+
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(buit)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
@@ -1103,7 +1129,7 @@ msgstr "Tria un Directori"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
msgid "Create Folder"
-msgstr "Crea una Carpeta"
+msgstr "Crea un Directori"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
@@ -1115,7 +1141,7 @@ msgstr "Nom:"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
msgid "Could not create folder."
-msgstr "No s'ha pogut crear la carpeta."
+msgstr "No s'ha pogut crear el directori."
#: editor/editor_dir_dialog.cpp
msgid "Choose"
@@ -1131,16 +1157,31 @@ msgstr "Compressió"
#: editor/editor_export.cpp platform/javascript/export/export.cpp
msgid "Template file not found:\n"
-msgstr "no s'ha trobat la Plantilla:\n"
+msgstr "No s'ha trobat la Plantilla:\n"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File Exists, Overwrite?"
-msgstr "Fitxer Existent, Sobreescriure?"
+msgstr "Fitxer Existent, Voleu sobreescriure'l?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "Crea una Carpeta"
+msgstr "Selecciona el Directori Actual"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Copia Camí"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Mostra en el Gestor de Fitxers"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Nou Directori.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Refresca"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1189,12 +1230,8 @@ msgid "Go Up"
msgstr "Puja"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Refresca"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
-msgstr "Fitxers Ocults"
+msgstr "Commuta Fitxers Ocults"
#: editor/editor_file_dialog.cpp
msgid "Toggle Favorite"
@@ -1210,15 +1247,15 @@ msgstr "Enfoca Camí"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
-msgstr "Moure Favorit Amunt"
+msgstr "Mou Favorit Amunt"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Down"
-msgstr "Moure Favorit Avall"
+msgstr "Mou Favorit Avall"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Go to parent folder"
-msgstr "Aneu a la carpeta principal"
+msgstr "Vés al directori principal"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Directories & Files:"
@@ -1343,8 +1380,8 @@ msgid ""
"There is currently no description for this property. Please help us by "
"[color=$color][url=$url]contributing one[/url][/color]!"
msgstr ""
-"Aquesta proprietat no disposa de cap descripció. Podeu contribuir tot color="
-"$color][url=$url] aportant-ne una[/url][/color]!"
+"Aquesta propietat no disposa de cap descripció. Podeu contribuir [color="
+"$color][url=$url] totaportant-ne una[/url][/color]!"
#: editor/editor_help.cpp
msgid "Methods"
@@ -1359,8 +1396,8 @@ msgid ""
"There is currently no description for this method. Please help us by [color="
"$color][url=$url]contributing one[/url][/color]!"
msgstr ""
-"Aquest mètode no disposa de cap descripció. Podeu contribuir tot color="
-"$color][url=$url] aportant-ne una[/url][/color]!"
+"Aquest mètode no disposa de cap descripció. Podeu contribuir [color=$color]"
+"[url=$url] tot aportant-ne una[/url][/color]!"
#: editor/editor_help.cpp
msgid "Search Text"
@@ -1372,7 +1409,8 @@ msgstr "Sortida:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "Neteja"
@@ -1382,7 +1420,7 @@ msgstr "Error en desar recurs!"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Save Resource As.."
-msgstr "Desar Recurs com..."
+msgstr "Anomena i Desa el Recurs..."
#: editor/editor_node.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -1423,7 +1461,7 @@ msgstr "S'ha produït un error en carregar '% s'."
#: editor/editor_node.cpp
msgid "Saving Scene"
-msgstr "Desant Escena"
+msgstr "S'està desant l'Escena"
#: editor/editor_node.cpp
msgid "Analyzing"
@@ -1458,11 +1496,11 @@ msgstr "Error en desar MeshLibrary!"
#: editor/editor_node.cpp
msgid "Can't load TileSet for merging!"
-msgstr "No s'ha pogut carregar TileSet per combinar les dades!"
+msgstr "No s'ha pogut carregar el TileSet per combinar'ne les dades!"
#: editor/editor_node.cpp
msgid "Error saving TileSet!"
-msgstr "Error en desar TileSet!"
+msgstr "Error en desar el TileSet!"
#: editor/editor_node.cpp
msgid "Error trying to save layout!"
@@ -1486,8 +1524,8 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
-"Aquest recurs pertany a una escena importada, així que no és editable.\n"
-"Referiu-vos a la documentació rellevant per a la importació d'escenes."
+"Un Recurs pertanyent a una escena importada no és editable.\n"
+"Referiu-vos a la documentació rellevant sobre la importació d'escenes."
#: editor/editor_node.cpp
msgid ""
@@ -1503,7 +1541,7 @@ msgid ""
"import panel and then re-import."
msgstr ""
"En ser importat, un recurs no és editable. Canvieu-ne la configuració en el "
-"panell d'importació i abansd'importar."
+"panell d'importació i torneu-lo a importar."
#: editor/editor_node.cpp
msgid ""
@@ -1514,8 +1552,8 @@ msgid ""
msgstr ""
"En ser una escena importada, no se'n conservaran els canvis. \n"
"Instanciar o heretar l'escena permetria la seva modificació.\n"
-"Referiu-vos a la documentació rellevant a la importació d'escenes per a més "
-"informació."
+"Referiu-vos a la documentació rellevant sobre la importació d'escenes per a "
+"més informació."
#: editor/editor_node.cpp
msgid ""
@@ -1527,18 +1565,16 @@ msgstr ""
"Referiu-vos a la documentació rellevant sobre la Depuració de codi."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand all properties"
-msgstr "Expandir tot"
+msgstr "Expandeix totes les propietats"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Collapse all properties"
-msgstr "Col·lapsar tot"
+msgstr "Col·lapsa totes les propietats"
#: editor/editor_node.cpp
msgid "Copy Params"
-msgstr "Copia Paràmetres"
+msgstr "Copia els Paràmetres"
#: editor/editor_node.cpp
msgid "Paste Params"
@@ -1546,11 +1582,11 @@ msgstr "Enganxa els Paràmetres"
#: editor/editor_node.cpp editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Paste Resource"
-msgstr "Enganxa Recurs"
+msgstr "Enganxa el Recurs"
#: editor/editor_node.cpp
msgid "Copy Resource"
-msgstr "Copia Recurs"
+msgstr "Copia el Recurs"
#: editor/editor_node.cpp
msgid "Make Built-In"
@@ -1576,7 +1612,7 @@ msgid ""
msgstr ""
"No s'ha definit cap escena principal. Seleccioneu-ne una.\n"
"És possible triar-ne una altra des de \"Configuració del Projecte\" en la "
-"categoria \"aplicació\"."
+"categoria \"Aplicació\"."
#: editor/editor_node.cpp
msgid ""
@@ -1586,7 +1622,7 @@ msgid ""
msgstr ""
"L'escena '%s' no existeix. Seleccioneu-ne una de vàlida.\n"
"És possible triar-ne una altra més endavant a \"Configuració del Projecte\" "
-"en la categoria \"aplicació\"."
+"en la categoria \"Aplicació\"."
#: editor/editor_node.cpp
msgid ""
@@ -1597,7 +1633,7 @@ msgstr ""
"L'escena '%s' seleccionada no és un fitxer d'escena. Seleccioneu-ne un de "
"vàlid.\n"
"És possible triar-ne una altra més endavant a \"Configuració del Projecte\" "
-"en la categoria \"aplicació\"."
+"en la categoria \"Aplicació\"."
#: editor/editor_node.cpp
msgid "Current scene was never saved, please save it prior to running."
@@ -1610,11 +1646,11 @@ msgstr "No s'ha pogut començar el subprocés!"
#: editor/editor_node.cpp
msgid "Open Scene"
-msgstr "Obre Escena"
+msgstr "Obre una Escena"
#: editor/editor_node.cpp
msgid "Open Base Scene"
-msgstr "Obre Escena Base"
+msgstr "Obre una Escena Base"
#: editor/editor_node.cpp
msgid "Quick Open Scene.."
@@ -1634,7 +1670,7 @@ msgstr "Desar els canvis a '%s' abans de tancar?"
#: editor/editor_node.cpp
msgid "Save Scene As.."
-msgstr "Desa Escena com..."
+msgstr "Anomena i Desa l'Escena..."
#: editor/editor_node.cpp
msgid "No"
@@ -1647,11 +1683,11 @@ msgstr "Sí"
#: editor/editor_node.cpp
msgid "This scene has never been saved. Save before running?"
msgstr ""
-"Aquesta Escena no s'ha desat mai encara. Voleu desar-la abans d'executar-la?"
+"Aquesta escena no s'ha desat mai encara. Voleu desar-la abans d'executar-la?"
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "This operation can't be done without a scene."
-msgstr "Aquesta operació no es pot dur a terme sense una escena."
+msgstr "Aquesta operació no pot dur-se a terme sense cap escena."
#: editor/editor_node.cpp
msgid "Export Mesh Library"
@@ -1663,7 +1699,7 @@ msgstr "Aquesta operació no es pot dur a terme sense un node arrel."
#: editor/editor_node.cpp
msgid "Export Tile Set"
-msgstr "Exporta el joc de Mosaics (Tiles)"
+msgstr "Exporta el TileSet"
#: editor/editor_node.cpp
msgid "This operation can't be done without a selected node."
@@ -1671,11 +1707,11 @@ msgstr "Aquesta operació no es pot dur a terme sense un node seleccionat."
#: editor/editor_node.cpp
msgid "Current scene not saved. Open anyway?"
-msgstr "L'escena actual no s'ha desat. Vol obrir igualment?"
+msgstr "L'escena actual no s'ha desat. Voleu obrir-la igualment?"
#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
-msgstr "No es pot recarregar una escena no desada."
+msgstr "No es pot recarregar una escena mai desada."
#: editor/editor_node.cpp
msgid "Revert"
@@ -1683,7 +1719,7 @@ msgstr "Reverteix"
#: editor/editor_node.cpp
msgid "This action cannot be undone. Revert anyway?"
-msgstr "No es pot desfer aquesta acció. Vol revertir igualament?"
+msgstr "Aquesta acció no es pot desfer. N'esteu segur?"
#: editor/editor_node.cpp
msgid "Quick Run Scene.."
@@ -1707,7 +1743,7 @@ msgstr "Desar i Sortir"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before quitting?"
-msgstr "Desar els canvis a la(les) escena(es) següent(s) abans de Sortir?"
+msgstr "Voleu Desar els canvis en les escenes següents abans de Sortir?"
#: editor/editor_node.cpp
msgid "Save changes the following scene(s) before opening Project Manager?"
@@ -1720,8 +1756,8 @@ msgid ""
"This option is deprecated. Situations where refresh must be forced are now "
"considered a bug. Please report."
msgstr ""
-"Aquesta opció és obsoleta. Es consideren ara errors les situacions on s'ha "
-"de forçar el refrescament. Si us plau reporteu-ho."
+"Aquesta opció està desfasada. Ara, les situacions on s'ha de forçar el "
+"refrescament es consideren errors. Si us plau, informeu-ne."
#: editor/editor_node.cpp
msgid "Pick a Main Scene"
@@ -1779,11 +1815,11 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Scene '%s' has broken dependencies:"
-msgstr "Escena '%s' té dependències no vàlides:"
+msgstr "L'Escena '%s' té dependències no vàlides:"
#: editor/editor_node.cpp
msgid "Clear Recent Scenes"
-msgstr "Netejar Escenes Recents"
+msgstr "Buida les Escenes Recents"
#: editor/editor_node.cpp
msgid "Save Layout"
@@ -1816,7 +1852,7 @@ msgstr "%d fitxer(s) més"
#: editor/editor_node.cpp
msgid "Dock Position"
-msgstr "Posició del Acoblament"
+msgstr "Posició de l'Acoblador"
#: editor/editor_node.cpp
msgid "Distraction Free Mode"
@@ -1892,7 +1928,7 @@ msgstr "Biblioteca de Models (MeshLibrary)..."
#: editor/editor_node.cpp
msgid "TileSet.."
-msgstr "Joc de Mosaics (TileSet)..."
+msgstr "TileSet..."
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
@@ -2046,7 +2082,7 @@ msgstr "Mode Pantalla Completa"
#: editor/editor_node.cpp editor/project_export.cpp
msgid "Manage Export Templates"
-msgstr "Gestionar Plantilles d'Exportació"
+msgstr "Gestor de Plantilles d'Exportació"
#: editor/editor_node.cpp
msgid "Help"
@@ -2150,7 +2186,7 @@ msgstr "Desa el recurs editat ara."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Save As.."
-msgstr "Desa Com..."
+msgstr "Anomena i Desa..."
#: editor/editor_node.cpp
msgid "Go to the previous edited object in history."
@@ -2227,7 +2263,7 @@ msgstr "Errors de Càrrega"
#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp
msgid "Select"
-msgstr "Seleccionar"
+msgstr "Selecciona"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -2326,9 +2362,19 @@ msgstr "Propi"
msgid "Frame #:"
msgstr "Fotograma núm.:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Temps:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Crida"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
-msgstr "Seleccionar un dispositiu de la llista"
+msgstr "Selecciona un dispositiu de la llista"
#: editor/editor_run_native.cpp
msgid ""
@@ -2380,7 +2426,7 @@ msgstr "Importa des del Node:"
#: editor/export_template_manager.cpp
msgid "Re-Download"
-msgstr "Tornar a Descarregar"
+msgstr "Torna a Baixar"
#: editor/export_template_manager.cpp
msgid "Uninstall"
@@ -2392,7 +2438,7 @@ msgstr "(Instal·lat)"
#: editor/export_template_manager.cpp
msgid "Download"
-msgstr "Descarregar"
+msgstr "Baixa"
#: editor/export_template_manager.cpp
msgid "(Missing)"
@@ -2408,7 +2454,7 @@ msgstr "S'estan buscant rèpliques..."
#: editor/export_template_manager.cpp
msgid "Remove template version '%s'?"
-msgstr "Eliminar la versió \"%s\" de la plantilla ?"
+msgstr "Voleu Eliminar la versió \"%s\" de la plantilla ?"
#: editor/export_template_manager.cpp
msgid "Can't open export templates zip."
@@ -2447,8 +2493,8 @@ msgid ""
"No download links found for this version. Direct download is only available "
"for official releases."
msgstr ""
-"No s'ha trobat cap enllaç de descàrrega per a aquesta versió. Les "
-"descàrregues directes només són disponibles per a versions oficials."
+"No s'ha trobat cap enllaç de baixada per a aquesta versió. Les baixades "
+"directes només són disponibles per a versions oficials."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -2467,7 +2513,8 @@ msgstr "Cap resposta."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "Ha fallat la sol·licitud."
#: editor/export_template_manager.cpp
@@ -2486,7 +2533,7 @@ msgstr "No es pot escriure el fitxer."
#: editor/export_template_manager.cpp
msgid "Download Complete."
-msgstr "Descàrrega Completa."
+msgstr "Baixada Completa."
#: editor/export_template_manager.cpp
msgid "Error requesting url: "
@@ -2514,7 +2561,8 @@ msgid "Connecting.."
msgstr "Connexió en marxa..."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "No es pot connectar"
#: editor/export_template_manager.cpp
@@ -2552,7 +2600,7 @@ msgstr "Instal·lar des d'un Fitxer"
#: editor/export_template_manager.cpp
msgid "Remove Template"
-msgstr "Eliminar Plantilla"
+msgstr "Elimina la Plantilla"
#: editor/export_template_manager.cpp
msgid "Select template file"
@@ -2564,7 +2612,7 @@ msgstr "Gestor de Plantilles d'Exportació"
#: editor/export_template_manager.cpp
msgid "Download Templates"
-msgstr "Descarrega plantilles"
+msgstr "Baixa plantilles"
#: editor/export_template_manager.cpp
msgid "Select mirror from list: "
@@ -2582,11 +2630,11 @@ msgstr "No es pot accedir a '%s'. No es troba en el sistema de fitxers!"
#: editor/filesystem_dock.cpp
msgid "View items as a grid of thumbnails"
-msgstr "Veure com a graella de miniatures"
+msgstr "Visualitza en una graella de miniatures"
#: editor/filesystem_dock.cpp
msgid "View items as a list"
-msgstr "Veure com a llista"
+msgstr "Visualitza en una llista"
#: editor/filesystem_dock.cpp
msgid ""
@@ -2594,7 +2642,7 @@ msgid ""
"Status: Import of file failed. Please fix file and reimport manually."
msgstr ""
"\n"
-"Estat: No s'ha pogut importar. Corregeixi el fitxer i torni a importar."
+"Estat: No s'ha pogut importar. Corregiu el fitxer i torneu a importar."
#: editor/filesystem_dock.cpp
msgid "Cannot move/rename resources root."
@@ -2609,6 +2657,11 @@ msgid "Error moving:\n"
msgstr "Error en moure:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Error en carregar:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "No s'han pogut actualitzar les dependències:\n"
@@ -2641,6 +2694,16 @@ msgid "Renaming folder:"
msgstr "Reanomenant directori:"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Duplica"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Reanomenant directori:"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "Expandir tot"
@@ -2649,24 +2712,17 @@ msgid "Collapse all"
msgstr "Col·lapsar tot"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "Copia Camí"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
-msgstr "Reanomenar.."
+msgstr "Reanomena.."
#: editor/filesystem_dock.cpp
msgid "Move To.."
-msgstr "Moure cap a..."
-
-#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "Nou Directori.."
+msgstr "Mou cap a..."
#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "Mostra en el Gestor de Fitxers"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Obre una Escena"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2681,6 +2737,11 @@ msgid "View Owners.."
msgstr "Mostra Propietaris..."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Duplica"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "Directori Anterior"
@@ -2708,20 +2769,20 @@ msgstr "Analitzant Fitxers..."
#: editor/filesystem_dock.cpp
msgid "Move"
-msgstr "Moure"
+msgstr "Mou"
#: editor/filesystem_dock.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/project_manager.cpp
msgid "Rename"
-msgstr "Reanomenar"
+msgstr "Reanomena"
#: editor/groups_editor.cpp
msgid "Add to Group"
-msgstr "Afegir al Grup"
+msgstr "Afegeix al Grup"
#: editor/groups_editor.cpp
msgid "Remove from Group"
-msgstr "Treure del Grup"
+msgstr "Treu del Grup"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Single Scene"
@@ -2773,6 +2834,16 @@ msgid "Importing Scene.."
msgstr "Important Escena..."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "Generant AABB"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "Generant AABB"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "Executant Script Personalitzat..."
@@ -2909,12 +2980,12 @@ msgstr "ERROR: Ja existeix aquest nom d'Animació!"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Rename Animation"
-msgstr "Reanomenar Animació"
+msgstr "Reanomena l'Animació"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Animation"
-msgstr "Afegir Animació"
+msgstr "Afegeix una Animació"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Next Changed"
@@ -2987,11 +3058,11 @@ msgstr "Crea una nova animació en el reproductor."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load animation from disk."
-msgstr "Carregar un animació del del disc."
+msgstr "Carrega un animació del del disc."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load an animation from disk."
-msgstr "Carregar una animació des del disc."
+msgstr "Carrega una animació des del disc."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Save the current animation"
@@ -3019,54 +3090,51 @@ msgstr "Copiar l'Animació"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "Efecte Paper Ceba"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Activa l'Efecte Paper Ceba"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "Seccions:"
+msgstr "Direccions"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Past"
-msgstr "Enganxa"
+msgstr "Passat"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Future"
-msgstr "Característiques"
+msgstr "Futur"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Profunditat"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 pas"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 passos"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 passos"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Només diferencial"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
-msgstr ""
+msgstr "Força modulació blanca"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "Inclou Gizmos (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -3252,7 +3320,7 @@ msgstr "Continguts:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "View Files"
-msgstr "Veure Fitxers"
+msgstr "Visualitza Fitxers"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve hostname:"
@@ -3280,7 +3348,7 @@ msgstr "Ha fallat la sol·licitud. Massa redireccionaments"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Bad download hash, assuming file has been tampered with."
-msgstr "Error en la descàrrega (hash incorrecte). El fitxer fou manipulat."
+msgstr "Error en la baixada (hash incorrecte). El fitxer fou manipulat."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Expected:"
@@ -3296,7 +3364,7 @@ msgstr "Ha fallat la comprovació del hash sha256"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Asset Download Error:"
-msgstr "Error en la descàrrega de l'Actiu:"
+msgstr "Error en la baixada de l'Actiu:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Fetching:"
@@ -3320,7 +3388,7 @@ msgstr "Torneu a provar"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download Error"
-msgstr "Error en la Descàrrega"
+msgstr "Error en la Baixada"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download for this asset is already in progress!"
@@ -3343,6 +3411,7 @@ msgid "last"
msgstr "darrer"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Tot"
@@ -3384,6 +3453,28 @@ msgstr "Provant"
msgid "Assets ZIP File"
msgstr "Arxiu ZIP d'Actius"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "Modifica el Radi de Llum"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "Previsualització"
@@ -3519,16 +3610,15 @@ msgstr "Mode d'Escombratge lateral"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggles snapping"
-msgstr "Act/Desactiva Acoblament"
+msgstr "Activa/Desactiva Alineament"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "Alinea"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snapping options"
-msgstr "Opcions d'Acoblament"
+msgstr "Opcions d'Alineament"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to grid"
@@ -3702,16 +3792,6 @@ msgstr "Error en instanciar l'escena des de %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "Buenu, pos molt bé, pos adiós... :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "No hi ha cap node Pare per instanciar-li un fill."
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr "Aquesta operació requereix un únic node seleccionat."
@@ -3907,6 +3987,22 @@ msgid "Create Navigation Mesh"
msgstr "Crea un malla de Navegació"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr "MeshInstance manca d'una Malla!"
@@ -3947,6 +4043,20 @@ msgid "Create Outline Mesh.."
msgstr "Crea una malla de contorn..."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Vista"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Vista"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr "Crea la Malla de Contorn"
@@ -4123,10 +4233,6 @@ msgid "Create Navigation Polygon"
msgstr "Crea un Polígon de Navegació"
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr "Esborra la Màscara d'Emissió"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr "Generant AABB"
@@ -4144,10 +4250,6 @@ msgid "No pixels with transparency > 128 in image.."
msgstr "Cap píxel amb transparència > 128 en la imatge..."
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "Estableix la Màscara d'Emissió"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
msgstr "Genera un Rectangle de Visibilitat"
@@ -4156,6 +4258,10 @@ msgid "Load Emission Mask"
msgstr "Carrega una Màscara d'Emissió"
#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "Esborra la Màscara d'Emissió"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
msgstr "Partícules"
@@ -4214,10 +4320,6 @@ msgid "Create Emission Points From Node"
msgstr "Crea Punts d'Emissió des d'un Node"
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "Esborra l'Emissor"
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr "Crea un Emissor"
@@ -4425,7 +4527,7 @@ msgstr "Graella"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "ERROR: Couldn't load resource!"
-msgstr "Error: no es pot carregar el recurs!"
+msgstr "Error: No es pot carregar el recurs!"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Add Resource"
@@ -4458,7 +4560,7 @@ msgstr "Enganxa"
#: editor/plugins/script_editor_plugin.cpp
msgid "Clear Recent Files"
-msgstr "Esborra la llista de Fitxers recents"
+msgstr "Buida la llista de Fitxers recents"
#: editor/plugins/script_editor_plugin.cpp
msgid ""
@@ -4502,11 +4604,13 @@ msgstr "Ordena"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "Mou Amunt"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "Mou avall"
@@ -4522,7 +4626,7 @@ msgstr "Script Anterior"
msgid "File"
msgstr "Fitxer"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "Nou"
@@ -4535,6 +4639,11 @@ msgid "Soft Reload Script"
msgstr "Recarrega parcialment l'Script"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Copia Camí"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr "Anterior en l'Historial"
@@ -4643,11 +4752,11 @@ msgid ""
"What action should be taken?:"
msgstr ""
"El disc conté versions més recents dels fitxer següents. \n"
-"Quina acció s'ha de seguir?:"
+"Quina acció voleu seguir?:"
#: editor/plugins/script_editor_plugin.cpp
msgid "Reload"
-msgstr "Tornar a Carregar"
+msgstr "Torna a Carregar"
#: editor/plugins/script_editor_plugin.cpp
msgid "Resave"
@@ -4666,7 +4775,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
msgid "Only resources from filesystem can be dropped."
-msgstr "Només es poden afegir Recursos del sistema de fitxers."
+msgstr "Només s'hi poden deixar caure Recursos del sistema de fitxers."
#: editor/plugins/script_text_editor.cpp
msgid "Pick Color"
@@ -4722,14 +4831,11 @@ msgstr "Comentaris"
#: editor/plugins/script_text_editor.cpp
msgid "Clone Down"
-msgstr "Clonar avall"
+msgstr "Clona avall"
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr "Plega la Línia"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+#, fuzzy
+msgid "Fold/Unfold Line"
msgstr "Desplega la línia"
#: editor/plugins/script_text_editor.cpp
@@ -4958,7 +5064,6 @@ msgid "Z-Axis Transform."
msgstr "Transformació de l'Eix Z."
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View Plane Transform."
msgstr "Transformació de la Vista."
@@ -5058,6 +5163,14 @@ msgstr "FPS"
msgid "Align with view"
msgstr "Alinea amb la Vista"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "Buenu, pos molt bé, pos adiós... :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "No hi ha cap node Pare per instanciar-li un fill."
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "Mostra les Normals"
@@ -5080,7 +5193,7 @@ msgstr "Mostra l'Entorn"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Gizmos"
-msgstr "Mostra el Trasto"
+msgstr "Mostra els Gizmos"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Information"
@@ -5088,7 +5201,7 @@ msgstr "Mostra la Informació"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View FPS"
-msgstr "Veure FPS"
+msgstr "Visualitza FPS"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Half Resolution"
@@ -5135,7 +5248,6 @@ msgid "preview"
msgstr "Previsualització"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "XForm Dialog"
msgstr "Diàleg XForm"
@@ -5166,6 +5278,20 @@ msgid "Scale Mode (R)"
msgstr "Mode Escala (R)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "Coordenades Locals"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "Mode Escala (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Mode Imant:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "Vista Inferior"
@@ -5207,7 +5333,7 @@ msgstr "Focalitza't en la Selecció"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Selection With View"
-msgstr "Aliena la Selecció amb la Vista"
+msgstr "Alinea la Selecció amb la Vista"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Tool Select"
@@ -5215,7 +5341,7 @@ msgstr "Selecciona una Eina"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Tool Move"
-msgstr "Eina de Moure"
+msgstr "Eina de Translació"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Tool Rotate"
@@ -5238,10 +5364,6 @@ msgid "Configure Snap.."
msgstr "Configura l'Alineament..."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "Coordenades Locals"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr "Diàleg de Transformació..."
@@ -5283,6 +5405,10 @@ msgid "Settings"
msgstr "Configuració"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr "Configuració de l'Alineament"
@@ -5320,7 +5446,7 @@ msgstr "Modifica la Transformació"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translate:"
-msgstr "Traslladar:"
+msgstr "Translació:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate (deg.):"
@@ -5586,7 +5712,7 @@ msgstr "Elimina la Selecció"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint TileMap"
-msgstr "Pinta el Mosaic"
+msgstr "Pinta el TileMap"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Line Draw"
@@ -5602,7 +5728,7 @@ msgstr "Cubell de pintura"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase TileMap"
-msgstr "Elimina el Mosaic"
+msgstr "Elimina el TileMap"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase selection"
@@ -5665,6 +5791,11 @@ msgid "Merge from scene?"
msgstr "Combinar-ho a partir de l'escena?"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet..."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "Crea-ho a partir de l'Escena"
@@ -5676,6 +5807,10 @@ msgstr "Combina-ho a partir de l'Escena"
msgid "Error"
msgstr "Error"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Cancel·la"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Executable"
@@ -5801,10 +5936,6 @@ msgid "Imported Project"
msgstr "Project importat"
#: editor/project_manager.cpp
-msgid " "
-msgstr " "
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr "Fóra bo anomenar el projecte."
@@ -5846,7 +5977,7 @@ msgstr "Importa un Projecte existent"
#: editor/project_manager.cpp
msgid "Create New Project"
-msgstr "Crea un Project nou"
+msgstr "Crea un Projecte nou"
#: editor/project_manager.cpp
msgid "Install Project:"
@@ -5963,6 +6094,8 @@ msgid ""
"You don't currently have any projects.\n"
"Would you like to explore the official example projects in the Asset Library?"
msgstr ""
+"Encara no teniu cap projecte.\n"
+"Voleu explorar els projectes oficials d'exemple a la llibreria activa?"
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -6070,8 +6203,9 @@ msgid "Joypad Button Index:"
msgstr "Ãndex del Botó de la Maneta:"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "Afegeix una Acció d'Entrada"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Elimina la Incidència d'Acció d'Entrada"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6138,6 +6272,10 @@ msgid "Already existing"
msgstr "Ja existeix"
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "Afegeix una Acció d'Entrada"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "No s'ha pogut desar la configuració."
@@ -6314,6 +6452,10 @@ msgid "New Script"
msgstr "Script Nou"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr "Fes-lo Únic"
@@ -6345,6 +6487,11 @@ msgstr "Bit %d, valor %d."
msgid "On"
msgstr "Activat"
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "Afegeix un element Buit"
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "Estableix"
@@ -6353,10 +6500,6 @@ msgstr "Estableix"
msgid "Properties:"
msgstr "Propietats:"
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr "Seccions:"
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "Selecciona una Propietat"
@@ -6839,7 +6982,6 @@ msgid "Inspect Next Instance"
msgstr "Inspecciona la Instància següent"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Stack Frames"
msgstr "Fotogrames de la Pila"
@@ -6923,6 +7065,10 @@ msgstr "Estableix des de l'Arbre"
msgid "Shortcuts"
msgstr "Dreceres"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "Modifica el Radi de Llum"
@@ -6971,26 +7117,65 @@ msgstr "Modifica les Partícules AABB"
msgid "Change Probe Extents"
msgstr "Modifica l'abast de la Sonda"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Elimina un punt de la Corba"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "Biblioteca"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "GDNative"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr "Biblioteca"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr "Estat"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr "Biblioteques: "
#: modules/gdnative/register_types.cpp
msgid "GDNative"
-msgstr "GDNatiu"
+msgstr "GDNative"
#: modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "Argument de tipus invàlid per a convert(), utilitzi constants TYPE_*."
+msgstr "L'argument per a convert() no és vàlid, utilitzeu constants TYPE_*."
#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -6998,9 +7183,8 @@ msgid "Not enough bytes for decoding bytes, or invalid format."
msgstr "Manquen bytes per a descodificar els bytes, o el format no és vàlid."
#: modules/gdscript/gdscript_functions.cpp
-#, fuzzy
msgid "step argument is zero!"
-msgstr "L'argument 'Pas' és zero!"
+msgstr "L'argument 'step' és zero!"
#: modules/gdscript/gdscript_functions.cpp
msgid "Not a script with an instance"
@@ -7016,34 +7200,35 @@ msgstr "No basat en un arxiu de recursos"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (missing @path)"
-msgstr "Format del diccionari d'instàncies invàlid (manca @path)"
+msgstr "El format del diccionari d'instàncies no és vàlid (manca @path)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (can't load script at @path)"
msgstr ""
-"Format del diccionari d'instàncies invàlid (no es pot carregar l'Script a "
-"@path)"
+"El format del diccionari d'instàncies no és vàlid (no es pot carregar "
+"l'Script a @path)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (invalid script at @path)"
-msgstr "Format del diccionari d'instàncies invàlid (Script invàlid a @path)"
+msgstr ""
+"El Format del diccionari d'instàncies no és vàlid ( L'Script a @path no és "
+"vàlid)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary (invalid subclasses)"
-msgstr "Diccionari d'instàncies invàlid (subclasses invàlides)"
+msgstr "El Diccionari d'instàncies no és vàlid (subclasses no vàlides)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Object can't provide a length."
msgstr "L'objecte no pot proporcionar una longitud."
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Delete Selection"
-msgstr "Elimina la Selecció en el Mapa de Graella"
+msgstr "Elimina la Selecció del GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Duplicate Selection"
-msgstr "Duplica la Selecció del Mapa de Graella"
+msgstr "Duplica la Selecció del GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Floor:"
@@ -7135,7 +7320,7 @@ msgstr "Esborra la Selecció"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Settings"
-msgstr "Configuració del Mapa de Graella"
+msgstr "Configuració del GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Pick Distance:"
@@ -7171,7 +7356,7 @@ msgstr ""
#: modules/visual_script/visual_script.cpp
msgid "Node returned an invalid sequence output: "
-msgstr "El node ha retornat un seqüencia de sortida invàlida: "
+msgstr "El node ha retornat un seqüencia de sortida que no és vàlida: "
#: modules/visual_script/visual_script.cpp
msgid "Found sequence bit but not the node in the stack, report bug!"
@@ -7233,11 +7418,11 @@ msgstr "Reanomena Senyal"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Function"
-msgstr "Afegir Funció"
+msgstr "Afegeix una Funció"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Variable"
-msgstr "Afegir Variable"
+msgstr "Afegeix una Variable"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Signal"
@@ -7289,15 +7474,15 @@ msgstr "Retén Ctrl per dipositar una Variable d'Actualització (Setter)."
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Preload Node"
-msgstr "Afegir Node de Precàrrega"
+msgstr "Afegeix un Node de Precàrrega"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
-msgstr "Afegir Node(s) des d'Arbre"
+msgstr "Afegeix Nodes des d'Arbre"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Getter Property"
-msgstr "Afegir Propietat d'Accés (Getter)"
+msgstr "Afegeix una Propietat d'Accés (Getter)"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Setter Property"
@@ -7445,15 +7630,15 @@ msgstr "Tipus d'entrada no iterable: "
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid"
-msgstr "L'Iterador ha esdevingut invàlid"
+msgstr "L'Iterador ja no és vàlid"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid: "
-msgstr "L'Iterador ha esdevingut invàlid: "
+msgstr "L'Iterador ja no és vàlid: "
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name."
-msgstr "El Nom de la propietat index és invàlid."
+msgstr "El Nom de la propietat índex no és vàlid."
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Base object is not a Node!"
@@ -7465,15 +7650,15 @@ msgstr "El camí no condueix a cap Node!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name '%s' in node %s."
-msgstr "El nom de la propietat index '%s' és invàlid en el node %s."
+msgstr "El nom de la propietat índex '%s' del node %s no és vàlid ."
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
-msgstr ": Argument invàlid del tipus: "
+msgstr ": Argument no vàlid del tipus: "
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid arguments: "
-msgstr ": Arguments invàlids: "
+msgstr ": Arguments no vàlids: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableGet not found in script: "
@@ -7681,6 +7866,25 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr "El node ARVROrigin requreix un node Fill del tipus ARVRCamera"
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "S'estàn traçant les Malles"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "S'estàn traçant les Malles"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr "S'està finalitzant el Traçat"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "S'estàn traçant les Malles"
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7717,10 +7921,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr "S'estàn traçant les Malles"
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr "S'està finalitzant el Traçat"
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7736,11 +7936,9 @@ msgstr ""
"proporciona dades de navegació."
#: scene/3d/particles.cpp
-#, fuzzy
msgid ""
"Nothing is visible because meshes have not been assigned to draw passes."
-msgstr ""
-"Res és visible perquè no s'ha assignat cap Malla a cap passi de Dibuix."
+msgstr "Res és visible perquè no s'ha assignat cap Malla a cap pas de Dibuix."
#: scene/3d/physics_body.cpp
msgid ""
@@ -7789,10 +7987,6 @@ msgid "Add current color as a preset"
msgstr "Afegeix el Color actual com a predeterminat"
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Cancel·la"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Ep!"
@@ -7801,9 +7995,8 @@ msgid "Please Confirm..."
msgstr "Confirmeu..."
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select this Folder"
-msgstr "Selecciona un Mètode"
+msgstr "Selecciona aquest Directori"
#: scene/gui/popup.cpp
msgid ""
@@ -7816,15 +8009,14 @@ msgstr ""
"s'edita, però s'ocultaran durant l'execució."
#: scene/gui/scroll_container.cpp
-#, fuzzy
msgid ""
"ScrollContainer is intended to work with a single child control.\n"
"Use a container as child (VBox,HBox,etc), or a Control and set the custom "
"minimum size manually."
msgstr ""
-"ScrollContainer està pensat per treballar amb un sol control fill.\n"
-"Utilitza un contenidor (VBox, HBox,...) com a fill, o utilitza un Control i "
-"estableix manualment una mida mínima personalitzada."
+"ScrollContainer fou pensat per treballar-hi amb un sol Control fill.\n"
+"Utilitzeu un contenidor (VBox, HBox, ...) com a fill, o un utilitzeu Control "
+"i personalitzeu-hi la mida mínima manualment."
#: scene/gui/tree.cpp
msgid "(Other)"
@@ -7866,6 +8058,30 @@ msgstr "Error carregant lletra."
msgid "Invalid font size."
msgstr "La mida de la lletra no és vàlida."
+#~ msgid "Move Add Key"
+#~ msgstr "Mou o Afegeix una Clau"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Crea Subscripció"
+
+#~ msgid "List:"
+#~ msgstr "Llista:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "Estableix la Màscara d'Emissió"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "Esborra l'Emissor"
+
+#~ msgid "Fold Line"
+#~ msgstr "Plega la Línia"
+
+#~ msgid " "
+#~ msgstr " "
+
+#~ msgid "Sections:"
+#~ msgstr "Seccions:"
+
#~ msgid "Cannot navigate to '"
#~ msgstr "No es pot navegar fins '"
diff --git a/editor/translations/cs.po b/editor/translations/cs.po
index ecbc9c950e..cfc390fd24 100644
--- a/editor/translations/cs.po
+++ b/editor/translations/cs.po
@@ -12,8 +12,8 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-25 07:45+0000\n"
-"Last-Translator: Jiri Hysek <contact@jirihysek.com>\n"
+"PO-Revision-Date: 2017-12-09 19:45+0000\n"
+"Last-Translator: Martin Novák <maidx@seznam.cz>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/godot-engine/godot/"
"cs/>\n"
"Language: cs\n"
@@ -24,15 +24,16 @@ msgstr ""
#: editor/animation_editor.cpp
msgid "Disabled"
-msgstr "Vypnuto"
+msgstr "Zakázáno"
#: editor/animation_editor.cpp
msgid "All Selection"
msgstr "Všechny vybrané"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr ""
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Animace: změna hodnoty"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -43,7 +44,8 @@ msgid "Anim Change Transform"
msgstr "Animace: změna transformace"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Animace: změna hodnoty"
#: editor/animation_editor.cpp
@@ -89,7 +91,7 @@ msgstr "Animace: změna typu hodnot"
#: editor/animation_editor.cpp
#, fuzzy
msgid "Anim Track Change Wrap Mode"
-msgstr "Animace: změna typu hodnot"
+msgstr "ZmÄ›na režimu opakování animaÄní stopy"
#: editor/animation_editor.cpp
msgid "Edit Node Curve"
@@ -110,7 +112,7 @@ msgstr "Duplikovat výběr"
#: editor/animation_editor.cpp
msgid "Duplicate Transposed"
-msgstr ""
+msgstr "Duplikovat transponované"
#: editor/animation_editor.cpp
msgid "Remove Selection"
@@ -167,15 +169,15 @@ msgstr "In"
#: editor/animation_editor.cpp
msgid "Out"
-msgstr "Out"
+msgstr "Výstup"
#: editor/animation_editor.cpp
msgid "In-Out"
-msgstr "In-Out"
+msgstr "Vstup-Výstup"
#: editor/animation_editor.cpp
msgid "Out-In"
-msgstr "Out-In"
+msgstr "Výstup-Vstup"
#: editor/animation_editor.cpp
msgid "Transitions"
@@ -268,7 +270,7 @@ msgstr "Zapnout/vypnout opakování animace."
#: editor/animation_editor.cpp
msgid "Add new tracks."
-msgstr "Přidat nové stopy."
+msgstr "Přidat novou stopu."
#: editor/animation_editor.cpp
msgid "Move current track up."
@@ -324,7 +326,7 @@ msgstr "Přechod"
#: editor/animation_editor.cpp
msgid "Scale Ratio:"
-msgstr "Poměr velikosti:"
+msgstr "Poměr měřítka:"
#: editor/animation_editor.cpp
msgid "Call Functions in Which Node?"
@@ -336,7 +338,7 @@ msgstr "Odstranit neplatné klíÄe"
#: editor/animation_editor.cpp
msgid "Remove unresolved and empty tracks"
-msgstr ""
+msgstr "Odstranit nevyřešené a prázdné stopy"
#: editor/animation_editor.cpp
msgid "Clean-up all animations"
@@ -375,7 +377,6 @@ msgid "No Matches"
msgstr "Žádné shody"
#: editor/code_editor.cpp
-#, fuzzy
msgid "Replaced %d occurrence(s)."
msgstr "Nahrazeno %d výskytů."
@@ -425,7 +426,7 @@ msgstr "Nahradit"
#: editor/code_editor.cpp
msgid "Case Sensitive"
-msgstr ""
+msgstr "Rozlišovat velká a malá písmena"
#: editor/code_editor.cpp
msgid "Backwards"
@@ -539,8 +540,9 @@ msgid "Connecting Signal:"
msgstr "Připojuji signál:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Vytvořit odběr"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Připojit '%s' k '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -556,7 +558,8 @@ msgid "Signals"
msgstr "Signály"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Vytvořit nový"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -571,7 +574,7 @@ msgstr "Nedávné:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Hledat:"
@@ -612,6 +615,7 @@ msgstr ""
"ZmÄ›ny se projeví po opÄ›tovném naÄtení."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Závislosti"
@@ -707,16 +711,17 @@ msgstr "Zdroje bez explicitního vlastnictví:"
#: editor/dependency_editor.cpp editor/editor_node.cpp
msgid "Orphan Resource Explorer"
-msgstr "Průzkumník sirotků zdrojů"
+msgstr "Průzkumník osiřelých zdrojů"
#: editor/dependency_editor.cpp
msgid "Delete selected files?"
msgstr "Odstranit vybrané soubory?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Odstranit"
@@ -725,9 +730,8 @@ msgid "Change Dictionary Key"
msgstr "ZmÄ›nit slovníkový klíÄ"
#: editor/dictionary_property_edit.cpp
-#, fuzzy
msgid "Change Dictionary Value"
-msgstr "Změnit hodnotu pole"
+msgstr "Změnit hodnotu slovníku"
#: editor/editor_about.cpp
msgid "Thanks from the Godot community!"
@@ -739,7 +743,7 @@ msgstr "Díky!"
#: editor/editor_about.cpp
msgid "Godot Engine contributors"
-msgstr ""
+msgstr "Přispívající do Godot Enginu"
#: editor/editor_about.cpp
#, fuzzy
@@ -752,7 +756,7 @@ msgstr "Vedoucí vývojář"
#: editor/editor_about.cpp editor/project_manager.cpp
msgid "Project Manager"
-msgstr "Projektový manažer"
+msgstr "Správce projektů"
#: editor/editor_about.cpp
msgid "Developers"
@@ -805,6 +809,10 @@ msgid ""
"is an exhaustive list of all such thirdparty components with their "
"respective copyright statements and license terms."
msgstr ""
+"Godot Engine závisí na volně dostupných a open source knihovnách od třetích "
+"stran; všechny jsou kompatibilní s podmínkami jeho MIT licence. Následuje "
+"vyÄerpávající seznam tÄ›chto komponent tÅ™etích stran s jejich přísluÅ¡nými "
+"popisy autorských práv a s licenÄními podmínkami."
#: editor/editor_about.cpp
#, fuzzy
@@ -826,7 +834,7 @@ msgstr "NepodaÅ™ilo se otevřít balíÄek, není ve formátu zip."
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
-msgstr ""
+msgstr "Dekomprese uživatelského obsahu"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Package Installed Successfully!"
@@ -835,7 +843,7 @@ msgstr "BalíÄek byl úspěšnÄ› nainstalován!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Success!"
-msgstr ""
+msgstr "Úspěch!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp
@@ -848,7 +856,7 @@ msgstr "Instalátor balíÄků"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
-msgstr ""
+msgstr "Reproduktory"
#: editor/editor_audio_buses.cpp
msgid "Add Effect"
@@ -860,6 +868,11 @@ msgid "Rename Audio Bus"
msgstr "Přejmenovat AutoLoad"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Změnit hodnotu pole"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr ""
@@ -908,8 +921,8 @@ msgstr ""
msgid "Bus options"
msgstr ""
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr ""
@@ -924,6 +937,10 @@ msgid "Delete Effect"
msgstr "Smazat vybraný"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr ""
@@ -1079,7 +1096,8 @@ msgstr "Cesta:"
msgid "Node Name:"
msgstr "Název uzlu:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Název"
@@ -1087,10 +1105,6 @@ msgstr "Název"
msgid "Singleton"
msgstr "Singleton"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Seznam:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr ""
@@ -1103,6 +1117,14 @@ msgstr ""
msgid "Updating scene.."
msgstr ""
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr ""
@@ -1153,6 +1175,23 @@ msgstr "Soubor už existuje. Přepsat?"
msgid "Select Current Folder"
msgstr "Vytvořit složku"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+#, fuzzy
+msgid "New Folder.."
+msgstr "Vytvořit složku"
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr "Všechny rozpoznatelné"
@@ -1200,10 +1239,6 @@ msgid "Go Up"
msgstr ""
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr ""
@@ -1260,7 +1295,7 @@ msgstr ""
#: editor/editor_help.cpp editor/editor_node.cpp
#: editor/plugins/script_editor_plugin.cpp
msgid "Search Help"
-msgstr ""
+msgstr "Prohledat nápovědu"
#: editor/editor_help.cpp
msgid "Class List:"
@@ -1384,11 +1419,12 @@ msgstr ""
#: editor/editor_log.cpp
msgid "Output:"
-msgstr ""
+msgstr "Výstup:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "VyÄistit"
@@ -1460,6 +1496,8 @@ msgstr ""
msgid ""
"Couldn't save scene. Likely dependencies (instances) couldn't be satisfied."
msgstr ""
+"Nepodařilo se uložit scénu. Nejspíše se nepodařilo uspokojit závislosti "
+"(instance)."
#: editor/editor_node.cpp
msgid "Failed to load resource."
@@ -1487,7 +1525,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Default editor layout overridden."
-msgstr ""
+msgstr "Výchozí rozložení editoru přepsáno."
#: editor/editor_node.cpp
msgid "Layout name not found!"
@@ -1565,7 +1603,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Open in Help"
-msgstr ""
+msgstr "Otevřít v nápovědě"
#: editor/editor_node.cpp
msgid "There is no defined scene to run."
@@ -1602,7 +1640,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Open Scene"
-msgstr ""
+msgstr "Otevřít scénu"
#: editor/editor_node.cpp
msgid "Open Base Scene"
@@ -1610,11 +1648,11 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Quick Open Scene.."
-msgstr ""
+msgstr "Rychlé otevření scény.."
#: editor/editor_node.cpp
msgid "Quick Open Script.."
-msgstr ""
+msgstr "Rychlé otevření skriptu.."
#: editor/editor_node.cpp
#, fuzzy
@@ -1627,7 +1665,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Save Scene As.."
-msgstr ""
+msgstr "Uložit scénu jako.."
#: editor/editor_node.cpp
msgid "No"
@@ -1687,7 +1725,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Exit the editor?"
-msgstr ""
+msgstr "UkonÄit editor?"
#: editor/editor_node.cpp
msgid "Open Project Manager?"
@@ -1733,6 +1771,8 @@ msgstr "Chyba nahrávání fontu."
msgid ""
"Unable to load addon script from path: '%s' Base type is not EditorPlugin."
msgstr ""
+"NepodaÅ™ilo se naÄíst addon skript z cesty: '%s'. Základní typ není "
+"EditorPlugin."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
@@ -1836,19 +1876,19 @@ msgstr ""
#: editor/editor_node.cpp
msgid "New Scene"
-msgstr ""
+msgstr "Nová scéna"
#: editor/editor_node.cpp
msgid "New Inherited Scene.."
-msgstr ""
+msgstr "Nová odvozená scéna.."
#: editor/editor_node.cpp
msgid "Open Scene.."
-msgstr ""
+msgstr "Otevřít scénu.."
#: editor/editor_node.cpp
msgid "Save Scene"
-msgstr ""
+msgstr "Uložit scénu"
#: editor/editor_node.cpp
msgid "Save all Scenes"
@@ -1856,15 +1896,15 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Close Scene"
-msgstr ""
+msgstr "Zavřít scénu"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Open Recent"
-msgstr ""
+msgstr "Otevřít nedávné"
#: editor/editor_node.cpp
msgid "Convert To.."
-msgstr ""
+msgstr "Konvertovat na.."
#: editor/editor_node.cpp
msgid "MeshLibrary.."
@@ -1915,11 +1955,11 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Quit to Project List"
-msgstr ""
+msgstr "UkonÄit do seznamu projektů"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Debug"
-msgstr ""
+msgstr "Ladění"
#: editor/editor_node.cpp
msgid "Deploy with Remote Debug"
@@ -1990,29 +2030,28 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Editor"
-msgstr "Upravit"
+msgstr "Editor"
#: editor/editor_node.cpp editor/settings_config_dialog.cpp
msgid "Editor Settings"
-msgstr ""
+msgstr "Nastavení editoru"
#: editor/editor_node.cpp
msgid "Editor Layout"
-msgstr ""
+msgstr "Rozložení editoru"
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr ""
+msgstr "Celá obrazovka"
#: editor/editor_node.cpp editor/project_export.cpp
msgid "Manage Export Templates"
-msgstr ""
+msgstr "Spravovat exportní šablony"
#: editor/editor_node.cpp
msgid "Help"
-msgstr ""
+msgstr "Nápověda"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Classes"
@@ -2032,7 +2071,7 @@ msgstr ""
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
-msgstr "Z komunity"
+msgstr "Komunita"
#: editor/editor_node.cpp
msgid "About"
@@ -2150,7 +2189,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Output"
-msgstr ""
+msgstr "Výstup"
#: editor/editor_node.cpp
msgid "Don't Save"
@@ -2158,7 +2197,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Import Templates From ZIP File"
-msgstr ""
+msgstr "Importovat šablony ze ZIP souboru"
#: editor/editor_node.cpp editor/project_export.cpp
msgid "Export Project"
@@ -2293,6 +2332,15 @@ msgstr ""
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Zavolat"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr ""
@@ -2377,30 +2425,30 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Can't open export templates zip."
-msgstr ""
+msgstr "Nelze otevřít zip soubor exportních šablon."
#: editor/export_template_manager.cpp
msgid "Invalid version.txt format inside templates."
-msgstr ""
+msgstr "Neplatný formát version.txt uvnitř šablon."
#: editor/export_template_manager.cpp
msgid ""
"Invalid version.txt format inside templates. Revision is not a valid "
"identifier."
msgstr ""
+"Neplatný formát version.txt uvnitř šablon. Revize není platný identifikátor."
#: editor/export_template_manager.cpp
msgid "No version.txt found inside templates."
-msgstr ""
+msgstr "Nenalezena version.txt uvnitř šablon."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error creating path for templates:\n"
-msgstr "Chyba při vytváření podpisového objektu."
+msgstr "Chyba při vytváření cesty pro šablony:\n"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
-msgstr ""
+msgstr "Extrakce exportních šablon"
#: editor/export_template_manager.cpp
msgid "Importing:"
@@ -2430,8 +2478,9 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
-msgstr ""
+#, fuzzy
+msgid "Request Failed."
+msgstr "Testované"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -2483,7 +2532,7 @@ msgstr "Připojit.."
#: editor/export_template_manager.cpp
#, fuzzy
-msgid "Can't Conect"
+msgid "Can't Connect"
msgstr "Připojit.."
#: editor/export_template_manager.cpp
@@ -2538,9 +2587,8 @@ msgid "Export Template Manager"
msgstr ""
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download Templates"
-msgstr "Odstranit výběr"
+msgstr "Stáhnout šablony"
#: editor/export_template_manager.cpp
msgid "Select mirror from list: "
@@ -2583,6 +2631,11 @@ msgstr "Chyba pÅ™i naÄítání:"
#: editor/filesystem_dock.cpp
#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Chyba pÅ™i naÄítání:"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
msgid "Unable to update dependencies:\n"
msgstr "Scénu se nepodaÅ™ilo naÄíst kvůli chybÄ›jícím závislostem:"
@@ -2617,15 +2670,20 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Přejmenovat proměnnou"
+
+#: editor/filesystem_dock.cpp
+msgid "Duplicating folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
+msgid "Expand all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
@@ -2638,12 +2696,8 @@ msgstr ""
#: editor/filesystem_dock.cpp
#, fuzzy
-msgid "New Folder.."
-msgstr "Vytvořit složku"
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr ""
+msgid "Open Scene(s)"
+msgstr "Otevřít scénu"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2658,6 +2712,11 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Animace: duplikovat klíÄe"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2750,6 +2809,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3322,6 +3389,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Všechny"
@@ -3363,6 +3431,27 @@ msgstr "Testované"
msgid "Assets ZIP File"
msgstr "ZIP soubor asetů"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3503,7 +3592,6 @@ msgid "Toggles snapping"
msgstr "Přepnout breakpoint"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3684,16 +3772,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3891,6 +3969,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3931,6 +4025,20 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Soubor:"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Soubor:"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4107,10 +4215,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4128,15 +4232,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4198,10 +4302,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4489,11 +4589,13 @@ msgstr "Řadit:"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4509,7 +4611,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4522,6 +4624,11 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Zkopírovat uzly"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4713,14 +4820,10 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
+msgid "Fold/Unfold Line"
msgstr "Běž na řádek"
#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
msgstr ""
@@ -4767,12 +4870,11 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
msgid "Convert To Uppercase"
-msgstr ""
+msgstr "Konvertovat na velká písmena"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Convert To Lowercase"
-msgstr "Připojit k uzlu:"
+msgstr "Konvertovat na malá písmena"
#: editor/plugins/script_text_editor.cpp
msgid "Find Previous"
@@ -5048,6 +5150,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5157,6 +5267,19 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Vybrat vše"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5231,10 +5354,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5276,6 +5395,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5663,6 +5786,11 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "Soubor:"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5674,6 +5802,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Zrušit"
+
#: editor/project_export.cpp
#, fuzzy
msgid "Runnable"
@@ -5691,7 +5823,7 @@ msgstr "Odstranit vybrané soubory?"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing/corrupted: "
-msgstr ""
+msgstr "Exportní šablony pro tuto platformu chybí nebo jsou poškozené: "
#: editor/project_export.cpp
msgid "Presets"
@@ -5763,11 +5895,11 @@ msgstr ""
#: editor/project_export.cpp
msgid "Export templates for this platform are missing:"
-msgstr ""
+msgstr "Exportní šablony pro tuto platformu chybí:"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing/corrupted:"
-msgstr ""
+msgstr "Exportní šablony pro tuto platformu chybí nebo jsou poškozené:"
#: editor/project_export.cpp
msgid "Export With Debug"
@@ -5797,10 +5929,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -5918,7 +6046,7 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Project List"
-msgstr ""
+msgstr "Seznam projektů"
#: editor/project_manager.cpp
msgid "Scan"
@@ -5933,9 +6061,8 @@ msgid "New Project"
msgstr ""
#: editor/project_manager.cpp
-#, fuzzy
msgid "Templates"
-msgstr "Odstranit výběr"
+msgstr "Å ablony"
#: editor/project_manager.cpp
msgid "Exit"
@@ -6062,8 +6189,9 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr ""
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Změnit měřítko výběru"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6133,6 +6261,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6313,6 +6445,10 @@ msgid "New Script"
msgstr ""
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6321,9 +6457,8 @@ msgid "Show in File System"
msgstr ""
#: editor/property_editor.cpp
-#, fuzzy
msgid "Convert To %s"
-msgstr "Připojit k uzlu:"
+msgstr "Konvertovat na %s"
#: editor/property_editor.cpp
msgid "Error loading file: Not a resource!"
@@ -6346,6 +6481,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6354,10 +6493,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
#, fuzzy
msgid "Select Property"
@@ -6570,9 +6705,8 @@ msgid "Copy Node Path"
msgstr "Zkopírovat uzly"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Delete (No Confirm)"
-msgstr "PotvrÄte prosím..."
+msgstr "Odstranit (bez potvrzení)"
#: editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
@@ -6927,6 +7061,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6975,15 +7113,52 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Odstranit signál"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -6995,7 +7170,7 @@ msgstr ""
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
msgstr ""
-"Neplatný typ argumentu funkce convert(), použijte některou z konstant TYPE_*"
+"Neplatný typ argumentu funkce convert(), použijte některou z konstant TYPE_*."
#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -7699,6 +7874,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7735,10 +7926,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7802,16 +7989,12 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Zrušit"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Pozor!"
#: scene/gui/dialogs.cpp
msgid "Please Confirm..."
-msgstr "PotvrÄte prosím..."
+msgstr "PotvrÄte prosím.."
#: scene/gui/file_dialog.cpp
#, fuzzy
@@ -7837,13 +8020,15 @@ msgstr ""
#: scene/gui/tree.cpp
msgid "(Other)"
-msgstr ""
+msgstr "(Ostatní)"
#: scene/main/scene_tree.cpp
msgid ""
"Default Environment as specified in Project Setings (Rendering -> Viewport -"
"> Default Environment) could not be loaded."
msgstr ""
+"Výchozí prostředí specifikované v nastavení projektu (Vykreslování -> "
+"Zobrazovací výřez -> Výchozí prostÅ™edí) se nepodaÅ™ilo naÄíst."
#: scene/main/viewport.cpp
msgid ""
@@ -7873,6 +8058,12 @@ msgstr "Chyba nahrávání fontu."
msgid "Invalid font size."
msgstr "Neplatná velikost fontu."
+#~ msgid "Create Subscription"
+#~ msgstr "Vytvořit odběr"
+
+#~ msgid "List:"
+#~ msgstr "Seznam:"
+
#, fuzzy
#~ msgid ""
#~ "\n"
@@ -7928,10 +8119,6 @@ msgstr "Neplatná velikost fontu."
#~ msgid "Invalid font custom source."
#~ msgstr "Nevalidní písmo z vlastního zdroje."
-#, fuzzy
-#~ msgid "Tiles"
-#~ msgstr "Soubor:"
-
#~ msgid "Ctrl+"
#~ msgstr "Ctrl+"
diff --git a/editor/translations/da.po b/editor/translations/da.po
index c784df0e58..66434011a7 100644
--- a/editor/translations/da.po
+++ b/editor/translations/da.po
@@ -10,7 +10,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-29 08:12+0000\n"
+"PO-Revision-Date: 2017-12-20 15:42+0000\n"
"Last-Translator: Kim Nielsen <kimmowich@stofanet.dk>\n"
"Language-Team: Danish <https://hosted.weblate.org/projects/godot-engine/"
"godot/da/>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.18-dev\n"
+"X-Generator: Weblate 2.18\n"
#: editor/animation_editor.cpp
msgid "Disabled"
@@ -29,8 +29,9 @@ msgid "All Selection"
msgstr "All selection"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Flyt Add Key"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Anim Skift Værdi"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -38,11 +39,12 @@ msgstr "Anim Skift Overgang"
#: editor/animation_editor.cpp
msgid "Anim Change Transform"
-msgstr "Anim Skift transformering"
+msgstr "Anim Skift Transformering"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
-msgstr "Anim Skift værdi"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
+msgstr "Anim Skift Værdi"
#: editor/animation_editor.cpp
msgid "Anim Change Call"
@@ -50,60 +52,60 @@ msgstr "Anim Skift Call"
#: editor/animation_editor.cpp
msgid "Anim Add Track"
-msgstr "Anim tilføj spor"
+msgstr "Anim Tilføj Spor"
#: editor/animation_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr "Anim Dubliker Keys"
+msgstr "Anim Dublikér Nøgle"
#: editor/animation_editor.cpp
msgid "Move Anim Track Up"
-msgstr "Flyt Anim spor op"
+msgstr "Flyt Anim Spor Op"
#: editor/animation_editor.cpp
msgid "Move Anim Track Down"
-msgstr "Flyt Anim spor ned"
+msgstr "Flyt Anim Spor Ned"
#: editor/animation_editor.cpp
msgid "Remove Anim Track"
-msgstr "Fjern Anim spor"
+msgstr "Fjern Anim Spor"
#: editor/animation_editor.cpp
msgid "Set Transitions to:"
-msgstr "Sæt overgange til:"
+msgstr "Sæt Overgange til:"
#: editor/animation_editor.cpp
msgid "Anim Track Rename"
-msgstr "Anim spor Omdøb"
+msgstr "Anim Omdøb Spor"
#: editor/animation_editor.cpp
msgid "Anim Track Change Interpolation"
-msgstr "Anim spor Skift Interpolation"
+msgstr "Anim Skift Spor Interpolation"
#: editor/animation_editor.cpp
msgid "Anim Track Change Value Mode"
-msgstr "Anim spor Skift værdi Mode"
+msgstr "Anim Skift Sport Værdi Mode"
#: editor/animation_editor.cpp
msgid "Anim Track Change Wrap Mode"
-msgstr "Anim Spor Skift Wrap Mode"
+msgstr "Anim Skift Spor Wrap Mode"
#: editor/animation_editor.cpp
msgid "Edit Node Curve"
-msgstr "Redigere Node kurve"
+msgstr "Rediger Node Kurve"
#: editor/animation_editor.cpp
msgid "Edit Selection Curve"
-msgstr "Rediger udvalg kurve"
+msgstr "Rediger Valgte Kurve"
#: editor/animation_editor.cpp
msgid "Anim Delete Keys"
-msgstr "Anim slet Keys"
+msgstr "Anim Slet Nøgler"
#: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Duplicate Selection"
-msgstr "Dupliker valgt"
+msgstr "Duplikér Valgte"
#: editor/animation_editor.cpp
msgid "Duplicate Transposed"
@@ -111,7 +113,7 @@ msgstr "Duplicate transposed"
#: editor/animation_editor.cpp
msgid "Remove Selection"
-msgstr "Fjern markering"
+msgstr "Fjern Markering"
#: editor/animation_editor.cpp
msgid "Continuous"
@@ -127,27 +129,27 @@ msgstr "Udløser"
#: editor/animation_editor.cpp
msgid "Anim Add Key"
-msgstr "Anim Tilføj Key"
+msgstr "Anim Tilføj Nøgle"
#: editor/animation_editor.cpp
msgid "Anim Move Keys"
-msgstr "Anim Flyt Keys"
+msgstr "Anim Flyt Nøgle"
#: editor/animation_editor.cpp
msgid "Scale Selection"
-msgstr "Skalér markerede"
+msgstr "Skalér Valgte"
#: editor/animation_editor.cpp
msgid "Scale From Cursor"
-msgstr "Skaler fra Cursor"
+msgstr "Skaler Fra Cursor"
#: editor/animation_editor.cpp
msgid "Goto Next Step"
-msgstr "Goto næste skridt"
+msgstr "Gå Til Næste Trin"
#: editor/animation_editor.cpp
msgid "Goto Prev Step"
-msgstr "Goto forrige trin"
+msgstr "GÃ¥ Til Forrige Trin"
#: editor/animation_editor.cpp editor/plugins/curve_editor_plugin.cpp
#: editor/property_editor.cpp
@@ -184,15 +186,15 @@ msgstr "Optimer Animation"
#: editor/animation_editor.cpp
msgid "Clean-Up Animation"
-msgstr "Clean-up Animation"
+msgstr "Clean-Up Animation"
#: editor/animation_editor.cpp
msgid "Create NEW track for %s and insert key?"
-msgstr "Oprette nye spor til %s og indsætte key?"
+msgstr "Opret NYT spor til %s og indsæt nøgle?"
#: editor/animation_editor.cpp
msgid "Create %d NEW tracks and insert keys?"
-msgstr "Oprette %d nye numre og indsætte nøgler?"
+msgstr "Opret %d NYE spor og indsæt nøgler?"
#: editor/animation_editor.cpp editor/create_dialog.cpp
#: editor/editor_audio_buses.cpp editor/plugins/abstract_polygon_2d_editor.cpp
@@ -205,27 +207,27 @@ msgstr "Opret"
#: editor/animation_editor.cpp
msgid "Anim Create & Insert"
-msgstr "Anim opret & indsæt"
+msgstr "Anim Opret & Indsæt"
#: editor/animation_editor.cpp
msgid "Anim Insert Track & Key"
-msgstr "Anim Indsæt spor & key"
+msgstr "Anim Indsæt Spor & Nøgle"
#: editor/animation_editor.cpp
msgid "Anim Insert Key"
-msgstr "Anim Indsæt key"
+msgstr "Anim Indsæt Nøgle"
#: editor/animation_editor.cpp
msgid "Change Anim Len"
-msgstr "Ændre Anim Len"
+msgstr "Ændre Anim Længde"
#: editor/animation_editor.cpp
msgid "Change Anim Loop"
-msgstr "Ændre Anim løkke"
+msgstr "Ændre Anim Løkke"
#: editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
-msgstr "Anim opret indtastet Value key"
+msgstr "Anim Opret Indtastet Værdi Nøgle"
#: editor/animation_editor.cpp
msgid "Anim Insert"
@@ -233,7 +235,7 @@ msgstr "Anim Indsæt"
#: editor/animation_editor.cpp
msgid "Anim Scale Keys"
-msgstr "Anim Skaler keys"
+msgstr "Anim Skaler Nøgler"
#: editor/animation_editor.cpp
msgid "Anim Add Call Track"
@@ -253,7 +255,7 @@ msgstr "Animations Længde (i sekunder)."
#: editor/animation_editor.cpp
msgid "Step (s):"
-msgstr "Trin (s):"
+msgstr "Trin:"
#: editor/animation_editor.cpp
msgid "Cursor step snap (in seconds)."
@@ -261,11 +263,11 @@ msgstr "Cursor trin snap (i sekunder)."
#: editor/animation_editor.cpp
msgid "Enable/Disable looping in animation."
-msgstr "Aktiver/Deaktiver løkker i animation."
+msgstr "Aktiver/Deaktivér løkker i animation."
#: editor/animation_editor.cpp
msgid "Add new tracks."
-msgstr "Tilføje nye tracks."
+msgstr "Tilføje nye spor."
#: editor/animation_editor.cpp
msgid "Move current track up."
@@ -277,7 +279,7 @@ msgstr "Flyt aktuelle spor ned."
#: editor/animation_editor.cpp
msgid "Remove selected track."
-msgstr "Fjern markerede spor."
+msgstr "Fjern valgte spor."
#: editor/animation_editor.cpp
msgid "Track tools"
@@ -285,7 +287,7 @@ msgstr "Spor værktøjer"
#: editor/animation_editor.cpp
msgid "Enable editing of individual keys by clicking them."
-msgstr "Aktivere redigering af individuelle keys ved at klikke på dem."
+msgstr "Aktivere redigering af individuelle nøgler ved at klikke på dem."
#: editor/animation_editor.cpp
msgid "Anim. Optimizer"
@@ -293,7 +295,7 @@ msgstr "Anim. optimizer"
#: editor/animation_editor.cpp
msgid "Max. Linear Error:"
-msgstr "Max. Lineær fejl:"
+msgstr "Max. Lineær Fejl:"
#: editor/animation_editor.cpp
msgid "Max. Angular Error:"
@@ -305,15 +307,16 @@ msgstr "Max optimerbar vinkel:"
#: editor/animation_editor.cpp
msgid "Optimize"
-msgstr "Optimer"
+msgstr "Optimér"
#: editor/animation_editor.cpp
msgid "Select an AnimationPlayer from the Scene Tree to edit animations."
-msgstr "Vælg en AnimationPlayer fra Scene Tree for at redigere animationer."
+msgstr ""
+"Vælg en Animations afspiller fra Scene Tree for at redigere i animationer."
#: editor/animation_editor.cpp
msgid "Key"
-msgstr "Key/Nøgle"
+msgstr "Nøgle"
#: editor/animation_editor.cpp
msgid "Transition"
@@ -321,7 +324,7 @@ msgstr "Overgang"
#: editor/animation_editor.cpp
msgid "Scale Ratio:"
-msgstr "Skala forholdet:"
+msgstr "Skalaforhold:"
#: editor/animation_editor.cpp
msgid "Call Functions in Which Node?"
@@ -329,11 +332,11 @@ msgstr "Kald funktioner i hvilken Node?"
#: editor/animation_editor.cpp
msgid "Remove invalid keys"
-msgstr "Fjerne ugyldige keys"
+msgstr "Fjern ugyldige nøgler"
#: editor/animation_editor.cpp
msgid "Remove unresolved and empty tracks"
-msgstr "Fjerne uløste og tomme spor"
+msgstr "Fjern uafklarede og tomme spor"
#: editor/animation_editor.cpp
msgid "Clean-up all animations"
@@ -353,11 +356,11 @@ msgstr "Ændre størrelsen på Array"
#: editor/array_property_edit.cpp
msgid "Change Array Value Type"
-msgstr "Skift Array værditype"
+msgstr "Skift Array Værditype"
#: editor/array_property_edit.cpp
msgid "Change Array Value"
-msgstr "Ændre Array-værdi"
+msgstr "Ændre Array-Værdi"
#: editor/code_editor.cpp
msgid "Go to Line"
@@ -381,7 +384,7 @@ msgstr "Erstat"
#: editor/code_editor.cpp
msgid "Replace All"
-msgstr "Erstat alle"
+msgstr "Erstat Alle"
#: editor/code_editor.cpp
msgid "Match Case"
@@ -389,7 +392,7 @@ msgstr "Match stor/lille"
#: editor/code_editor.cpp
msgid "Whole Words"
-msgstr "Hele ord"
+msgstr "Hele Ord"
#: editor/code_editor.cpp
msgid "Selection Only"
@@ -417,7 +420,7 @@ msgstr "Ikke fundet!"
#: editor/code_editor.cpp
msgid "Replace By"
-msgstr "Erstattes af"
+msgstr "Erstattes Af"
#: editor/code_editor.cpp
msgid "Case Sensitive"
@@ -425,23 +428,23 @@ msgstr "Forskel på små og store bogstaver"
#: editor/code_editor.cpp
msgid "Backwards"
-msgstr "Baglæns"
+msgstr "Tilbage"
#: editor/code_editor.cpp
msgid "Prompt On Replace"
-msgstr "Spørg ved Erstat"
+msgstr "Spørg Ved Erstatning"
#: editor/code_editor.cpp
msgid "Skip"
-msgstr "Spring over"
+msgstr "Spring Over"
#: editor/code_editor.cpp
msgid "Zoom In"
-msgstr "Zoom ind"
+msgstr "Zoom Ind"
#: editor/code_editor.cpp
msgid "Zoom Out"
-msgstr "Zoom ud"
+msgstr "Zoom Ud"
#: editor/code_editor.cpp
msgid "Reset Zoom"
@@ -469,7 +472,7 @@ msgstr ""
#: editor/connections_dialog.cpp
msgid "Connect To Node:"
-msgstr "Opret forbindelse til Node:"
+msgstr "Forbind Til Node:"
#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp
#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
@@ -486,11 +489,11 @@ msgstr "Fjern"
#: editor/connections_dialog.cpp
msgid "Add Extra Call Argument:"
-msgstr "Tilføje ekstra Call Argument:"
+msgstr "Tilføj Ekstra Call Argument:"
#: editor/connections_dialog.cpp
msgid "Extra Call Arguments:"
-msgstr "Ekstra call argumenter:"
+msgstr "Ekstra Call Argumenter:"
#: editor/connections_dialog.cpp
msgid "Path to Node:"
@@ -498,7 +501,7 @@ msgstr "Sti til Node:"
#: editor/connections_dialog.cpp
msgid "Make Function"
-msgstr "Lav funktion"
+msgstr "Lav Funktion"
#: editor/connections_dialog.cpp
msgid "Deferred"
@@ -524,19 +527,20 @@ msgstr "Luk"
#: editor/connections_dialog.cpp
msgid "Connect"
-msgstr "Tilslut"
+msgstr "Forbind"
#: editor/connections_dialog.cpp
msgid "Connect '%s' to '%s'"
-msgstr "Tilslut '%s' til '%s'"
+msgstr "Forbind '%s' til '%s'"
#: editor/connections_dialog.cpp
msgid "Connecting Signal:"
-msgstr "Forbindelses signal:"
+msgstr "Forbindelses Signal:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Opret abonnement"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Forbind '%s' til '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -552,8 +556,9 @@ msgid "Signals"
msgstr "Signaler"
#: editor/create_dialog.cpp
-msgid "Create New"
-msgstr "Opret en ny"
+#, fuzzy
+msgid "Create New %s"
+msgstr "Opret Nyt"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -567,7 +572,7 @@ msgstr "Seneste:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Søgning:"
@@ -585,7 +590,7 @@ msgstr "Beskrivelse:"
#: editor/dependency_editor.cpp
msgid "Search Replacement For:"
-msgstr "Søg erstatning For:"
+msgstr "Søg Erstatning For:"
#: editor/dependency_editor.cpp
msgid "Dependencies For:"
@@ -597,7 +602,7 @@ msgid ""
"Changes will not take effect unless reloaded."
msgstr ""
"Scene '%s' er i øjeblikket ved at blive redigeret.\n"
-"Ændringer træder ikke i kraft, medmindre reloaded."
+"Ændringerne træder ikke i kraft, medmindre den genindlæses."
#: editor/dependency_editor.cpp
msgid ""
@@ -605,9 +610,10 @@ msgid ""
"Changes will take effect when reloaded."
msgstr ""
"Ressource '%s' er i brug.\n"
-"Ændringer træder i kraft når genindlæses."
+"Ændringerne træder i kraft når den genindlæses."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Afhængigheder"
@@ -646,11 +652,11 @@ msgstr "Ã…ben"
#: editor/dependency_editor.cpp
msgid "Owners Of:"
-msgstr "Ejer af:"
+msgstr "Ejere af:"
#: editor/dependency_editor.cpp
msgid "Remove selected files from the project? (no undo)"
-msgstr "Fjern de valgte filer fra projekt? (ej fortrydes)"
+msgstr "Fjern de valgte filer fra projektet? (ej fortrydes)"
#: editor/dependency_editor.cpp
msgid ""
@@ -667,7 +673,7 @@ msgstr "Kan ikke fjerne:\n"
#: editor/dependency_editor.cpp
msgid "Error loading:"
-msgstr "Load fejl:"
+msgstr "Fejl under indlæsning:"
#: editor/dependency_editor.cpp
msgid "Scene failed to load due to missing dependencies:"
@@ -675,7 +681,7 @@ msgstr "Indlæs af Scene fejler, fordi den er afhængig af noget der mangler:"
#: editor/dependency_editor.cpp editor/editor_node.cpp
msgid "Open Anyway"
-msgstr "Ã…ben alligevel"
+msgstr "Ã…ben Alligevel"
#: editor/dependency_editor.cpp
msgid "Which action should be taken?"
@@ -683,11 +689,11 @@ msgstr "Hvilken handling skal udføres?"
#: editor/dependency_editor.cpp
msgid "Fix Dependencies"
-msgstr "Fix Afhængigheder"
+msgstr "Fiks Afhængigheder"
#: editor/dependency_editor.cpp
msgid "Errors loading!"
-msgstr "Fejl ved load!"
+msgstr "Fejl ved indlæsning!"
#: editor/dependency_editor.cpp
msgid "Permanently delete %d item(s)? (No undo!)"
@@ -699,7 +705,7 @@ msgstr "Ejer"
#: editor/dependency_editor.cpp
msgid "Resources Without Explicit Ownership:"
-msgstr "Ressourcer uden klart ejerskab:"
+msgstr "Ressourcer Uden Klart Ejerskab:"
#: editor/dependency_editor.cpp editor/editor_node.cpp
msgid "Orphan Resource Explorer"
@@ -710,15 +716,16 @@ msgid "Delete selected files?"
msgstr "Slet markerede filer?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Slet"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Key"
-msgstr "Ændre ordbogs nøgle"
+msgstr "Ændre Dictionary Nøgle"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Value"
@@ -758,27 +765,27 @@ msgstr "Forfattere"
#: editor/editor_about.cpp
msgid "Platinum Sponsors"
-msgstr "Platin sponsorer"
+msgstr "Platin Sponsorer"
#: editor/editor_about.cpp
msgid "Gold Sponsors"
-msgstr "Guld sponsorer"
+msgstr "Guld Sponsorer"
#: editor/editor_about.cpp
msgid "Mini Sponsors"
-msgstr "Mini sponsorer"
+msgstr "Mini Sponsorer"
#: editor/editor_about.cpp
msgid "Gold Donors"
-msgstr "Guld donorer"
+msgstr "Guld Donorer"
#: editor/editor_about.cpp
msgid "Silver Donors"
-msgstr "Sølv donorer"
+msgstr "Sølv Donorer"
#: editor/editor_about.cpp
msgid "Bronze Donors"
-msgstr "Bronze donorer"
+msgstr "Bronze Donorer"
#: editor/editor_about.cpp
msgid "Donors"
@@ -790,7 +797,7 @@ msgstr "Licens"
#: editor/editor_about.cpp
msgid "Thirdparty License"
-msgstr "Tredjeparts licens"
+msgstr "Tredjeparts Licens"
#: editor/editor_about.cpp
msgid ""
@@ -799,10 +806,10 @@ msgid ""
"is an exhaustive list of all such thirdparty components with their "
"respective copyright statements and license terms."
msgstr ""
-"Godot Engine er afhængig af en række tredjeparts gratis og open source-"
-"biblioteker, som alle er kompatible med vilkårene i MIT-licensen. Følgende "
-"er en udtømmende liste over alle sådanne tredjepartskomponenter med deres "
-"respektive ophavsretlige udsagn og licensbetingelser."
+"Godot Engine er afhængig af en række tredjeparts biblioteker som er gratis "
+"og open source. Alle bibliotekerne er kompatible med vilkårene i MIT-"
+"licensen. Følgende er en udtømmende liste over alle sådanne tredjeparts "
+"komponenter med deres respektive ophavsretlige udsagn og licensbetingelser."
#: editor/editor_about.cpp
msgid "All Components"
@@ -826,7 +833,7 @@ msgstr "Udpakker Aktiver"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Package Installed Successfully!"
-msgstr "Pakke installeret med succes!"
+msgstr "Pakke Installeret med Succes!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -836,11 +843,12 @@ msgstr "Succes!"
#: editor/editor_asset_installer.cpp
#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp
msgid "Install"
-msgstr "Installer"
+msgstr "Installér"
#: editor/editor_asset_installer.cpp
+#, fuzzy
msgid "Package Installer"
-msgstr "Pakke Installation"
+msgstr "Pakke Installatør"
#: editor/editor_audio_buses.cpp
msgid "Speakers"
@@ -848,23 +856,28 @@ msgstr "Højtalere"
#: editor/editor_audio_buses.cpp
msgid "Add Effect"
-msgstr "Tilføj effekt"
+msgstr "Tilføj Effekt"
#: editor/editor_audio_buses.cpp
msgid "Rename Audio Bus"
msgstr "Omdøb Audio Bus"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Skifter Audio Bus Solo"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
-msgstr "Skift Audio Bus Solo"
+msgstr "Skifter Audio Bus Solo"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Mute"
-msgstr "Skift Audio Bus Mute"
+msgstr "Skifter Audio Bus Mute"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Bypass Effects"
-msgstr "Skift Audio Bus Bypass Effekter"
+msgstr "Skifter Audio Bus Bypass Effekter"
#: editor/editor_audio_buses.cpp
msgid "Select Audio Bus Send"
@@ -884,7 +897,7 @@ msgstr "Slet Bus Effekt"
#: editor/editor_audio_buses.cpp
msgid "Audio Bus, Drag and Drop to rearrange."
-msgstr "Audio Bus, Træk og slip for at omrokerer."
+msgstr "Audio Bus, Træk og Slip for at omarrangere."
#: editor/editor_audio_buses.cpp
msgid "Solo"
@@ -896,14 +909,14 @@ msgstr "Mute"
#: editor/editor_audio_buses.cpp
msgid "Bypass"
-msgstr "Skip"
+msgstr "Spring Over"
#: editor/editor_audio_buses.cpp
msgid "Bus options"
msgstr "Bus muligheder"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Duplikere"
@@ -913,7 +926,11 @@ msgstr "Nulstil Volume"
#: editor/editor_audio_buses.cpp
msgid "Delete Effect"
-msgstr "Slet Effekt"
+msgstr "Slet Effect"
+
+#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
@@ -1011,7 +1028,7 @@ msgstr ""
msgid "Invalid name. Must not collide with an existing buit-in type name."
msgstr ""
"Ugyldigt navn. Det må ikke være i konflikt med eksisterende built-in type "
-"navne."
+"navn."
#: editor/editor_autoload_settings.cpp
msgid "Invalid name. Must not collide with an existing global constant name."
@@ -1070,9 +1087,10 @@ msgstr "Sti:"
#: editor/editor_autoload_settings.cpp
msgid "Node Name:"
-msgstr "Node navn:"
+msgstr "Node Navn:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Navn"
@@ -1080,10 +1098,6 @@ msgstr "Navn"
msgid "Singleton"
msgstr "Singleton"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Liste:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "Opdatere Scene"
@@ -1096,6 +1110,14 @@ msgstr "Gemmer lokale ændringer.."
msgid "Updating scene.."
msgstr "Opdatere scene.."
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "Vælg en basis mappe først"
@@ -1107,7 +1129,7 @@ msgstr "Vælg en Mappe"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
msgid "Create Folder"
-msgstr "Opret mappe"
+msgstr "Opret Mappe"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
@@ -1127,7 +1149,7 @@ msgstr "Vælg"
#: editor/editor_export.cpp
msgid "Storing File:"
-msgstr "Lagrings fil:"
+msgstr "Lagrings Fil:"
#: editor/editor_export.cpp
msgid "Packing"
@@ -1139,13 +1161,29 @@ msgstr "Skabelon fil ikke fundet:\n"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File Exists, Overwrite?"
-msgstr "Filen findes, overskrives?"
+msgstr "Filen Eksisterer, Overskrives?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
#, fuzzy
msgid "Select Current Folder"
msgstr "Opret mappe"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Kopier Sti"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Vis I Fil Manager"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Opret mappe.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Opdater"
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr "Alle Genkendte"
@@ -1160,15 +1198,15 @@ msgstr "Ã…ben en Fil"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open File(s)"
-msgstr "Ã…ben fil(er)"
+msgstr "Ã…ben Fil(er)"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a Directory"
-msgstr "Ã…bn en mappe"
+msgstr "Ã…bn en Mappe"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a File or Directory"
-msgstr "Ã…bne en fil eller mappe"
+msgstr "Ã…ben en Fil eller Mappe"
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
@@ -1178,7 +1216,7 @@ msgstr "Gem"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Save a File"
-msgstr "Gem en fil"
+msgstr "Gem en Fil"
#: editor/editor_file_dialog.cpp
msgid "Go Back"
@@ -1193,20 +1231,16 @@ msgid "Go Up"
msgstr "GÃ¥ Op"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Opdater"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
-msgstr "Skift Skjulte Filer"
+msgstr "Skifter Skjulte Filer"
#: editor/editor_file_dialog.cpp
msgid "Toggle Favorite"
-msgstr "Skift Favorit"
+msgstr "Skifter Favorit"
#: editor/editor_file_dialog.cpp
msgid "Toggle Mode"
-msgstr "Skift Modus"
+msgstr "Skifter Modus"
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
@@ -1226,7 +1260,7 @@ msgstr "GÃ¥ til overliggende mappe"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Directories & Files:"
-msgstr "Mapper & filer:"
+msgstr "Mapper & Filer:"
#: editor/editor_file_dialog.cpp
msgid "Preview:"
@@ -1238,8 +1272,9 @@ msgid "File:"
msgstr "Fil:"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+#, fuzzy
msgid "Must use a valid extension."
-msgstr "Skal bruge en gyldig udvidelse."
+msgstr "Skal bruge en gyldig extension."
#: editor/editor_file_system.cpp
msgid "ScanSources"
@@ -1252,7 +1287,7 @@ msgstr "(Gen)Importér Aktiver"
#: editor/editor_help.cpp editor/editor_node.cpp
#: editor/plugins/script_editor_plugin.cpp
msgid "Search Help"
-msgstr "Søg Hjælp"
+msgstr "Søg i Hjælp"
#: editor/editor_help.cpp
msgid "Class List:"
@@ -1341,7 +1376,7 @@ msgstr "Egenskaber"
#: editor/editor_help.cpp
msgid "Property Description:"
-msgstr "Property beskrivelse:"
+msgstr "Beskrivelse af Egenskaber:"
#: editor/editor_help.cpp
msgid ""
@@ -1349,7 +1384,7 @@ msgid ""
"[color=$color][url=$url]contributing one[/url][/color]!"
msgstr ""
"Der er i øjeblikket ingen beskrivelse af denne egenskab. Hjælp os venligst "
-"med et [color=$color][url=$url]bidrag[/url][/color]!"
+"ved at give os dit [color=$color][url=$url]bidrag[/url][/color]!"
#: editor/editor_help.cpp
#, fuzzy
@@ -1379,13 +1414,14 @@ msgstr "Output:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "Clear"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Error saving resource!"
-msgstr "Fejl ved at gemme ressource!"
+msgstr "Fejl, kan ikke gemme ressource!"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Save Resource As.."
@@ -1404,11 +1440,11 @@ msgstr "Kan ikke åbne fil til skrivning:"
#: editor/editor_node.cpp
msgid "Requested file format unknown:"
-msgstr "Ønskede filformat er ukendt:"
+msgstr "Det ønskede filformat er ukendt:"
#: editor/editor_node.cpp
msgid "Error while saving."
-msgstr "Fejl når der gemmes."
+msgstr "Fejl, under forsøg på at gemme."
#: editor/editor_node.cpp
msgid "Can't open '%s'."
@@ -1429,7 +1465,7 @@ msgstr "Mangler '%s' eller det den afhænger af."
#: editor/editor_node.cpp
msgid "Error while loading '%s'."
-msgstr "Fejl ved load af '%s'."
+msgstr "Fejl under indlæsning af '%s'."
#: editor/editor_node.cpp
msgid "Saving Scene"
@@ -1452,7 +1488,7 @@ msgstr "Denne handling kan ikke foretages uden tree root"
msgid ""
"Couldn't save scene. Likely dependencies (instances) couldn't be satisfied."
msgstr ""
-"Kunne ikke gemme scene. Måske fordi visse afhængigheder (forekomster) ikke "
+"Kunne ikke gemme scene. Der er nogle afhængigheder (forekomster) some ikke "
"kunne opfyldes."
#: editor/editor_node.cpp
@@ -1479,7 +1515,7 @@ msgstr "Fejl, kan ikke gemme TileSet!"
#: editor/editor_node.cpp
msgid "Error trying to save layout!"
-msgstr "Fejl, forsøger at gemme layout!"
+msgstr "Fejl, under forsøg på at gemme layout!"
#: editor/editor_node.cpp
msgid "Default editor layout overridden."
@@ -1491,7 +1527,7 @@ msgstr "Layout navn er ikke fundet!"
#: editor/editor_node.cpp
msgid "Restored default layout to base settings."
-msgstr "Gendannet standardlayout til basisindstillinger."
+msgstr "Gendannet standardlayout til grundindstillinger."
#: editor/editor_node.cpp
msgid ""
@@ -1499,17 +1535,17 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
-"Denne ressource tilhører en scene der var importeret, så den kan ikke "
+"Denne ressource tilhører en scene der var importeret, derfor kan den ikke "
"redigeres.\n"
-"Læs venligst dokumentationen, for bedre at forstå arbejdsgangen der er "
-"relevant ved importering af scener."
+"Læs venligst den relevante dokumentation for importering af scener, for "
+"bedre at forstå arbejdsgangen."
#: editor/editor_node.cpp
msgid ""
"This resource belongs to a scene that was instanced or inherited.\n"
"Changes to it will not be kept when saving the current scene."
msgstr ""
-"Denne ressource tilhører en scene, der blev instanseret eller arvet.\n"
+"Denne ressource tilhører en scene, der blev instanced eller arvet.\n"
"Ændringer vil ikke blive gemt, når denne scene gemmes."
#: editor/editor_node.cpp
@@ -1527,10 +1563,10 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
-"Denne scene blev importeret, så ændringer i den vil ikke blive husket.\n"
-"Instancing eller inheriting vil gøre det muligt at foretage ændringer.\n"
-"Læs venligst den dokumentation der er relevant for import af scener, for "
-"bedre at forstå denne arbejdsgang."
+"Denne scene blev importeret, så alle ændringer vil ikke blive husket.\n"
+"Instancing eller nedarving vil gøre det muligt at foretage ændringer.\n"
+"Læs venligst den relevante dokumentation for import af scener, for bedre at "
+"forstå denne arbejdsgang."
#: editor/editor_node.cpp
msgid ""
@@ -1544,11 +1580,11 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Expand all properties"
-msgstr ""
+msgstr "Udvid alle egenskaber"
#: editor/editor_node.cpp
msgid "Collapse all properties"
-msgstr ""
+msgstr "Klap alle egenskaber sammen"
#: editor/editor_node.cpp
msgid "Copy Params"
@@ -1614,7 +1650,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Current scene was never saved, please save it prior to running."
-msgstr "Den nuværende scene er aldrig gemt, venligst gem før du kører."
+msgstr "Den nuværende scene er aldrig gemt, venligst gem før du kører den."
#: editor/editor_node.cpp
msgid "Could not start subprocess!"
@@ -1662,7 +1698,7 @@ msgstr "Denne scene er aldrig blevet gemt. Gem før kørsel?"
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "This operation can't be done without a scene."
-msgstr "Denne operation kan ikke udføres uden en scene."
+msgstr "Denne handling kan ikke udføres uden en scene."
#: editor/editor_node.cpp
msgid "Export Mesh Library"
@@ -1670,15 +1706,15 @@ msgstr "Eksporter Maske Bibliotek"
#: editor/editor_node.cpp
msgid "This operation can't be done without a root node."
-msgstr "Denne operation kan ikke udføres uden en rod node."
+msgstr "Denne handing kan ikke udføres uden en rod node."
#: editor/editor_node.cpp
msgid "Export Tile Set"
-msgstr "Eksporter Flise Sæt"
+msgstr "Eksporter Tile Set"
#: editor/editor_node.cpp
msgid "This operation can't be done without a selected node."
-msgstr "Denne operation kan ikke udføres uden en valgt node."
+msgstr "Denne handling kan ikke udføres uden en valgt node."
#: editor/editor_node.cpp
msgid "Current scene not saved. Open anyway?"
@@ -1706,7 +1742,7 @@ msgstr "Afslut"
#: editor/editor_node.cpp
msgid "Exit the editor?"
-msgstr "Forlad editoren?"
+msgstr "Forlad editor?"
#: editor/editor_node.cpp
msgid "Open Project Manager?"
@@ -1718,23 +1754,23 @@ msgstr "Gem & Afslut"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before quitting?"
-msgstr "Gem ændringer i følgende scener før du afslutter?"
+msgstr "Gem ændringer i følgende scene(r) før du afslutter?"
#: editor/editor_node.cpp
msgid "Save changes the following scene(s) before opening Project Manager?"
-msgstr "Gem ændringer følgende scener, før du åbner Projekt Manager?"
+msgstr "Gem ændringer i følgende scene(r), før du åbner Projekt Manager?"
#: editor/editor_node.cpp
msgid ""
"This option is deprecated. Situations where refresh must be forced are now "
"considered a bug. Please report."
msgstr ""
-"Denne mulighed er forældet. Situationer, hvor opdatering skal tvinges, "
-"betragtes nu som en fejl. Rapporter venligst."
+"Denne mulighed er forældet. De situationer hvor man skal fremtvinge en "
+"opdatering, betragtes nu som en fejl. Rapporter venligst."
#: editor/editor_node.cpp
msgid "Pick a Main Scene"
-msgstr "Vælg en Hoved Scene"
+msgstr "Vælg en Main Scene"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
@@ -1748,7 +1784,7 @@ msgstr "Kan ikke finde scriptfelt for addon plugin på: 'res://addons/%s'."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s'."
-msgstr "Kan ikke loade addon script fra stien: '%s'."
+msgstr "Kan ikke indlæse addon script fra stien: '%s'."
#: editor/editor_node.cpp
msgid ""
@@ -1768,7 +1804,7 @@ msgid ""
"To make changes to it, a new inherited scene can be created."
msgstr ""
"Scene '%s' blev automatisk importeret, så den kan ikke ændres.\n"
-"For at lave ændringer til den, kan en ny arvet scene oprettes."
+"For at lave ændringer i den, kan en ny nedarvet scene oprettes."
#: editor/editor_node.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -1782,7 +1818,7 @@ msgid ""
"open the scene, then save it inside the project path."
msgstr ""
"Fejl ved indlæsning af scenen, den skal være indenfor projektstien. Brug "
-"'Import' for at åbne scenen, og gem den så inden for projektstien."
+"'Import' for at åbne scenen og gem den indenfor projektstien."
#: editor/editor_node.cpp
msgid "Scene '%s' has broken dependencies:"
@@ -1790,7 +1826,7 @@ msgstr "Scene '%s' har brudte afhængigheder:"
#: editor/editor_node.cpp
msgid "Clear Recent Scenes"
-msgstr "Fjern Seneste Scener"
+msgstr "Ryd Seneste Scener"
#: editor/editor_node.cpp
msgid "Save Layout"
@@ -1861,15 +1897,16 @@ msgstr "Filtrer filer.."
#: editor/editor_node.cpp
msgid "Operations with scene files."
-msgstr "Operationer med scene filer."
+msgstr "Handlinger med scene filer."
#: editor/editor_node.cpp
msgid "New Scene"
msgstr "Ny Scene"
#: editor/editor_node.cpp
+#, fuzzy
msgid "New Inherited Scene.."
-msgstr "Ny Arved Scene.."
+msgstr "Ny Nedarvet Scene.."
#: editor/editor_node.cpp
msgid "Open Scene.."
@@ -1901,7 +1938,7 @@ msgstr "MaskeBibliotek.."
#: editor/editor_node.cpp
msgid "TileSet.."
-msgstr "FliseSæt.."
+msgstr "TileSet.."
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
@@ -1953,7 +1990,7 @@ msgstr "Debug"
#: editor/editor_node.cpp
msgid "Deploy with Remote Debug"
-msgstr "Deploy med Remote Debug"
+msgstr "Implementere med Remote Debug"
#: editor/editor_node.cpp
msgid ""
@@ -2018,9 +2055,9 @@ msgid ""
"filesystem."
msgstr ""
"Når denne indstilling er tændt, vil eventuelle ændringer til scenen i "
-"editoren blive replikeret i det kørende spil.\n"
-"Når det bruges eksternt på en enhed, er dette mere effektivt med "
-"netværksfilsystem."
+"editoren blive overført til det kørende spil.\n"
+"Ved brug af fjernadgang til en enhed, er det mere effektivt med netværks "
+"filsystem."
#: editor/editor_node.cpp
msgid "Sync Script Changes"
@@ -2053,7 +2090,7 @@ msgstr "Editor Layout"
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr "Skift fuldskærm"
+msgstr "Skifter fuldskærm"
#: editor/editor_node.cpp editor/project_export.cpp
msgid "Manage Export Templates"
@@ -2089,7 +2126,7 @@ msgstr "Om"
#: editor/editor_node.cpp
msgid "Play the project."
-msgstr "Spil projektet."
+msgstr "Spil dit projekt."
#: editor/editor_node.cpp
msgid "Play"
@@ -2125,7 +2162,7 @@ msgstr "Spil tilpasset scene"
#: editor/editor_node.cpp
msgid "Play Custom Scene"
-msgstr "Spil tilpasset scene"
+msgstr "Spil Brugerdefineret Scene"
#: editor/editor_node.cpp
msgid "Spins when the editor window repaints!"
@@ -2133,7 +2170,7 @@ msgstr "Snurrer når editor vinduer gentegnes!"
#: editor/editor_node.cpp
msgid "Update Always"
-msgstr "Opdater Altid"
+msgstr "Altid Opdater"
#: editor/editor_node.cpp
msgid "Update Changes"
@@ -2165,15 +2202,15 @@ msgstr "Gem Som.."
#: editor/editor_node.cpp
msgid "Go to the previous edited object in history."
-msgstr "GÃ¥ til det forrige redigerede objekt i historien."
+msgstr "GÃ¥ til det forrige redigerede objekt i historikken."
#: editor/editor_node.cpp
msgid "Go to the next edited object in history."
-msgstr "Gå til det næste redigerede objekt i historien."
+msgstr "Gå til det næste redigerede objekt i historikken."
#: editor/editor_node.cpp
msgid "History of recently edited objects."
-msgstr "Historie af for nyligt redigerede objekter."
+msgstr "Historik af nyligt redigerede objekter."
#: editor/editor_node.cpp
msgid "Object properties."
@@ -2194,7 +2231,7 @@ msgstr "Node"
#: editor/editor_node.cpp
msgid "FileSystem"
-msgstr "FilSystem"
+msgstr "Fil System"
#: editor/editor_node.cpp
msgid "Output"
@@ -2206,7 +2243,7 @@ msgstr "Gem Ikke"
#: editor/editor_node.cpp
msgid "Import Templates From ZIP File"
-msgstr "Importer Skabeloner Fra ZIP Fil"
+msgstr "Importér Skabeloner Fra ZIP Fil"
#: editor/editor_node.cpp editor/project_export.cpp
msgid "Export Project"
@@ -2339,6 +2376,16 @@ msgstr "Selv"
msgid "Frame #:"
msgstr "Frame #:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Tid:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Kald"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "Vælg enhed fra listen"
@@ -2482,13 +2529,14 @@ msgstr "Ingen reaktion."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
-msgstr ""
+#, fuzzy
+msgid "Request Failed."
+msgstr "Foresp. Fejlede."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Redirect Loop."
-msgstr ""
+msgstr "Omdiriger Løkke."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -2532,7 +2580,8 @@ msgid "Connecting.."
msgstr "Forbinder.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "Ingen forbindelse"
#: editor/export_template_manager.cpp
@@ -2578,7 +2627,7 @@ msgstr "Vælg template fil"
#: editor/export_template_manager.cpp
msgid "Export Template Manager"
-msgstr ""
+msgstr "Eksporter Skabelon Manager"
#: editor/export_template_manager.cpp
msgid "Download Templates"
@@ -2586,37 +2635,40 @@ msgstr "Download Skabeloner"
#: editor/export_template_manager.cpp
msgid "Select mirror from list: "
-msgstr ""
+msgstr "Vælg spejl fra liste: "
#: editor/file_type_cache.cpp
msgid "Can't open file_type_cache.cch for writing, not saving file type cache!"
-msgstr ""
+msgstr "Kan ikke skrive til file_type_cache.cch. Gemmer ikke fil type cache!"
#: editor/filesystem_dock.cpp
msgid "Cannot navigate to '%s' as it has not been found in the file system!"
-msgstr ""
+msgstr "Kan ikke navigere til '%s' da det ikke blev fundet i filsystemet!"
#: editor/filesystem_dock.cpp
msgid "View items as a grid of thumbnails"
-msgstr ""
+msgstr "Vis emner som et gitter af miniaturebilleder"
#: editor/filesystem_dock.cpp
msgid "View items as a list"
-msgstr ""
+msgstr "Vis emner som en liste"
#: editor/filesystem_dock.cpp
msgid ""
"\n"
"Status: Import of file failed. Please fix file and reimport manually."
msgstr ""
+"\n"
+"Status: Import af filen fejlede. Venligst reparer filen og genimporter "
+"manuelt."
#: editor/filesystem_dock.cpp
msgid "Cannot move/rename resources root."
-msgstr ""
+msgstr "Kan ikke flytte/omdøbe resourcen root."
#: editor/filesystem_dock.cpp
msgid "Cannot move a folder into itself.\n"
-msgstr ""
+msgstr "Kan ikke flytte en mappe til sig selv\n"
#: editor/filesystem_dock.cpp
#, fuzzy
@@ -2624,28 +2676,33 @@ msgid "Error moving:\n"
msgstr "Fejl i flytning:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Fejl under indlæsning:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
-msgstr ""
+msgstr "Kan ikke opdatere afhængigheder:\n"
#: editor/filesystem_dock.cpp
msgid "No name provided"
-msgstr ""
+msgstr "Intet navn angivet"
#: editor/filesystem_dock.cpp
msgid "Provided name contains invalid characters"
-msgstr ""
+msgstr "Det angivne navn indeholder ugyldige karakterer"
#: editor/filesystem_dock.cpp
msgid "No name provided."
-msgstr ""
+msgstr "Intet navn angivet."
#: editor/filesystem_dock.cpp
msgid "Name contains invalid characters."
-msgstr ""
+msgstr "Navnet indeholder ugyldige karakterer."
#: editor/filesystem_dock.cpp
msgid "A file or folder with this name already exists."
-msgstr ""
+msgstr "En fil eller mappe med dette navn findes allerede."
#: editor/filesystem_dock.cpp
msgid "Renaming file:"
@@ -2653,63 +2710,71 @@ msgstr "Omdøb fil:"
#: editor/filesystem_dock.cpp
msgid "Renaming folder:"
-msgstr ""
+msgstr "Omdøber mappe:"
#: editor/filesystem_dock.cpp
-msgid "Expand all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Duplikere"
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Omdøber mappe:"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr ""
+msgid "Expand all"
+msgstr "Udvid alle"
#: editor/filesystem_dock.cpp
-msgid "Rename.."
-msgstr ""
+msgid "Collapse all"
+msgstr "Klap alle sammen"
#: editor/filesystem_dock.cpp
-msgid "Move To.."
-msgstr ""
+msgid "Rename.."
+msgstr "Omdøb.."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "Opret mappe.."
+msgid "Move To.."
+msgstr "Flyt Til.."
#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr ""
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Ã…bn Scene"
#: editor/filesystem_dock.cpp
msgid "Instance"
-msgstr ""
+msgstr "Instans"
#: editor/filesystem_dock.cpp
msgid "Edit Dependencies.."
-msgstr ""
+msgstr "Rediger Afhængigheder.."
#: editor/filesystem_dock.cpp
msgid "View Owners.."
-msgstr ""
+msgstr "Vis Ejere.."
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Duplikere"
#: editor/filesystem_dock.cpp
msgid "Previous Directory"
-msgstr ""
+msgstr "Forrige Mappe"
#: editor/filesystem_dock.cpp
msgid "Next Directory"
-msgstr ""
+msgstr "Næste Mappe"
#: editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
-msgstr ""
+msgstr "Gen-scan Filsystemet"
#: editor/filesystem_dock.cpp
msgid "Toggle folder status as Favorite"
-msgstr ""
+msgstr "Skift mappe status til Favorit"
#: editor/filesystem_dock.cpp
msgid "Instance the selected scene(s) as child of the selected node."
@@ -2720,100 +2785,110 @@ msgid ""
"Scanning Files,\n"
"Please Wait.."
msgstr ""
+"Scanner Filer,\n"
+"Vent Venligst.."
#: editor/filesystem_dock.cpp
msgid "Move"
-msgstr ""
+msgstr "Flyt"
#: editor/filesystem_dock.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/project_manager.cpp
msgid "Rename"
-msgstr ""
+msgstr "Omdøb"
#: editor/groups_editor.cpp
msgid "Add to Group"
-msgstr ""
+msgstr "Føj til Gruppe"
#: editor/groups_editor.cpp
msgid "Remove from Group"
-msgstr ""
+msgstr "Fjern fra Gruppe"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Single Scene"
-msgstr ""
+msgstr "Importer som Enkelt Scene"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Animations"
-msgstr ""
+msgstr "Importer med Adskilte Animationer"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials"
-msgstr ""
+msgstr "Importer med Adskilte Materialer"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects"
-msgstr ""
+msgstr "Importer med Adskilte Objekter"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials"
-msgstr ""
+msgstr "Importer med Adskilte Objekter+Materialer"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Animations"
-msgstr ""
+msgstr "Importer med Adskilte Objekter+Animationer"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials+Animations"
-msgstr ""
+msgstr "Importer med Adskilte Materialer+Animationer"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials+Animations"
-msgstr ""
+msgstr "Importer med Adskilte Objekter+Materialer+Animationer"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes"
-msgstr ""
+msgstr "Importer som Adskillige Scener"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes+Materials"
-msgstr ""
+msgstr "Importer som Adskillige Scener+Materialer"
#: editor/import/resource_importer_scene.cpp
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Import Scene"
-msgstr ""
+msgstr "Importer Scene"
#: editor/import/resource_importer_scene.cpp
msgid "Importing Scene.."
+msgstr "Importerer Scene.."
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
msgstr ""
#: editor/import/resource_importer_scene.cpp
-msgid "Running Custom Script.."
+msgid "Generating for Mesh: "
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Running Custom Script.."
+msgstr "Kører Brugerdefineret Script.."
+
+#: editor/import/resource_importer_scene.cpp
msgid "Couldn't load post-import script:"
-msgstr ""
+msgstr "Kunne ikke indlæse efter-import script:"
#: editor/import/resource_importer_scene.cpp
msgid "Invalid/broken script for post-import (check console):"
-msgstr ""
+msgstr "Ugyldig/ødelagt script til efter-import (check konsol):"
#: editor/import/resource_importer_scene.cpp
msgid "Error running post-import script:"
-msgstr ""
+msgstr "Fejl ved kørsel af efter-import script:"
#: editor/import/resource_importer_scene.cpp
msgid "Saving.."
-msgstr ""
+msgstr "Gemmer.."
#: editor/import_dock.cpp
msgid "Set as Default for '%s'"
-msgstr ""
+msgstr "Sæt som Standard for '%s'"
#: editor/import_dock.cpp
msgid "Clear Default for '%s'"
-msgstr ""
+msgstr "Fjern Standard for '%s'"
#: editor/import_dock.cpp
msgid " Files"
@@ -2821,56 +2896,56 @@ msgstr " Filer"
#: editor/import_dock.cpp
msgid "Import As:"
-msgstr ""
+msgstr "Importer Som:"
#: editor/import_dock.cpp editor/property_editor.cpp
msgid "Preset.."
-msgstr ""
+msgstr "Forudindstillet.."
#: editor/import_dock.cpp
msgid "Reimport"
-msgstr ""
+msgstr "Genimporter"
#: editor/multi_node_edit.cpp
msgid "MultiNode Set"
-msgstr ""
+msgstr "MultiNode Sæt"
#: editor/node_dock.cpp
msgid "Groups"
-msgstr ""
+msgstr "Grupper"
#: editor/node_dock.cpp
msgid "Select a Node to edit Signals and Groups."
-msgstr ""
+msgstr "Vælg en Node at redigere Signaler og Grupper for."
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create Poly"
-msgstr ""
+msgstr "Opret Poly"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/collision_polygon_editor_plugin.cpp
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Edit Poly"
-msgstr ""
+msgstr "Rediger Poly"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Insert Point"
-msgstr ""
+msgstr "Indsæt Punkt"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/collision_polygon_editor_plugin.cpp
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Edit Poly (Remove Point)"
-msgstr ""
+msgstr "Rediger Poly (Fjern Punkt)"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Remove Poly And Point"
-msgstr ""
+msgstr "Fjern Poly og Punkt"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Create a new polygon from scratch"
-msgstr ""
+msgstr "Opret en ny polygon fra start"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid ""
@@ -2879,6 +2954,10 @@ msgid ""
"Ctrl+LMB: Split Segment.\n"
"RMB: Erase Point."
msgstr ""
+"Rediger eksisterende polygon:\n"
+"LMB: Flyt Punkt.\n"
+"Ctrl+LMB: Skil Segment.\n"
+"RMB: Slet Punkt."
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Delete points"
@@ -2886,19 +2965,19 @@ msgstr "Slet points"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
-msgstr ""
+msgstr "Skift Autoplay"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Animation Name:"
-msgstr ""
+msgstr "Ny Animation Navn:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Anim"
-msgstr ""
+msgstr "Ny Animation"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Animation Name:"
-msgstr ""
+msgstr "Ændre Animation Navn:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Delete Animation?"
@@ -2907,7 +2986,7 @@ msgstr "Slet Animation?"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Remove Animation"
-msgstr ""
+msgstr "Fjern Animation"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: Invalid animation name!"
@@ -3352,6 +3431,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Alle"
@@ -3393,6 +3473,27 @@ msgstr "Tester"
msgid "Assets ZIP File"
msgstr "Assets zipfil"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3528,7 +3629,6 @@ msgid "Toggles snapping"
msgstr "Skift snapping mode"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3708,16 +3808,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3911,6 +4001,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3951,6 +4057,20 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Vis FPS"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Vis FPS"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4127,10 +4247,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4148,15 +4264,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4218,10 +4334,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4508,11 +4620,13 @@ msgstr "Sorter"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4528,7 +4642,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4541,6 +4655,11 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Kopier Sti"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4727,14 +4846,11 @@ msgid "Clone Down"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
+#, fuzzy
+msgid "Fold/Unfold Line"
msgstr "Fold Line"
#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
msgstr ""
@@ -5059,6 +5175,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5163,6 +5287,19 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Vælg Mode (Q)\n"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5235,10 +5372,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5280,6 +5413,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5662,6 +5799,11 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet.."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5673,6 +5815,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Annuller"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5790,10 +5936,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -6051,8 +6193,9 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr ""
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Slet valgte"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6119,6 +6262,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6295,6 +6442,10 @@ msgid "New Script"
msgstr ""
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6326,6 +6477,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6334,10 +6489,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "Vælg Property"
@@ -6890,6 +7041,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6938,15 +7093,52 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Fjern Kurve Punkt"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7633,6 +7825,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7669,10 +7877,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7733,10 +7937,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Annuller"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Advarsel!"
@@ -7804,6 +8004,15 @@ msgstr "Error loading skrifttype."
msgid "Invalid font size."
msgstr "Ugyldig skriftstørrelse."
+#~ msgid "Move Add Key"
+#~ msgstr "Flyt Add Key"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Opret Abonnement"
+
+#~ msgid "List:"
+#~ msgstr "Liste:"
+
#, fuzzy
#~ msgid ""
#~ "\n"
diff --git a/editor/translations/de.po b/editor/translations/de.po
index 53b69c444a..5dc85b2c40 100644
--- a/editor/translations/de.po
+++ b/editor/translations/de.po
@@ -28,8 +28,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2017-11-24 09:46+0000\n"
-"Last-Translator: Ben <benedikt.tuchen@gmail.com>\n"
+"PO-Revision-Date: 2017-12-07 11:47+0000\n"
+"Last-Translator: So Wieso <sowieso@dukun.de>\n"
"Language-Team: German <https://hosted.weblate.org/projects/godot-engine/"
"godot/de/>\n"
"Language: de\n"
@@ -48,8 +48,9 @@ msgid "All Selection"
msgstr "Alle auswählen"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Schlüsselbild bewegen hinzufügen"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Anim Wert ändern"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -60,7 +61,8 @@ msgid "Anim Change Transform"
msgstr "Anim ändere Transformation"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Anim Wert ändern"
#: editor/animation_editor.cpp
@@ -555,8 +557,9 @@ msgid "Connecting Signal:"
msgstr "Verbinde Signal:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Erstelle Subscription"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Verbinde '%s' zu '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -572,7 +575,8 @@ msgid "Signals"
msgstr "Signale"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Neu erstellen"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -587,7 +591,7 @@ msgstr "Kürzlich:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Suche:"
@@ -628,6 +632,7 @@ msgstr ""
"Änderungen werden erst dann aktiv, nachdem neu geladen wurde."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Abhängigkeiten"
@@ -731,9 +736,10 @@ msgid "Delete selected files?"
msgstr "Ausgewählte Dateien löschen?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Löschen"
@@ -877,6 +883,11 @@ msgid "Rename Audio Bus"
msgstr "Audiobus umbenennen"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Audiobus Solo-Status umschalten"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Audiobus Solo-Status umschalten"
@@ -924,8 +935,8 @@ msgstr "Überbrückung"
msgid "Bus options"
msgstr "Audiobusoptionen"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Duplizieren"
@@ -938,6 +949,10 @@ msgid "Delete Effect"
msgstr "Effekt löschen"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "Audiobus hinzufügen"
@@ -1094,7 +1109,8 @@ msgstr "Pfad:"
msgid "Node Name:"
msgstr "Node-Name:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Name"
@@ -1102,10 +1118,6 @@ msgstr "Name"
msgid "Singleton"
msgstr "Singleton"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Liste:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "Aktualisiere Szene"
@@ -1118,6 +1130,15 @@ msgstr "Speichere lokale Änderungen.."
msgid "Updating scene.."
msgstr "Aktualisiere Szene..."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(leer)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "Zuerst ein Wurzelverzeichnis setzen"
@@ -1164,9 +1185,24 @@ msgid "File Exists, Overwrite?"
msgstr "Datei existiert bereits. Überschreiben?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "Ordner erstellen"
+msgstr "Gegenwärtigen Ordner auswählen"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Pfad kopieren"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Zeige im Dateimanager"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Neuer Ordner.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Aktualisieren"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1215,10 +1251,6 @@ msgid "Go Up"
msgstr "Hoch"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Aktualisieren"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "Versteckte Dateien ein- und ausblenden"
@@ -1398,7 +1430,8 @@ msgstr "Ausgabe:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "Löschen"
@@ -1555,14 +1588,12 @@ msgstr ""
"Die Dokumentation zum Debugging beschreibt den nötigen Arbeitsablauf."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand all properties"
-msgstr "Alle expandieren"
+msgstr "Alle Eigenschaften ausklappen"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Collapse all properties"
-msgstr "Alle einklappen"
+msgstr "Alle Eigenschaften einklappen"
#: editor/editor_node.cpp
msgid "Copy Params"
@@ -2275,7 +2306,7 @@ msgstr "Skripteditor öffnen"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
-msgstr "Öffne Nutzerinhalte-Bibliothek"
+msgstr "Öffne Nutzerinhaltesammlung"
#: editor/editor_node.cpp
msgid "Open the next Editor"
@@ -2358,6 +2389,16 @@ msgstr "Selbst"
msgid "Frame #:"
msgstr "Bild #:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Zeit:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Aufruf"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "Gerät aus Liste auswählen"
@@ -2499,7 +2540,8 @@ msgstr "Keine Antwort."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "Anfrage fehlgeschlagen."
#: editor/export_template_manager.cpp
@@ -2546,7 +2588,8 @@ msgid "Connecting.."
msgstr "Verbinde.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "Keine Verbindung möglich"
#: editor/export_template_manager.cpp
@@ -2643,6 +2686,11 @@ msgid "Error moving:\n"
msgstr "Fehler beim Verschieben:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Ladefehler:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "Fehler beim Aktualisieren der Abhängigkeiten:\n"
@@ -2675,6 +2723,16 @@ msgid "Renaming folder:"
msgstr "Benenne Ordner um:"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Duplizieren"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Benenne Ordner um:"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "Alle expandieren"
@@ -2683,10 +2741,6 @@ msgid "Collapse all"
msgstr "Alle einklappen"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "Pfad kopieren"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "Umbenennen.."
@@ -2695,12 +2749,9 @@ msgid "Move To.."
msgstr "Verschiebe zu.."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "Neuer Ordner.."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "Zeige im Dateimanager"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Szene öffnen"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2715,6 +2766,11 @@ msgid "View Owners.."
msgstr "Zeige Besitzer.."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Duplizieren"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "Vorheriges Verzeichnis"
@@ -2809,6 +2865,16 @@ msgid "Importing Scene.."
msgstr "Szene wird importiert.."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "übertrage zu Lightmaps:"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "Erzeuge AABB"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "Angepasstes Skript wird ausgeführt.."
@@ -3054,54 +3120,51 @@ msgstr "Animation kopieren"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "Zwiebelhaut"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Zwiebelhaut aktivieren"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "Abschnitte:"
+msgstr "Richtungen"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Past"
-msgstr "Einfügen"
+msgstr "Vergangenheit"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Future"
-msgstr "Funktionen"
+msgstr "Zukunft"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Tiefe"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 Schicht"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 Schichten"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 Schichten"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "nur Unterschiede"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
-msgstr ""
+msgstr "Weißmodulation erzwingen"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "Griffe (3D) einbeziehen"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -3279,7 +3342,7 @@ msgstr "Filter.."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Free"
-msgstr "Frei"
+msgstr "Kostenlos"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Contents:"
@@ -3378,6 +3441,7 @@ msgid "last"
msgstr "Ende"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Alle"
@@ -3419,6 +3483,28 @@ msgstr "Testphase"
msgid "Assets ZIP File"
msgstr "Nutzerinhalte als ZIP-Datei"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "übertrage zu Lightmaps:"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "Vorschau"
@@ -3558,7 +3644,6 @@ msgid "Toggles snapping"
msgstr "Einrasten umschalten"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "Einrasten aktivieren"
@@ -3739,16 +3824,6 @@ msgstr "Fehler beim Instanziieren von %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "Verstehe"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "Kein Node unter dem Unterobjekt instantiiert werden könnte vorhanden."
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr "Diese Aktion benötigt ein einzelnes ausgewähltes Node."
@@ -3944,6 +4019,22 @@ msgid "Create Navigation Mesh"
msgstr "Navigations-Mesh erzeugen"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr "Mesh-Instanz fehlt ein Mesh!"
@@ -3984,6 +4075,20 @@ msgid "Create Outline Mesh.."
msgstr "Umriss-Mesh erzeugen.."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Ansicht"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Ansicht"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr "Erzeuge Umriss-Mesh"
@@ -4161,10 +4266,6 @@ msgid "Create Navigation Polygon"
msgstr "Erzeuge Navigationspolygon"
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr "Emissionsmaske leeren"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr "Erzeuge AABB"
@@ -4181,11 +4282,7 @@ msgstr "Fehler beim Laden des Bilds:"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "No pixels with transparency > 128 in image.."
-msgstr "Keine Pixel mit einer Transzparenz > 128 im Bild.."
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "Emissionsmaske setzen"
+msgstr "Keine Pixel mit einer Transparenz > 128 im Bild.."
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
@@ -4196,6 +4293,10 @@ msgid "Load Emission Mask"
msgstr "Emissionsmaske laden"
#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "Emissionsmaske leeren"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
msgstr "Partikel"
@@ -4254,10 +4355,6 @@ msgid "Create Emission Points From Node"
msgstr "Erzeuge Emissionspunkte aus Node"
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "Leere Emittent"
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr "Erzeuge Emittent"
@@ -4542,11 +4639,13 @@ msgstr "Sortiere"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "Schiebe hoch"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "Schiebe herunter"
@@ -4562,7 +4661,7 @@ msgstr "Vorheriges Skript"
msgid "File"
msgstr "Datei"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "Neu"
@@ -4575,6 +4674,11 @@ msgid "Soft Reload Script"
msgstr "Zaghaftes Skript-Neuladen"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Pfad kopieren"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr "Zurück im Verlauf"
@@ -4765,11 +4869,8 @@ msgid "Clone Down"
msgstr "Klone herunter"
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr "Zeile einklappen"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+#, fuzzy
+msgid "Fold/Unfold Line"
msgstr "Zeile aufklappen"
#: editor/plugins/script_text_editor.cpp
@@ -5007,7 +5108,7 @@ msgstr "Skalierung: "
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translating: "
-msgstr "Übersetze: "
+msgstr "Verschiebe: "
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotating %s degrees."
@@ -5097,6 +5198,14 @@ msgstr "FPS"
msgid "Align with view"
msgstr "Auf Sicht ausrichten"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "Verstehe"
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "Kein Node unter dem Unterobjekt instantiiert werden könnte vorhanden."
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "Normale Ansicht"
@@ -5115,7 +5224,7 @@ msgstr "Nicht Schattiertes anzeigen"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Environment"
-msgstr "Environment anzeigen"
+msgstr "Umgebung anzeigen"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Gizmos"
@@ -5204,6 +5313,20 @@ msgid "Scale Mode (R)"
msgstr "Skalierungsmodus (R)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "Lokale Koordinaten"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "Skalierungsmodus (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Einrastmodus:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "Sicht von unten"
@@ -5276,10 +5399,6 @@ msgid "Configure Snap.."
msgstr "Einrasten konfigurieren.."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "Lokale Koordinaten"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr "Transformationsdialog.."
@@ -5321,6 +5440,10 @@ msgid "Settings"
msgstr "Einstellungen"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr "Einrasteinstellungen"
@@ -5703,17 +5826,26 @@ msgid "Merge from scene?"
msgstr "Aus Szene vereinen?"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet.."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "Von Szene erstellen"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Merge from Scene"
-msgstr "Aus Szene vereinen"
+msgstr "Aus Szene zusammenführen"
#: editor/plugins/tile_set_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Error"
msgstr "Fehler"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Abbrechen"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "ausführbar"
@@ -5837,10 +5969,6 @@ msgid "Imported Project"
msgstr "Importiertes Projekt"
#: editor/project_manager.cpp
-msgid " "
-msgstr " "
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr "Es wird empfohlen das Projekt zu benennen."
@@ -6001,6 +6129,8 @@ msgid ""
"You don't currently have any projects.\n"
"Would you like to explore the official example projects in the Asset Library?"
msgstr ""
+"Zur Zeit sind keine Projekte vorhanden.\n"
+"Sollen Beispielprojekte aus der Nutzerinhaltesammlung angezeigt werden?"
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -6108,8 +6238,9 @@ msgid "Joypad Button Index:"
msgstr "Joysticktasten-Index:"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "Füge Eingabeaktion hinzu"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Lösche Eingabeaktionsereignis"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6176,6 +6307,10 @@ msgid "Already existing"
msgstr "Existiert bereits"
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "Füge Eingabeaktion hinzu"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "Fehler beim Speichern der Einstellungen."
@@ -6352,6 +6487,10 @@ msgid "New Script"
msgstr "Neues Skript"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr "Einzigartig machen"
@@ -6383,6 +6522,11 @@ msgstr "Bit %d, Wert %d."
msgid "On"
msgstr "An"
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "Empty einfügen"
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "Setzen"
@@ -6391,10 +6535,6 @@ msgstr "Setzen"
msgid "Properties:"
msgstr "Eigenschaften:"
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr "Abschnitte:"
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "Eigenschaft auswählen"
@@ -6414,7 +6554,7 @@ msgstr "Konnte PVRTC-Werkzeug nicht ausführen:"
#: editor/pvrtc_compress.cpp
msgid "Can't load back converted image using PVRTC tool:"
msgstr ""
-"Konnte PVRTC-Werkzeug nicht benutzen um konvertiertes Bild zurück zu laden:"
+"Umgewandeltes Bild kann mittels PVRTC-Werkzeug nicht zurück geladen werden:"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent Node"
@@ -6501,7 +6641,7 @@ msgstr "Dupliziere Node(s)"
#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
-msgstr "Lösche Node(s)?"
+msgstr "Node(s) wirklich löschen?"
#: editor/scene_tree_dock.cpp
msgid "Can not perform with the root node."
@@ -6964,6 +7104,10 @@ msgstr "Nach Szenenbaum einstellen"
msgid "Shortcuts"
msgstr "Tastenkürzel"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "Ändere Lichtradius"
@@ -7012,15 +7156,55 @@ msgstr "Ändere Partikel AABB"
msgid "Change Probe Extents"
msgstr "Sondenausmaße ändern"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Kurvenpunkt entfernen"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Platform"
+msgstr "Kopiere zu Plattform.."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "Bibliothek"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "GDNative"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr "Bibliothek"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr "Status"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr "Bibliotheken: "
@@ -7038,7 +7222,7 @@ msgstr ""
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
msgstr ""
-"Nicht genügend Bytes zum dekodieren des Byte-Strings, oder ungültiges Format."
+"Nicht genügend Bytes zum Dekodieren des Byte-Strings oder ungültiges Format."
#: modules/gdscript/gdscript_functions.cpp
msgid "step argument is zero!"
@@ -7734,6 +7918,25 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr "ARVROrigin benötigt ein ARVRCamera-Unterobjekt"
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "Plotte Mesh"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "Plotte Mesh"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr "Stelle Plot fertig"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "Plotte Mesh"
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7770,10 +7973,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr "Plotte Mesh"
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr "Stelle Plot fertig"
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7842,10 +8041,6 @@ msgid "Add current color as a preset"
msgstr "Füge aktuelle Farbe als Vorlage hinzu"
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Warnung!"
@@ -7854,9 +8049,8 @@ msgid "Please Confirm..."
msgstr "Bitte bestätigen..."
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select this Folder"
-msgstr "Methode auswählen"
+msgstr "Diesen Ordner auswählen"
#: scene/gui/popup.cpp
msgid ""
@@ -7922,6 +8116,30 @@ msgstr "Fehler beim Laden der Schriftart."
msgid "Invalid font size."
msgstr "Ungültige Schriftgröße."
+#~ msgid "Move Add Key"
+#~ msgstr "Schlüsselbild bewegen hinzufügen"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Erstelle Subscription"
+
+#~ msgid "List:"
+#~ msgstr "Liste:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "Emissionsmaske setzen"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "Leere Emittent"
+
+#~ msgid "Fold Line"
+#~ msgstr "Zeile einklappen"
+
+#~ msgid " "
+#~ msgstr " "
+
+#~ msgid "Sections:"
+#~ msgstr "Abschnitte:"
+
#~ msgid "Cannot navigate to '"
#~ msgstr "Kann Ordner ‚"
@@ -8464,9 +8682,6 @@ msgstr "Ungültige Schriftgröße."
#~ msgid "Making BVH"
#~ msgstr "Erstelle BVH"
-#~ msgid "Transfer to Lightmaps:"
-#~ msgstr "übertrage zu Lightmaps:"
-
#~ msgid "Allocating Texture #"
#~ msgstr "Zuweisen von Textur #"
@@ -8612,9 +8827,6 @@ msgstr "Ungültige Schriftgröße."
#~ msgid "Del"
#~ msgstr "Entfernen"
-#~ msgid "Copy To Platform.."
-#~ msgstr "Kopiere zu Plattform.."
-
#~ msgid "just pressed"
#~ msgstr "gerade gedrückt"
diff --git a/editor/translations/de_CH.po b/editor/translations/de_CH.po
index 213d7ab1d7..48cc0b9c7b 100644
--- a/editor/translations/de_CH.po
+++ b/editor/translations/de_CH.po
@@ -27,8 +27,8 @@ msgid "All Selection"
msgstr ""
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Bild bewegen/einfügen"
+msgid "Anim Change Keyframe Time"
+msgstr ""
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -39,7 +39,7 @@ msgid "Anim Change Transform"
msgstr ""
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+msgid "Anim Change Keyframe Value"
msgstr ""
#: editor/animation_editor.cpp
@@ -532,7 +532,7 @@ msgid "Connecting Signal:"
msgstr ""
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
+msgid "Disconnect '%s' from '%s'"
msgstr ""
#: editor/connections_dialog.cpp
@@ -549,8 +549,9 @@ msgid "Signals"
msgstr ""
#: editor/create_dialog.cpp
-msgid "Create New"
-msgstr ""
+#, fuzzy
+msgid "Create New %s"
+msgstr "Node erstellen"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -564,7 +565,7 @@ msgstr ""
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr ""
@@ -601,6 +602,7 @@ msgid ""
msgstr ""
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr ""
@@ -701,9 +703,10 @@ msgid "Delete selected files?"
msgstr ""
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr ""
@@ -845,6 +848,11 @@ msgstr ""
#: editor/editor_audio_buses.cpp
#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Autoplay Umschalten"
+
+#: editor/editor_audio_buses.cpp
+#, fuzzy
msgid "Toggle Audio Bus Solo"
msgstr "Autoplay Umschalten"
@@ -892,8 +900,8 @@ msgstr ""
msgid "Bus options"
msgstr ""
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr ""
@@ -906,6 +914,10 @@ msgid "Delete Effect"
msgstr ""
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr ""
@@ -1059,7 +1071,8 @@ msgstr ""
msgid "Node Name:"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr ""
@@ -1067,10 +1080,6 @@ msgstr ""
msgid "Singleton"
msgstr ""
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr ""
@@ -1083,6 +1092,14 @@ msgstr ""
msgid "Updating scene.."
msgstr ""
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr ""
@@ -1133,6 +1150,22 @@ msgstr "Datei existiert, Überschreiben?"
msgid "Select Current Folder"
msgstr "Node(s) löschen"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr ""
@@ -1180,10 +1213,6 @@ msgid "Go Up"
msgstr ""
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr ""
@@ -1360,7 +1389,8 @@ msgstr ""
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr ""
@@ -2270,6 +2300,14 @@ msgstr ""
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr ""
@@ -2406,7 +2444,7 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+msgid "Request Failed."
msgstr ""
#: editor/export_template_manager.cpp
@@ -2458,7 +2496,7 @@ msgstr "Connections editieren"
#: editor/export_template_manager.cpp
#, fuzzy
-msgid "Can't Conect"
+msgid "Can't Connect"
msgstr "Neues Projekt erstellen"
#: editor/export_template_manager.cpp
@@ -2555,6 +2593,11 @@ msgstr "Szene kann nicht gespeichert werden."
#: editor/filesystem_dock.cpp
#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Szene kann nicht gespeichert werden."
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
msgid "Unable to update dependencies:\n"
msgstr "Szene '%s' hat kapute Abhängigkeiten:"
@@ -2588,32 +2631,35 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Szene kann nicht gespeichert werden."
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Node(s) duplizieren"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
+msgid "Expand all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Rename.."
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Move To.."
+msgid "Rename.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
+msgid "Move To.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr ""
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Datei(en) öffnen"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2628,6 +2674,11 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Node(s) duplizieren"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2720,6 +2771,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3297,6 +3356,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr ""
@@ -3338,6 +3398,27 @@ msgstr ""
msgid "Assets ZIP File"
msgstr ""
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3478,7 +3559,6 @@ msgid "Toggles snapping"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3660,16 +3740,6 @@ msgstr "Fehler beim Instanzieren der %s Szene"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "Okay :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr "Bitte nur ein Node selektieren."
@@ -3865,6 +3935,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3905,6 +3991,20 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Datei(en) öffnen"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Datei(en) öffnen"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4082,11 +4182,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Clear Emission Mask"
-msgstr "Inhalt der Emissions-Masken löschen"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4104,10 +4199,6 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "Emissions-Maske setzen"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
msgstr ""
@@ -4116,6 +4207,11 @@ msgid "Load Emission Mask"
msgstr "Emissions-Maske laden"
#: editor/plugins/particles_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Clear Emission Mask"
+msgstr "Inhalt der Emissions-Masken löschen"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
msgstr ""
@@ -4176,10 +4272,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4467,11 +4559,13 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4487,7 +4581,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4500,6 +4594,10 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+msgid "Copy Script Path"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4688,14 +4786,10 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
+msgid "Fold/Unfold Line"
msgstr "Bild einfügen"
#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
msgstr ""
@@ -5024,6 +5118,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "Okay :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5130,6 +5232,19 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Selektiere Node(s) zum Importieren aus"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5203,10 +5318,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5248,6 +5359,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5633,6 +5748,11 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "Datei(en) öffnen"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5644,6 +5764,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Abbrechen"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5765,10 +5889,6 @@ msgid "Imported Project"
msgstr "Importierte Projekte"
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -6035,7 +6155,7 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
+msgid "Erase Input Action"
msgstr ""
#: editor/project_settings_editor.cpp
@@ -6105,6 +6225,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6286,6 +6410,10 @@ msgid "New Script"
msgstr "Script hinzufügen"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6320,6 +6448,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6328,10 +6460,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6895,6 +7023,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6943,15 +7075,52 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Ungültige Bilder löschen"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7648,6 +7817,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7676,10 +7861,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7734,10 +7915,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Alert!"
@@ -7799,6 +7976,12 @@ msgstr ""
msgid "Invalid font size."
msgstr ""
+#~ msgid "Move Add Key"
+#~ msgstr "Bild bewegen/einfügen"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "Emissions-Maske setzen"
+
#~ msgid "Surface %d"
#~ msgstr "Oberfläche %d"
@@ -7844,10 +8027,6 @@ msgstr ""
#~ msgstr "Connections editieren"
#, fuzzy
-#~ msgid "Tiles"
-#~ msgstr "Datei(en) öffnen"
-
-#, fuzzy
#~ msgid "Error creating the signature object."
#~ msgstr "Fehler beim Schreiben des Projekts PCK!"
diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot
index 84505f1719..d21bbc374a 100644
--- a/editor/translations/editor.pot
+++ b/editor/translations/editor.pot
@@ -21,7 +21,7 @@ msgid "All Selection"
msgstr ""
#: editor/animation_editor.cpp
-msgid "Move Add Key"
+msgid "Anim Change Keyframe Time"
msgstr ""
#: editor/animation_editor.cpp
@@ -33,7 +33,7 @@ msgid "Anim Change Transform"
msgstr ""
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+msgid "Anim Change Keyframe Value"
msgstr ""
#: editor/animation_editor.cpp
@@ -525,7 +525,7 @@ msgid "Connecting Signal:"
msgstr ""
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
+msgid "Disconnect '%s' from '%s'"
msgstr ""
#: editor/connections_dialog.cpp
@@ -542,7 +542,7 @@ msgid "Signals"
msgstr ""
#: editor/create_dialog.cpp
-msgid "Create New"
+msgid "Create New %s"
msgstr ""
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -557,7 +557,7 @@ msgstr ""
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr ""
@@ -594,6 +594,7 @@ msgid ""
msgstr ""
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr ""
@@ -694,9 +695,10 @@ msgid "Delete selected files?"
msgstr ""
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr ""
@@ -835,6 +837,10 @@ msgid "Rename Audio Bus"
msgstr ""
#: editor/editor_audio_buses.cpp
+msgid "Change Audio Bus Volume"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr ""
@@ -882,8 +888,8 @@ msgstr ""
msgid "Bus options"
msgstr ""
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr ""
@@ -896,6 +902,10 @@ msgid "Delete Effect"
msgstr ""
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr ""
@@ -1046,7 +1056,8 @@ msgstr ""
msgid "Node Name:"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr ""
@@ -1054,10 +1065,6 @@ msgstr ""
msgid "Singleton"
msgstr ""
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr ""
@@ -1070,6 +1077,14 @@ msgstr ""
msgid "Updating scene.."
msgstr ""
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr ""
@@ -1119,6 +1134,22 @@ msgstr ""
msgid "Select Current Folder"
msgstr ""
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr ""
@@ -1166,10 +1197,6 @@ msgid "Go Up"
msgstr ""
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr ""
@@ -1345,7 +1372,8 @@ msgstr ""
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr ""
@@ -2235,6 +2263,14 @@ msgstr ""
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr ""
@@ -2370,7 +2406,7 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+msgid "Request Failed."
msgstr ""
#: editor/export_template_manager.cpp
@@ -2417,7 +2453,7 @@ msgid "Connecting.."
msgstr ""
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+msgid "Can't Connect"
msgstr ""
#: editor/export_template_manager.cpp
@@ -2508,6 +2544,10 @@ msgid "Error moving:\n"
msgstr ""
#: editor/filesystem_dock.cpp
+msgid "Error duplicating:\n"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr ""
@@ -2540,31 +2580,31 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
+msgid "Duplicating file:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
+msgid "Duplicating folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
+msgid "Expand all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Rename.."
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Move To.."
+msgid "Rename.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
+msgid "Move To.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
+msgid "Open Scene(s)"
msgstr ""
#: editor/filesystem_dock.cpp
@@ -2580,6 +2620,10 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+msgid "Duplicate.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2672,6 +2716,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3234,6 +3286,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr ""
@@ -3275,6 +3328,27 @@ msgstr ""
msgid "Assets ZIP File"
msgstr ""
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3409,7 +3483,6 @@ msgid "Toggles snapping"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3589,16 +3662,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3790,6 +3853,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3830,6 +3909,18 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV1"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV2"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4006,10 +4097,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4027,15 +4114,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4097,10 +4184,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4383,11 +4466,13 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4403,7 +4488,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4416,6 +4501,10 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+msgid "Copy Script Path"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4602,11 +4691,7 @@ msgid "Clone Down"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+msgid "Fold/Unfold Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -4934,6 +5019,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5038,6 +5131,18 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5110,10 +5215,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5155,6 +5256,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5537,6 +5642,10 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Tile Set"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5548,6 +5657,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr ""
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5665,10 +5778,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -5925,7 +6034,7 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
+msgid "Erase Input Action"
msgstr ""
#: editor/project_settings_editor.cpp
@@ -5993,6 +6102,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6169,6 +6282,10 @@ msgid "New Script"
msgstr ""
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6200,6 +6317,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6208,10 +6329,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6761,6 +6878,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6809,15 +6930,51 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Remove current entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7466,6 +7623,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7494,10 +7667,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7550,10 +7719,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr ""
diff --git a/editor/translations/el.po b/editor/translations/el.po
index 0b5ed8fda8..f0c3fd284b 100644
--- a/editor/translations/el.po
+++ b/editor/translations/el.po
@@ -8,7 +8,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-27 10:46+0000\n"
+"PO-Revision-Date: 2017-12-05 21:46+0000\n"
"Last-Translator: George Tsiamasiotis <gtsiam@windowslive.com>\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/godot-engine/godot/"
"el/>\n"
@@ -27,8 +27,9 @@ msgid "All Selection"
msgstr "Επιλογή όλων"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Μετακίνηση ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Ï€Ïοσθήκης"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Anim Αλλαγή τιμής"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -39,7 +40,8 @@ msgid "Anim Change Transform"
msgstr "Anim Αλλαγή Î¼ÎµÏ„Î±ÏƒÏ‡Î·Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï (transform)"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Anim Αλλαγή τιμής"
#: editor/animation_editor.cpp
@@ -535,8 +537,9 @@ msgid "Connecting Signal:"
msgstr "ΣÏνδεση στο σήμα:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "ΔημιουÏγία εγγÏαφής"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "ΣÏνδεση του '%s' στο '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -552,7 +555,8 @@ msgid "Signals"
msgstr "Σήματα"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "ΔημιουÏγία νέου"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -567,7 +571,7 @@ msgstr "ΠÏόσφατα:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Αναζήτηση:"
@@ -608,6 +612,7 @@ msgstr ""
"Οι αλλαγές θα δÏάσουν όταν γίνει επαναφόÏτωση."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "ΕξαÏτήσεις"
@@ -710,9 +715,10 @@ msgid "Delete selected files?"
msgstr "ΔιαγÏαφή επιλεγμένων αÏχείων;"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "ΔιαγÏαφή"
@@ -856,6 +862,11 @@ msgid "Rename Audio Bus"
msgstr "Μετονομασία διαÏλου ήχου"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Εναλλαγή σόλο διαÏλου ήχου"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Εναλλαγή σόλο διαÏλου ήχου"
@@ -903,8 +914,8 @@ msgstr "ΠαÏάκαμψη"
msgid "Bus options"
msgstr "Επιλογές διαÏλου"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Διπλασιασμός"
@@ -917,6 +928,10 @@ msgid "Delete Effect"
msgstr "ΔιαγÏαφή εφέ"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "ΠÏοσθήκη διαÏλου ήχου"
@@ -1069,7 +1084,8 @@ msgstr "ΔιαδÏομή:"
msgid "Node Name:"
msgstr "Όνομα κόμβου:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Όνομα"
@@ -1077,10 +1093,6 @@ msgstr "Όνομα"
msgid "Singleton"
msgstr "ΜονοσÏνολο"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Λίστα:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "ΕνημέÏωση σκηνής"
@@ -1093,6 +1105,15 @@ msgstr "Αποθήκευση τοπικών αλλαγών.."
msgid "Updating scene.."
msgstr "ΕνημέÏωση σκηνής.."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(άδειο)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "ΠαÏακαλοÏμε επιλέξτε Ï€Ïώτα έναν βασικό κατάλογο"
@@ -1139,9 +1160,24 @@ msgid "File Exists, Overwrite?"
msgstr "Το αÏχείο υπάÏχει. Θέλετε να το αντικαταστήσετε;"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "ΔημιουÏγία φακέλου"
+msgstr "Επιλογή Ï„Ïέχοντα φακέλου"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "ΑντιγÏαφή διαδÏομής"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Εμφάνιση στη διαχείÏιση αÏχείων"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Îέος φάκελος"
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Αναναίωση"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1190,10 +1226,6 @@ msgid "Go Up"
msgstr "Πήγαινε πάνω"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Αναναίωση"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "Εναλλαγή κÏυμμένων αÏχείων"
@@ -1373,7 +1405,8 @@ msgstr "Έξοδος:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "ΕκκαθάÏιση"
@@ -1532,14 +1565,12 @@ msgstr ""
"καταλάβετε καλÏτεÏα την διαδικασία."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand all properties"
-msgstr "Ανάπτυξη όλων"
+msgstr "Ανάπτυξη όλων των ιδιοτήτων"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Collapse all properties"
-msgstr "ΣÏμπτηξη όλων"
+msgstr "ΣÏμπτηξη όλων των ιδιοτήτων"
#: editor/editor_node.cpp
msgid "Copy Params"
@@ -2336,6 +2367,16 @@ msgstr "Εαυτός"
msgid "Frame #:"
msgstr "ΚαÏέ #:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "ΧÏόνος:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Κλήση"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "Επιλέξτε συσκευή από την λίστα"
@@ -2477,7 +2518,8 @@ msgstr "Δεν λήφθηκε απόκÏιση."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "Το αίτημα απέτυχε."
#: editor/export_template_manager.cpp
@@ -2524,7 +2566,8 @@ msgid "Connecting.."
msgstr "ΣÏνδεση.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "Δεν ήταν δυνατή η σÏνδεση"
#: editor/export_template_manager.cpp
@@ -2621,6 +2664,11 @@ msgid "Error moving:\n"
msgstr "Σφάλμα κατά την μετακίνηση:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Σφάλμα κατά την φόÏτωση:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "ΑδÏνατη η ενημέÏωση των εξαÏτήσεων:\n"
@@ -2653,6 +2701,16 @@ msgid "Renaming folder:"
msgstr "Μετονομασία καταλόγου:"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Διπλασιασμός"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Μετονομασία καταλόγου:"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "Ανάπτυξη όλων"
@@ -2661,10 +2719,6 @@ msgid "Collapse all"
msgstr "ΣÏμπτηξη όλων"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "ΑντιγÏαφή διαδÏομής"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "Μετονομασία..."
@@ -2673,12 +2727,9 @@ msgid "Move To.."
msgstr "Μετακίνηση σε"
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "Îέος φάκελος"
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "Εμφάνιση στη διαχείÏιση αÏχείων"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Άνοιγμα σκηνής"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2693,6 +2744,11 @@ msgid "View Owners.."
msgstr "ΠÏοβολή ιδιοκτητών"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Διπλασιασμός"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "ΠÏοηγοÏμενος κατάλογος"
@@ -2789,6 +2845,16 @@ msgid "Importing Scene.."
msgstr "Εισαγωγή σκηνής..."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "ΜεταφοÏά στους χάÏτες φωτός:"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "ΔημιουÏία AABB"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "Εκτέλεση Ï€ÏοσαÏμοσμένης δέσμης ενεÏγειών..."
@@ -3036,54 +3102,51 @@ msgstr "ΑνιγÏαφή κίνησης"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "ΞεφλοÏδισμα κÏεμμυδιοÏ"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "ΕνεÏγοποίηση ξεφλουδίσματος κÏεμμυδιοÏ"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "Ενότητες:"
+msgstr "Κατευθήνσεις"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Past"
-msgstr "Επικόληση"
+msgstr "ΠαÏελθόν"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Future"
-msgstr "Δυνατότητες"
+msgstr "Μέλλον"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Βάθος"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 βήμα"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 βήματα"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 βήματα"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Μόνο διαφοÏές"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
-msgstr ""
+msgstr "Εξανάγκασε τονισμό άσπÏου"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "ΣυμπεÏιέλαβε μαÏαφέτια (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -3361,6 +3424,7 @@ msgid "last"
msgstr "ΠÏοηγοÏμενο"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Όλα"
@@ -3402,6 +3466,28 @@ msgstr "Δοκιμιμαστικά"
msgid "Assets ZIP File"
msgstr "ΑÏχείο ZIP των Asset"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "ΜεταφοÏά στους χάÏτες φωτός:"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "ΠÏοεπισκόπηση"
@@ -3540,7 +3626,6 @@ msgid "Toggles snapping"
msgstr "Εναλλαγή κουμπώματος"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "ΧÏήση κουμπώματος"
@@ -3720,17 +3805,6 @@ msgstr "Σφάλμα κατά την αÏχικοποίηση σκηνής απÏ
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "Εντάξει :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-"Δεν υπάÏχει γονέας στον οποίο μποÏεί να γίνει αÏχικοποίηση του παιδιοÏ."
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr "Αυτή η λειτουÏγία απαιτεί έναν μόνο επιλεγμένο κόμβο."
@@ -3926,6 +4000,22 @@ msgid "Create Navigation Mesh"
msgstr "ΔημιουÏγία πλέγματος πλοήγησης"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr "Το στιγμιότυπο πλέγματος δεν έχει πλέγμα!"
@@ -3966,6 +4056,20 @@ msgid "Create Outline Mesh.."
msgstr "ΔημιουÏγία πλέγματος πεÏιγÏάμματος.."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "ΚάμεÏα"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "ΚάμεÏα"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr "ΔημιουÏγία πλέγματος πεÏιγÏάμματος"
@@ -4144,10 +4248,6 @@ msgid "Create Navigation Polygon"
msgstr "ΔημιουÏγία πολυγώνου πλοήγησης"
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr "ΕκκαθάÏιση μάσκας εκπομπής"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr "ΔημιουÏία AABB"
@@ -4167,10 +4267,6 @@ msgid "No pixels with transparency > 128 in image.."
msgstr "Δεν υπάÏχουν εικονοστοιχεία με διαφάνεια >128 στην εικόνα.."
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "ΟÏισμός μάσκας εκπομπής"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
msgstr "ΔημιουÏγία οÏθογωνίου οÏατότητας"
@@ -4179,6 +4275,10 @@ msgid "Load Emission Mask"
msgstr "ΦόÏτωση μάσκας εκπομπής"
#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "ΕκκαθάÏιση μάσκας εκπομπής"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
msgstr "Σωματίδια"
@@ -4237,10 +4337,6 @@ msgid "Create Emission Points From Node"
msgstr "ΔημιουÏγία σημείων εκπομπής από κόμβο"
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "ΕκκαθάÏιση πομποÏ"
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr "ΔημιουÏγία πομποÏ"
@@ -4525,11 +4621,13 @@ msgstr "Ταξινόμηση"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "Μετακίνηση πάνω"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "Μετακίνηση κάτω"
@@ -4545,7 +4643,7 @@ msgstr "ΠÏοηγοÏμενη δεσμή ενεÏγειών"
msgid "File"
msgstr "ΑÏχείο"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "Îέο"
@@ -4558,6 +4656,11 @@ msgid "Soft Reload Script"
msgstr "Απλή επαναφόÏτωση δεσμής ενεÏγειών"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "ΑντιγÏαφή διαδÏομής"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr "ΙστοÏικά Ï€ÏοηγοÏμενο"
@@ -4748,11 +4851,8 @@ msgid "Clone Down"
msgstr "Κλωνοποίηση κάτω"
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr "Αναδίπλωση γÏαμμής"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+#, fuzzy
+msgid "Fold/Unfold Line"
msgstr "Ξεδίπλωμα γÏαμμής"
#: editor/plugins/script_text_editor.cpp
@@ -5081,6 +5181,15 @@ msgstr "FPS"
msgid "Align with view"
msgstr "Στοίχηση με την Ï€Ïοβολή"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "Εντάξει :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+"Δεν υπάÏχει γονέας στον οποίο μποÏεί να γίνει αÏχικοποίηση του παιδιοÏ."
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "Κανονική εμφάνιση"
@@ -5188,6 +5297,20 @@ msgid "Scale Mode (R)"
msgstr "ΛειτουÏγία κλιμάκωσης (R)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "Τοπικές συντεταγμένες"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "ΛειτουÏγία κλιμάκωσης (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "ΛειτουÏγία κουμπώματος:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "Κάτω όψη"
@@ -5260,10 +5383,6 @@ msgid "Configure Snap.."
msgstr "ΔιαμόÏφωση κουμπώματος.."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "Τοπικές συντεταγμένες"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr "Διάλογος μετασχηματισμοÏ.."
@@ -5305,6 +5424,10 @@ msgid "Settings"
msgstr "Ρυθμίσεις"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr "Ρυθμίσεις κουμπώματος"
@@ -5687,6 +5810,11 @@ msgid "Merge from scene?"
msgstr "Συγχώνευση από σκηνή;"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet..."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "ΔημιουÏγία από σκηνή"
@@ -5698,6 +5826,10 @@ msgstr "Συγχώνευση από σκηνή"
msgid "Error"
msgstr "Σφάλμα"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "ΑκÏÏωση"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Εκτελέσιμο"
@@ -5824,10 +5956,6 @@ msgid "Imported Project"
msgstr "Εισαγμένο έÏγο"
#: editor/project_manager.cpp
-msgid " "
-msgstr " "
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr "Είναι καλή ιδέα να ονομάσετε το έÏγο σας."
@@ -5989,6 +6117,8 @@ msgid ""
"You don't currently have any projects.\n"
"Would you like to explore the official example projects in the Asset Library?"
msgstr ""
+"Δεν έχετε κανένα έÏγο.\n"
+"Θα θέλατε να εξεÏευνήσετε μεÏικά παÏαδείγματα στην βιβλιοθήκη πόÏων;"
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -6096,8 +6226,9 @@ msgid "Joypad Button Index:"
msgstr "ΑÏιθμός ÎºÎ¿Ï…Î¼Ï€Î¹Î¿Ï Joypad:"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "ΠÏοσθήκη συμβάντος ενέÏγειας εισόδου"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "ΔιαγÏαφή συμβάντος ενέÏγειας εισόδου"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6164,6 +6295,10 @@ msgid "Already existing"
msgstr "ΥπάÏχει ήδη"
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "ΠÏοσθήκη συμβάντος ενέÏγειας εισόδου"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "Σφάλμα κατά την αποθήκευση Ïυθμίσεων."
@@ -6340,6 +6475,10 @@ msgid "New Script"
msgstr "Îεα δεσμή ενεÏγειών"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr "Κάνε μοναδικό"
@@ -6371,6 +6510,11 @@ msgstr "Δυαδικό ψηφίο %d, τιμή %d."
msgid "On"
msgstr "Îαι"
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "ΠÏοσθήκη άδειου"
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "ÎŒÏισε"
@@ -6379,10 +6523,6 @@ msgstr "ÎŒÏισε"
msgid "Properties:"
msgstr "Ιδιότητες:"
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr "Ενότητες:"
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "Επιλογή ιδιότητας"
@@ -6957,6 +7097,10 @@ msgstr "ΟÏισμός από το δέντÏο"
msgid "Shortcuts"
msgstr "ΣυντομεÏσεις"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "Αλλαγή διαμέτÏου φωτός"
@@ -7005,15 +7149,55 @@ msgstr "Αλλαγή AABB σωματιδίων"
msgid "Change Probe Extents"
msgstr "Αλλαγή διαστάσεων αισθητήÏα"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "ΑφαίÏεση σημείου καμπÏλης"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Platform"
+msgstr "ΑντιγÏαφή σε πλατφόÏμα.."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "Βιβλιοθήκη"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "GDNative"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr "Βιβλιοθήκη"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr "Κατάσταση"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr "Βιβλιοθήκες: "
@@ -7720,6 +7904,25 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr "Το ARVROrigin απαιτεί έναν κόμβο ARVRCamera ως παιδί"
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "Τοποθέτηση πλεγμάτων"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "Τοποθέτηση πλεγμάτων"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr "ΟλοκλήÏωση σχεδιαγÏάμματος"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "Τοποθέτηση πλεγμάτων"
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7758,10 +7961,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr "Τοποθέτηση πλεγμάτων"
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr "ΟλοκλήÏωση σχεδιαγÏάμματος"
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7830,10 +8029,6 @@ msgid "Add current color as a preset"
msgstr "ΠÏοσθήκη του Ï„Ïέχοντος χÏώματος ως Ï€ÏοκαθοÏισμένο"
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "ΑκÏÏωση"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Ειδοποίηση!"
@@ -7842,9 +8037,8 @@ msgid "Please Confirm..."
msgstr "ΠαÏακαλώ επιβεβαιώστε..."
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select this Folder"
-msgstr "Επιλογή μεθόδου"
+msgstr "Επιλογή Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… φακέλου"
#: scene/gui/popup.cpp
msgid ""
@@ -7907,6 +8101,30 @@ msgstr "Σφάλμα κατά την φόÏτωση της γÏαμματοσεÎ
msgid "Invalid font size."
msgstr "Μη έγκυÏο μέγεθος γÏαμματοσειÏάς."
+#~ msgid "Move Add Key"
+#~ msgstr "Μετακίνηση ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Ï€Ïοσθήκης"
+
+#~ msgid "Create Subscription"
+#~ msgstr "ΔημιουÏγία εγγÏαφής"
+
+#~ msgid "List:"
+#~ msgstr "Λίστα:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "ΟÏισμός μάσκας εκπομπής"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "ΕκκαθάÏιση πομποÏ"
+
+#~ msgid "Fold Line"
+#~ msgstr "Αναδίπλωση γÏαμμής"
+
+#~ msgid " "
+#~ msgstr " "
+
+#~ msgid "Sections:"
+#~ msgstr "Ενότητες:"
+
#~ msgid "Cannot navigate to '"
#~ msgstr "ΑδÏνατη η πλοήγηση στο '"
@@ -8449,9 +8667,6 @@ msgstr "Μη έγκυÏο μέγεθος γÏαμματοσειÏάς."
#~ msgid "Making BVH"
#~ msgstr "ΔημιουÏγία BVH"
-#~ msgid "Transfer to Lightmaps:"
-#~ msgstr "ΜεταφοÏά στους χάÏτες φωτός:"
-
#~ msgid "Allocating Texture #"
#~ msgstr "Δέσμευση υφής #"
@@ -8605,9 +8820,6 @@ msgstr "Μη έγκυÏο μέγεθος γÏαμματοσειÏάς."
#~ msgid "Del"
#~ msgstr "ΔιαγÏαφή"
-#~ msgid "Copy To Platform.."
-#~ msgstr "ΑντιγÏαφή σε πλατφόÏμα.."
-
#~ msgid "just pressed"
#~ msgstr "μόλις πατήθηκε"
diff --git a/editor/translations/es.po b/editor/translations/es.po
index 0fd0d7674a..0e82da23b9 100644
--- a/editor/translations/es.po
+++ b/editor/translations/es.po
@@ -4,6 +4,7 @@
# This file is distributed under the same license as the Godot source code.
#
# Addiel Lucena Perez <addiell2017@gmail.com>, 2017.
+# Aleix Sanchis <aleixsanchis@hotmail.com>, 2017.
# Alejandro Alvarez <eliluminado00@gmail.com>, 2017.
# BLaDoM GUY <simplybladom@gmail.com>, 2017.
# Carlos López <genetita@gmail.com>, 2016.
@@ -25,8 +26,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2017-11-28 18:49+0000\n"
-"Last-Translator: Diego López <diegodario21@gmail.com>\n"
+"PO-Revision-Date: 2017-12-09 22:50+0000\n"
+"Last-Translator: Aleix Sanchis <aleixsanchis@hotmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/"
"godot/es/>\n"
"Language: es\n"
@@ -45,8 +46,9 @@ msgid "All Selection"
msgstr "Toda la selección"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Mover o añadir clave"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Cambiar valor de animación"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -57,7 +59,8 @@ msgid "Anim Change Transform"
msgstr "Cambiar transformación de animación"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Cambiar valor de animación"
#: editor/animation_editor.cpp
@@ -175,8 +178,9 @@ msgid "Constant"
msgstr "Constante"
#: editor/animation_editor.cpp
+#, fuzzy
msgid "In"
-msgstr "Entrada"
+msgstr "In"
#: editor/animation_editor.cpp
msgid "Out"
@@ -553,8 +557,9 @@ msgid "Connecting Signal:"
msgstr "Conectando señal:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Crear suscripción"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Conectar «%s» a «%s»"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -570,7 +575,8 @@ msgid "Signals"
msgstr "Señales"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Crear nuevo"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -585,7 +591,7 @@ msgstr "Recientes:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Buscar:"
@@ -626,6 +632,7 @@ msgstr ""
"Por lo que los cambios no tendrán efecto hasta que recargues."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Dependencias"
@@ -731,9 +738,10 @@ msgid "Delete selected files?"
msgstr "¿Quieres eliminar los archivos seleccionados?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Eliminar"
@@ -842,9 +850,8 @@ msgid "Error opening package file, not in zip format."
msgstr "Error al abrir el paquete, no se encuentra en formato zip."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Uncompressing Assets"
-msgstr "Descomprimir Assets"
+msgstr "Descomprimiendo Assets"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Package Installed Successfully!"
@@ -877,6 +884,11 @@ msgid "Rename Audio Bus"
msgstr "Renombrar Audio Bus"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Alternar Audio Bus Solo"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Alternar Audio Bus Solo"
@@ -889,17 +901,14 @@ msgid "Toggle Audio Bus Bypass Effects"
msgstr "Alternar efectos de bypass del Bus de Audio"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Select Audio Bus Send"
-msgstr "Seleccionar Bus de audio de envío"
+msgstr "Seleccionar Bus de Audio de envío"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add Audio Bus Effect"
msgstr "Añadir Efecto de Bus de Audio"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Move Bus Effect"
msgstr "Mover Efecto de Bus"
@@ -924,12 +933,11 @@ msgid "Bypass"
msgstr "Sobrepasar"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus options"
msgstr "Opciones del Bus"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Duplicar"
@@ -942,6 +950,10 @@ msgid "Delete Effect"
msgstr "Borrar Efecto"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "Añadir Bus de Audio"
@@ -982,9 +994,8 @@ msgid "There is no 'res://default_bus_layout.tres' file."
msgstr "No existe el archivo 'res://default_bus_layout.tres'."
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Invalid file, not an audio bus layout."
-msgstr "Archivo inválido, no es un layout de bus de audio"
+msgstr "Archivo inválido, no es un formato de bus de audio"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
@@ -1009,9 +1020,8 @@ msgid "Save As"
msgstr "Guardar como"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Save this Bus Layout to a file."
-msgstr "Guardar formato de los Audio Bus como..."
+msgstr "Guardar este Formato Bus como..."
#: editor/editor_audio_buses.cpp editor/import_dock.cpp
msgid "Load Default"
@@ -1019,7 +1029,7 @@ msgstr "Cargar Predeterminado"
#: editor/editor_audio_buses.cpp
msgid "Load the default Bus Layout."
-msgstr "Cargar Formato del Bus por defecto."
+msgstr "Cargar Formato de Bus predeterminado."
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
@@ -1100,7 +1110,8 @@ msgstr "Ruta:"
msgid "Node Name:"
msgstr "Nombre del nodo:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Nombre"
@@ -1108,10 +1119,6 @@ msgstr "Nombre"
msgid "Singleton"
msgstr "«Singleton»"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Lista:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "Actualizando escena"
@@ -1124,9 +1131,18 @@ msgstr "Guardando cambios locales.."
msgid "Updating scene.."
msgstr "Actualizando escena.."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(vacío)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
-msgstr "Por favor seleccione primero un directorio base."
+msgstr "Por favor seleccione primero un directorio base"
#: editor/editor_dir_dialog.cpp
msgid "Choose a Directory"
@@ -1170,10 +1186,26 @@ msgid "File Exists, Overwrite?"
msgstr "El archivo ya existe, ¿quieres sobreescribirlo?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
+msgstr "Seleccionar Carpeta Actual"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Copiar ruta"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Mostrar en el navegador de archivos"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+#, fuzzy
+msgid "New Folder.."
msgstr "Crear carpeta"
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Recargar"
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr "Reconocidos"
@@ -1221,10 +1253,6 @@ msgid "Go Up"
msgstr "Subir"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Recargar"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "Ver/ocultar archivos ocultos"
@@ -1275,7 +1303,7 @@ msgstr "AnalizandoFuentes"
#: editor/editor_file_system.cpp
msgid "(Re)Importing Assets"
-msgstr "Reimportando Assets"
+msgstr "(Re)Importando Assets"
#: editor/editor_help.cpp editor/editor_node.cpp
#: editor/plugins/script_editor_plugin.cpp
@@ -1328,7 +1356,7 @@ msgstr "Métodos públicos:"
#: editor/editor_help.cpp
msgid "GUI Theme Items"
-msgstr "Elementos de tema de GUI"
+msgstr "Elementos del Tema de GUI"
#: editor/editor_help.cpp
msgid "GUI Theme Items:"
@@ -1404,7 +1432,8 @@ msgstr "Salida:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "Borrar todo"
@@ -1466,9 +1495,8 @@ msgid "Creating Thumbnail"
msgstr "Creando miniatura"
#: editor/editor_node.cpp
-#, fuzzy
msgid "This operation can't be done without a tree root."
-msgstr "Esta operación no puede realizarse sin una escena."
+msgstr "Esta operación no puede realizarse sin una escena raíz."
#: editor/editor_node.cpp
msgid ""
@@ -1565,7 +1593,7 @@ msgstr ""
#: editor/editor_node.cpp
#, fuzzy
msgid "Expand all properties"
-msgstr "Expandir todo"
+msgstr "Expandir todas las propiedades"
#: editor/editor_node.cpp
#, fuzzy
@@ -1610,9 +1638,9 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
-"No se ha definido ninguna escena principal, ¿quieres elegir alguna?\n"
-"Es posible cambiarla más tarde en «Ajustes del proyecto» bajo la categoría "
-"«aplicación»."
+"No se ha definido ninguna escena principal, ¿Quieres elegir alguna?\n"
+"Es posible cambiarla más tarde en «Ajustes del Proyecto» bajo la categoría "
+"«Aplicación»."
#: editor/editor_node.cpp
msgid ""
@@ -1666,7 +1694,7 @@ msgstr "Guardar & Cerrar"
#: editor/editor_node.cpp
msgid "Save changes to '%s' before closing?"
-msgstr "¿Guardar cambios a '%s' antes de cerrar?"
+msgstr "¿Guardar cambios de '%s' antes de cerrar?"
#: editor/editor_node.cpp
msgid "Save Scene As.."
@@ -1862,7 +1890,7 @@ msgstr "Modo sin distracciones"
#: editor/editor_node.cpp
#, fuzzy
msgid "Toggle distraction-free mode."
-msgstr "Alternar Modo sin distracciones"
+msgstr "Alternar Modo sin distracciones."
#: editor/editor_node.cpp
msgid "Add a new scene."
@@ -2255,7 +2283,6 @@ msgid "Open & Run a Script"
msgstr "Abrir y ejecutar un script"
#: editor/editor_node.cpp
-#, fuzzy
msgid "New Inherited"
msgstr "Nueva escena heredada"
@@ -2292,9 +2319,8 @@ msgid "Open the previous Editor"
msgstr "Abrir Editor anterior"
#: editor/editor_plugin.cpp
-#, fuzzy
msgid "Creating Mesh Previews"
-msgstr "Crear biblioteca de modelos 3D"
+msgstr "Creando vistas previas de los modelos 3D"
#: editor/editor_plugin.cpp
msgid "Thumbnail.."
@@ -2366,17 +2392,26 @@ msgstr "Propio"
msgid "Frame #:"
msgstr "Nº de cuadro:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Tiempo:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Llamada"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "Seleccionar dispositivo de la lista"
#: editor/editor_run_native.cpp
-#, fuzzy
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the export menu."
msgstr ""
-"No se ha encontrado un preset ejecutable de exportación para esta "
+"No se ha encontrado ningún preset ejecutable de exportación para esta "
"plataforma.\n"
"Por favor, añade un preset ejecutable en el menú de exportación."
@@ -2473,7 +2508,6 @@ msgid "No version.txt found inside templates."
msgstr "No se ha encontrado el archivo version.txt dentro de las plantillas."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error creating path for templates:\n"
msgstr "Error al crear ruta para las plantillas:\n"
@@ -2510,7 +2544,8 @@ msgstr "No responde."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "Solicitud fallida."
#: editor/export_template_manager.cpp
@@ -2558,7 +2593,8 @@ msgid "Connecting.."
msgstr "Conectando.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "No se puede conectar"
#: editor/export_template_manager.cpp
@@ -2659,6 +2695,11 @@ msgid "Error moving:\n"
msgstr "Error al mover:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Error al cargar:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "No se ha podido actualizar las dependencias:\n"
@@ -2691,6 +2732,16 @@ msgid "Renaming folder:"
msgstr "Renombrar carpeta:"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Duplicar"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Renombrar carpeta:"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "Expandir todo"
@@ -2699,10 +2750,6 @@ msgid "Collapse all"
msgstr "Colapsar todo"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "Copiar ruta"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "Renombrar.."
@@ -2712,12 +2759,8 @@ msgstr "Mover a.."
#: editor/filesystem_dock.cpp
#, fuzzy
-msgid "New Folder.."
-msgstr "Crear carpeta"
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "Mostrar en el navegador de archivos"
+msgid "Open Scene(s)"
+msgstr "Abrir escena"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2733,6 +2776,11 @@ msgid "View Owners.."
msgstr "Ver propietarios.."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Duplicar"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "Carpeta anterior"
@@ -2835,6 +2883,16 @@ msgid "Importing Scene.."
msgstr "Importando escena.."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "Transfiriendo a «lightmaps»:"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "Generar AABB"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "Ejecutando script personalizado.."
@@ -3090,11 +3148,11 @@ msgstr "Copiar animación"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "Papel Cebolla"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Activar Papel Cebolla"
#: editor/plugins/animation_player_editor_plugin.cpp
#, fuzzy
@@ -3113,23 +3171,26 @@ msgstr "Textura"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Profundidad"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "1 step"
-msgstr ""
+msgstr "1 paso"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "2 steps"
-msgstr ""
+msgstr "2 pasos"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "3 steps"
-msgstr ""
+msgstr "3 pasos"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Solo las Diferencias"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
@@ -3137,7 +3198,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "Incluir Gizmos (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -3418,6 +3479,7 @@ msgid "last"
msgstr "ultimo"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Todos"
@@ -3459,6 +3521,28 @@ msgstr "Prueba"
msgid "Assets ZIP File"
msgstr "Archivo ZIP de elementos"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "Transfiriendo a «lightmaps»:"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "Vista previa"
@@ -3605,7 +3689,6 @@ msgid "Toggles snapping"
msgstr "Des/activar «breakpoint»"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "Fijar a cuadrícula"
@@ -3804,16 +3887,6 @@ msgstr "Error al instanciar escena desde %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "Muy bien :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "No hay padre al que instanciarle un hijo."
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr "Esta operación requiere un solo nodo seleccionado."
@@ -4024,6 +4097,22 @@ msgid "Create Navigation Mesh"
msgstr "Crear modelo de navegación 3D"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr "¡A MeshInstance le falta un modelo 3D!"
@@ -4064,6 +4153,20 @@ msgid "Create Outline Mesh.."
msgstr "Crear modelo 3D de contorno.."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Ver"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Ver"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr "Crear modelo 3D de contorno"
@@ -4257,10 +4360,6 @@ msgid "Create Navigation Polygon"
msgstr "Crear polígono de navegación"
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr "Borrar máscara de emisión"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
#, fuzzy
msgid "Generating AABB"
@@ -4283,10 +4382,6 @@ msgid "No pixels with transparency > 128 in image.."
msgstr "No hay píxeles con una transparencia mayor que 128 en la imagen.."
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "Establecer máscara de emisión"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
msgstr "Generar rectángulo de visibilidad"
@@ -4295,6 +4390,10 @@ msgid "Load Emission Mask"
msgstr "Cargar máscara de emisión"
#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "Borrar máscara de emisión"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
#, fuzzy
msgid "Particles"
@@ -4360,10 +4459,6 @@ msgid "Create Emission Points From Node"
msgstr "Crear emisor a partir de nodo"
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "Borrar emisor"
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr "Crear emisor"
@@ -4664,11 +4759,13 @@ msgstr "Ordenar:"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "Subir"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "Bajar"
@@ -4684,7 +4781,7 @@ msgstr "Script anterior"
msgid "File"
msgstr "Archivo"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "Nuevo"
@@ -4697,6 +4794,11 @@ msgid "Soft Reload Script"
msgstr "Recargar parcialmente el script"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Copiar ruta"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr "Previo en historial"
@@ -4897,12 +4999,7 @@ msgstr "Clonar hacia abajo"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
-msgstr "Ir a línea"
-
-#: editor/plugins/script_text_editor.cpp
-#, fuzzy
-msgid "Unfold Line"
+msgid "Fold/Unfold Line"
msgstr "Desplegar Línea"
#: editor/plugins/script_text_editor.cpp
@@ -5245,6 +5342,14 @@ msgstr "FPS"
msgid "Align with view"
msgstr "Alinear con vista"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "Muy bien :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "No hay padre al que instanciarle un hijo."
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "Mostrar normales"
@@ -5365,6 +5470,20 @@ msgid "Scale Mode (R)"
msgstr "Modo escalado (R)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "Coordenadas locales"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "Modo escalado (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Modo de fijado:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "Vista inferior"
@@ -5443,10 +5562,6 @@ msgid "Configure Snap.."
msgstr "Configurar fijado.."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "Coordenadas locales"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr "Ventana de transformación.."
@@ -5488,6 +5603,10 @@ msgid "Settings"
msgstr "Ajustes"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr "Ajustes de fijado"
@@ -5881,6 +6000,11 @@ msgid "Merge from scene?"
msgstr "¿Mergear desde escena?"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet.."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "Crear desde escena"
@@ -5892,6 +6016,10 @@ msgstr "Unir desde escena"
msgid "Error"
msgstr "Error"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Cancelar"
+
#: editor/project_export.cpp
#, fuzzy
msgid "Runnable"
@@ -6037,10 +6165,6 @@ msgid "Imported Project"
msgstr "Proyecto importado"
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr "Sería una buena idea nombrar tu proyecto."
@@ -6210,10 +6334,13 @@ msgid "Can't run project"
msgstr "Conectar.."
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"You don't currently have any projects.\n"
"Would you like to explore the official example projects in the Asset Library?"
msgstr ""
+"Actualmente no tiene ningún proyecto.\n"
+"¿Le gustaría explorar los proyectos ejemplo oficiales del Asset Library?"
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -6323,8 +6450,9 @@ msgid "Joypad Button Index:"
msgstr "Ãndice de botones del mando:"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "Añadir acción de entrada"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Borrar evento de acción de entrada"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6398,6 +6526,10 @@ msgid "Already existing"
msgstr "Des/activar persistencia"
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "Añadir acción de entrada"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "Error al guardar los ajustes."
@@ -6587,6 +6719,10 @@ msgid "New Script"
msgstr "Script siguiente"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
#, fuzzy
msgid "Make Unique"
msgstr "Crear huesos"
@@ -6623,6 +6759,11 @@ msgstr "Bit %d, valor %d."
msgid "On"
msgstr "Activado"
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "Añadir elemento vacío"
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "Establecer"
@@ -6631,10 +6772,6 @@ msgstr "Establecer"
msgid "Properties:"
msgstr "Propiedades:"
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr "Selecciones:"
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "Seleccionar Propiedad"
@@ -7235,6 +7372,10 @@ msgstr "Establecer desde árbol"
msgid "Shortcuts"
msgstr "Atajos"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "Cambiar Radio de Luces"
@@ -7284,17 +7425,57 @@ msgstr "Cambiar partículas AABB"
msgid "Change Probe Extents"
msgstr "Cambiar Alcances de Notificadores"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Quitar Punto de ruta"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Platform"
+msgstr "Copiar a plataforma…"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "MeshLibrary.."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "GDNative"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Library"
msgstr "MeshLibrary.."
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Status"
msgstr "Estado:"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr "Bibliotecas: "
@@ -7367,8 +7548,9 @@ msgid "GridMap Duplicate Selection"
msgstr "Duplicar selección"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Floor:"
-msgstr ""
+msgstr "Piso:"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
@@ -7386,8 +7568,9 @@ msgid "Previous Floor"
msgstr "Pestaña anterior"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Next Floor"
-msgstr ""
+msgstr "Próximo Piso"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
@@ -7482,8 +7665,9 @@ msgid "Pick Distance:"
msgstr "Instancia:"
#: modules/mono/editor/mono_bottom_panel.cpp
+#, fuzzy
msgid "Builds"
-msgstr ""
+msgstr "Compilaciones"
#: modules/visual_script/visual_script.cpp
msgid ""
@@ -8060,6 +8244,25 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr "ARVROrigin necesita un nodo ARVCamera hijo"
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "Copiando datos de imágenes"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "Copiando datos de imágenes"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "Copiando datos de imágenes"
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -8097,10 +8300,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr "Copiando datos de imágenes"
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -8174,10 +8373,6 @@ msgid "Add current color as a preset"
msgstr "Añadir el color actual como predefinido"
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Alerta!"
@@ -8251,6 +8446,28 @@ msgstr "Error al cargar la tipografía."
msgid "Invalid font size."
msgstr "Tamaño de tipografía incorrecto."
+#~ msgid "Move Add Key"
+#~ msgstr "Mover o añadir clave"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Crear suscripción"
+
+#~ msgid "List:"
+#~ msgstr "Lista:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "Establecer máscara de emisión"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "Borrar emisor"
+
+#, fuzzy
+#~ msgid "Fold Line"
+#~ msgstr "Ir a línea"
+
+#~ msgid "Sections:"
+#~ msgstr "Selecciones:"
+
#~ msgid "Cannot navigate to '"
#~ msgstr "No se puede navegar a '"
@@ -8806,9 +9023,6 @@ msgstr "Tamaño de tipografía incorrecto."
#~ msgid "Making BVH"
#~ msgstr "Creando BVH"
-#~ msgid "Transfer to Lightmaps:"
-#~ msgstr "Transfiriendo a «lightmaps»:"
-
#~ msgid "Allocating Texture #"
#~ msgstr "Asignando nº de textura"
@@ -8968,9 +9182,6 @@ msgstr "Tamaño de tipografía incorrecto."
#~ msgid "Del"
#~ msgstr "Eliminar"
-#~ msgid "Copy To Platform.."
-#~ msgstr "Copiar a plataforma…"
-
#~ msgid "just pressed"
#~ msgstr "se presione"
diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po
index 4b84add916..eacbe22f45 100644
--- a/editor/translations/es_AR.po
+++ b/editor/translations/es_AR.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2017-11-29 03:50+0000\n"
+"PO-Revision-Date: 2017-11-30 15:50+0000\n"
"Last-Translator: Diego López <diegodario21@gmail.com>\n"
"Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/"
"godot-engine/godot/es_AR/>\n"
@@ -32,8 +32,9 @@ msgid "All Selection"
msgstr "Toda la Selección"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Mover o Agregar Clave"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Cambiar valor de animación"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -44,7 +45,8 @@ msgid "Anim Change Transform"
msgstr "Cambiar Transform de Anim"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Cambiar valor de animación"
#: editor/animation_editor.cpp
@@ -247,7 +249,6 @@ msgid "Animation zoom."
msgstr "Zoom de animación."
#: editor/animation_editor.cpp
-#, fuzzy
msgid "Length (s):"
msgstr "Duración (seg):"
@@ -329,9 +330,8 @@ msgid "Scale Ratio:"
msgstr "Ratio de Escala:"
#: editor/animation_editor.cpp
-#, fuzzy
msgid "Call Functions in Which Node?"
-msgstr "Llamar Funciones en Cual Nodo?"
+msgstr "Llamar Funciones en Cuál Nodo?"
#: editor/animation_editor.cpp
msgid "Remove invalid keys"
@@ -541,8 +541,9 @@ msgid "Connecting Signal:"
msgstr "Conectando Señal:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Crear Subscripción"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Conectar '%s' a '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -558,7 +559,8 @@ msgid "Signals"
msgstr "Señales"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Crear Nuevo"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -573,7 +575,7 @@ msgstr "Recientes:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Buscar:"
@@ -612,6 +614,7 @@ msgid ""
msgstr "El recurso '%s' está en uso. Los cambios tendrán efecto al recargarlo."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Dependencias"
@@ -716,9 +719,10 @@ msgid "Delete selected files?"
msgstr "Eliminar archivos seleccionados?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Eliminar"
@@ -861,6 +865,11 @@ msgid "Rename Audio Bus"
msgstr "Renombrar Bus de Audio"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Act./Desact. Solo de Bus de Audio"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Act./Desact. Solo de Bus de Audio"
@@ -908,8 +917,8 @@ msgstr "Bypass"
msgid "Bus options"
msgstr "Opciones de Bus"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Duplicar"
@@ -922,6 +931,10 @@ msgid "Delete Effect"
msgstr "Eliminar Efecto"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "Agregar Bus de Audio"
@@ -1078,7 +1091,8 @@ msgstr "Ruta:"
msgid "Node Name:"
msgstr "Nombre de Nodo:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Nombre"
@@ -1086,10 +1100,6 @@ msgstr "Nombre"
msgid "Singleton"
msgstr "Singleton"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Lista:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "Actualizando Escena"
@@ -1102,6 +1112,15 @@ msgstr "Guardando cambios locales.."
msgid "Updating scene.."
msgstr "Actualizando escena.."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(vacío)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "Por favor elegí un directorio base primero"
@@ -1148,9 +1167,24 @@ msgid "File Exists, Overwrite?"
msgstr "El Archivo Existe, Sobreescribir?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "Crear Carpeta"
+msgstr "Seleccionar Carpeta Actual"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Copiar Ruta"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Mostrar en Gestor de Archivos"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Nueva Carpeta.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Refrescar"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1199,10 +1233,6 @@ msgid "Go Up"
msgstr "Subir"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Refrescar"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "Act/Desact. Archivos Ocultos"
@@ -1382,7 +1412,8 @@ msgstr "Salida:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "Limpiar"
@@ -1541,14 +1572,12 @@ msgstr ""
"este workflow."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand all properties"
-msgstr "Expandir todos"
+msgstr "Expandir todas las propiedades"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Collapse all properties"
-msgstr "Colapsar todos"
+msgstr "Colapsar todas las propiedades"
#: editor/editor_node.cpp
msgid "Copy Params"
@@ -2341,6 +2370,16 @@ msgstr "Propio"
msgid "Frame #:"
msgstr "Frame #:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Tiempo:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Llamar"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "Seleccionar dispositivo de la lista"
@@ -2483,7 +2522,8 @@ msgstr "Sin respuesta."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "Solicitud fallida."
#: editor/export_template_manager.cpp
@@ -2530,7 +2570,8 @@ msgid "Connecting.."
msgstr "Conectando.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "No se puede conectar"
#: editor/export_template_manager.cpp
@@ -2627,6 +2668,11 @@ msgid "Error moving:\n"
msgstr "Error al mover:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Error cargando:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "No se pudieron actualizar las dependencias:\n"
@@ -2659,6 +2705,16 @@ msgid "Renaming folder:"
msgstr "Renombrar carpeta:"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Duplicar"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Renombrar carpeta:"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "Expandir todos"
@@ -2667,10 +2723,6 @@ msgid "Collapse all"
msgstr "Colapsar todos"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "Copiar Ruta"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "Renombrar.."
@@ -2679,12 +2731,9 @@ msgid "Move To.."
msgstr "Mover A.."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "Nueva Carpeta.."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "Mostrar en Gestor de Archivos"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Abrir Escena"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2699,6 +2748,11 @@ msgid "View Owners.."
msgstr "Ver Dueños.."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Duplicar"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "Directorio Previo"
@@ -2711,7 +2765,6 @@ msgid "Re-Scan Filesystem"
msgstr "Reexaminar Sistema de Archivos"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Toggle folder status as Favorite"
msgstr "Act/Desact. estado de carpeta como Favorito"
@@ -2795,6 +2848,16 @@ msgid "Importing Scene.."
msgstr "Importando Escena.."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "Transferencia a Lightmaps:"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "Generando AABB"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "Ejecutando Script Personalizado.."
@@ -3042,54 +3105,51 @@ msgstr "Copiar Animación"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "Onion Skinning"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Activar Onion Skinning"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "Selecciones:"
+msgstr "Direcciones"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Past"
-msgstr "Pegar"
+msgstr "Pasado"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Future"
-msgstr "Características"
+msgstr "Futuro"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Profundidad"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 paso"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 pasos"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 pasos"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Solo Diferencias"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
-msgstr ""
+msgstr "Forzar Modulado a Blanco"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "Incluir Gizmos (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -3366,6 +3426,7 @@ msgid "last"
msgstr "último"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Todos"
@@ -3407,6 +3468,28 @@ msgstr "Testeo"
msgid "Assets ZIP File"
msgstr "Archivo ZIP de Assets"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "Transferencia a Lightmaps:"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "Vista Previa"
@@ -3545,7 +3628,6 @@ msgid "Toggles snapping"
msgstr "Act/Desact. alineado"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "Usar Snap"
@@ -3725,16 +3807,6 @@ msgstr "Error al instanciar escena desde %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "OK :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "No hay padre al que instanciarle un hijo."
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr "Esta operación requiere un solo nodo seleccionado."
@@ -3930,6 +4002,22 @@ msgid "Create Navigation Mesh"
msgstr "Crear Mesh de Navegación"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr "A MeshInstance le falta un Mesh!"
@@ -3970,6 +4058,20 @@ msgid "Create Outline Mesh.."
msgstr "Crear Outline Mesh.."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Ver"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Ver"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr "Crear Outline Mesh"
@@ -4147,10 +4249,6 @@ msgid "Create Navigation Polygon"
msgstr "Crear Polígono de Navegación"
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr "Limpiar Máscara de Emisión"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr "Generando AABB"
@@ -4169,10 +4267,6 @@ msgid "No pixels with transparency > 128 in image.."
msgstr "Sin pixeles con transparencia > 128 en imagen.."
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "Setear Máscara de Emisión"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
msgstr "Generar Rect. de Visibilidad"
@@ -4181,6 +4275,10 @@ msgid "Load Emission Mask"
msgstr "Cargar Máscara de Emisión"
#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "Limpiar Máscara de Emisión"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
msgstr "Partículas"
@@ -4239,10 +4337,6 @@ msgid "Create Emission Points From Node"
msgstr "Crear Puntos de Emisión Desde Nodo"
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "Limpiar Emisor"
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr "Crear Emisor"
@@ -4527,11 +4621,13 @@ msgstr "Ordenar"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "Subir"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "Bajar"
@@ -4547,7 +4643,7 @@ msgstr "Script anterior"
msgid "File"
msgstr "Archivo"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "Nuevo"
@@ -4560,6 +4656,11 @@ msgid "Soft Reload Script"
msgstr "Recarga Soft de Script"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Copiar Ruta"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr "Previo en Historial"
@@ -4750,11 +4851,8 @@ msgid "Clone Down"
msgstr "Clonar hacia Abajo"
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr "Colapsar Línea"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+#, fuzzy
+msgid "Fold/Unfold Line"
msgstr "Expandir Línea"
#: editor/plugins/script_text_editor.cpp
@@ -5082,6 +5180,14 @@ msgstr "FPS"
msgid "Align with view"
msgstr "Alinear con vista"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "OK :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "No hay padre al que instanciarle un hijo."
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "Mostrar Normal"
@@ -5189,6 +5295,20 @@ msgid "Scale Mode (R)"
msgstr "Modo de Escalado (R)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "Coordenadas Locales"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "Modo de Escalado (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Modo Snap:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "Vista Inferior"
@@ -5261,10 +5381,6 @@ msgid "Configure Snap.."
msgstr "Configurar Snap.."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "Coordenadas Locales"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr "Dialogo de Transformación.."
@@ -5306,6 +5422,10 @@ msgid "Settings"
msgstr "Configuración"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr "Ajustes de Snap"
@@ -5688,6 +5808,11 @@ msgid "Merge from scene?"
msgstr "¿Mergear desde escena?"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet.."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "Crear desde Escena"
@@ -5699,6 +5824,10 @@ msgstr "Mergear desde Escena"
msgid "Error"
msgstr "Error"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Cancelar"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Ejecutable"
@@ -5827,10 +5956,6 @@ msgid "Imported Project"
msgstr "Proyecto Importado"
#: editor/project_manager.cpp
-msgid " "
-msgstr " "
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr "Sería buena idea darle un nombre a tu proyecto."
@@ -5993,6 +6118,8 @@ msgid ""
"You don't currently have any projects.\n"
"Would you like to explore the official example projects in the Asset Library?"
msgstr ""
+"Actualmente no tenés ningun proyecto.\n"
+"Te gustaría explorar los ejemplos oficiales en la Biblioteca de Assets?"
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -6100,8 +6227,9 @@ msgid "Joypad Button Index:"
msgstr "Indice del Boton del Gamepad:"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "Agregar Acción de Entrada"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Borrar Evento de Acción de Entrada"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6168,6 +6296,10 @@ msgid "Already existing"
msgstr "Ya existe"
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "Agregar Acción de Entrada"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "Error al guardar los ajustes."
@@ -6344,6 +6476,10 @@ msgid "New Script"
msgstr "Nuevo Script"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr "Convertir en Unico"
@@ -6375,6 +6511,11 @@ msgstr "Bit %d, val %d."
msgid "On"
msgstr "On"
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "Agregar Vacío"
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "Setear"
@@ -6383,10 +6524,6 @@ msgstr "Setear"
msgid "Properties:"
msgstr "Propiedades:"
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr "Selecciones:"
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "Seleccionar Propiedad"
@@ -6955,6 +7092,10 @@ msgstr "Setear Desde Arbol"
msgid "Shortcuts"
msgstr "Atajos"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "Cambiar Radio de Luces"
@@ -7003,15 +7144,55 @@ msgstr "Cambiar Particulas AABB"
msgid "Change Probe Extents"
msgstr "Cambiar Extensión de Sonda"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Quitar Punto de Curva"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Platform"
+msgstr "Copiar A Plataforma.."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "Biblioteca"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "GDNative"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr "Biblioteca"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr "Estado"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr "Bibliotecas: "
@@ -7186,13 +7367,12 @@ msgstr ""
"documentacion sobre como usar yield correctamente!"
#: modules/visual_script/visual_script.cpp
-#, fuzzy
msgid ""
"Node yielded, but did not return a function state in the first working "
"memory."
msgstr ""
-"El nodo rindió (yielded), pero no retornó un estado de función en la primera "
-"memoria de trabajo."
+"Un nodo ejecutó un «yield» pero no devolvió un estado de función en la "
+"memoria de trabajo original."
#: modules/visual_script/visual_script.cpp
msgid ""
@@ -7249,7 +7429,7 @@ msgstr "El nombre no es un identificador válido:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Name already in use by another func/var/signal:"
-msgstr "El nombre ya esta en uso por otra func/var/señal:"
+msgstr "El nombre ya está en uso por otra función/variable/señal:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Function"
@@ -7714,6 +7894,25 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr "ARVROrigin requiere un nodo hijo ARVRCamera"
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "Ploteando Meshes"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "Ploteando Meshes"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr "Terminando Ploteo"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "Ploteando Meshes"
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7750,10 +7949,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr "Ploteando Meshes"
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr "Terminando Ploteo"
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7819,10 +8014,6 @@ msgid "Add current color as a preset"
msgstr "Agregar color actual como preset"
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Alerta!"
@@ -7831,9 +8022,8 @@ msgid "Please Confirm..."
msgstr "Confirmá, por favor..."
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select this Folder"
-msgstr "Seleccionar Método"
+msgstr "Seleccionar esta Carpeta"
#: scene/gui/popup.cpp
msgid ""
@@ -7895,6 +8085,30 @@ msgstr "Error cargando tipografía."
msgid "Invalid font size."
msgstr "Tamaño de tipografía inválido."
+#~ msgid "Move Add Key"
+#~ msgstr "Mover o Agregar Clave"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Crear Subscripción"
+
+#~ msgid "List:"
+#~ msgstr "Lista:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "Setear Máscara de Emisión"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "Limpiar Emisor"
+
+#~ msgid "Fold Line"
+#~ msgstr "Colapsar Línea"
+
+#~ msgid " "
+#~ msgstr " "
+
+#~ msgid "Sections:"
+#~ msgstr "Selecciones:"
+
#~ msgid "Cannot navigate to '"
#~ msgstr "No se puede navegar a '"
@@ -8434,9 +8648,6 @@ msgstr "Tamaño de tipografía inválido."
#~ msgid "Making BVH"
#~ msgstr "Creando BVH"
-#~ msgid "Transfer to Lightmaps:"
-#~ msgstr "Transferencia a Lightmaps:"
-
#~ msgid "Allocating Texture #"
#~ msgstr "Asignando Textura #"
@@ -8588,9 +8799,6 @@ msgstr "Tamaño de tipografía inválido."
#~ msgid "Del"
#~ msgstr "Eliminar"
-#~ msgid "Copy To Platform.."
-#~ msgstr "Copiar A Plataforma.."
-
#~ msgid "just pressed"
#~ msgstr "recién presionado"
diff --git a/editor/translations/fa.po b/editor/translations/fa.po
index bcd06f9051..a3ac63f911 100644
--- a/editor/translations/fa.po
+++ b/editor/translations/fa.po
@@ -31,8 +31,9 @@ msgid "All Selection"
msgstr "همه‌ی انتخاب ها"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "کلید Add را جابجا کن"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "مقدار را در انیمیشن تغییر بده"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -43,7 +44,8 @@ msgid "Anim Change Transform"
msgstr "انتقال را در انیمیشن تغییر بده"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "مقدار را در انیمیشن تغییر بده"
#: editor/animation_editor.cpp
@@ -538,8 +540,9 @@ msgid "Connecting Signal:"
msgstr "اتصال سیگنال:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr ""
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "'s%' را به 's%' متصل کن"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -555,7 +558,8 @@ msgid "Signals"
msgstr "سیگنال‌ها"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "ساختن جدید"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -570,7 +574,7 @@ msgstr ""
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "جستجو:"
@@ -611,6 +615,7 @@ msgstr ""
"تغییرات با بارگذاری مجدد مؤثر خواهد بود."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "بستگی‌ها"
@@ -714,9 +719,10 @@ msgid "Delete selected files?"
msgstr "آیا پرونده‌های انتخاب شده حذ٠شود؟"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "حذ٠کن"
@@ -855,6 +861,11 @@ msgid "Rename Audio Bus"
msgstr ""
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "مقدار آرایه را تغییر بده"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr ""
@@ -902,8 +913,8 @@ msgstr ""
msgid "Bus options"
msgstr ""
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr ""
@@ -916,6 +927,10 @@ msgid "Delete Effect"
msgstr "حذ٠اثر"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr ""
@@ -1070,7 +1085,8 @@ msgstr "مسیر:"
msgid "Node Name:"
msgstr "نام گره:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr ""
@@ -1078,10 +1094,6 @@ msgstr ""
msgid "Singleton"
msgstr ""
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr ""
@@ -1094,6 +1106,15 @@ msgstr ""
msgid "Updating scene.."
msgstr ""
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(خالی)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr ""
@@ -1144,6 +1165,22 @@ msgstr "ÙØ§ÛŒÙ„ وجود دارد، آیا بازنویسی شود؟"
msgid "Select Current Folder"
msgstr "ساختن پوشه"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "ساختن پوشه.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr "همه ی موارد شناخته شده اند"
@@ -1191,10 +1228,6 @@ msgid "Go Up"
msgstr ""
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr ""
@@ -1370,7 +1403,8 @@ msgstr "خروجی:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "پاک کردن"
@@ -2266,6 +2300,16 @@ msgstr ""
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "زمان:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "ÙØ±Ø§Ø®ÙˆØ§Ù†ÛŒ"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr ""
@@ -2401,8 +2445,9 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
-msgstr ""
+#, fuzzy
+msgid "Request Failed."
+msgstr "در حال درخواست.."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -2449,7 +2494,8 @@ msgid "Connecting.."
msgstr "در حال اتصال.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "ناتوان در اتصال"
#: editor/export_template_manager.cpp
@@ -2542,6 +2588,11 @@ msgstr "خطا در بارگذاری:"
#: editor/filesystem_dock.cpp
#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "خطا در بارگذاری:"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
msgid "Unable to update dependencies:\n"
msgstr "خطا در بارگذاری صحنه به دلیل بستگی‌های Ù…Ùقود:"
@@ -2576,15 +2627,20 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "تغییر متغیر"
+
+#: editor/filesystem_dock.cpp
+msgid "Duplicating folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
+msgid "Expand all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
@@ -2596,12 +2652,9 @@ msgid "Move To.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "ساختن پوشه.."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr ""
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "باز کردن صحنه"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2616,6 +2669,11 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "انتخاب شده را به دو تا تکثیر کن"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2708,6 +2766,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3275,6 +3341,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "همه"
@@ -3316,6 +3383,27 @@ msgstr "آزمودن"
msgid "Assets ZIP File"
msgstr "ÙØ§ÛŒÙ„ های ZIP‌ منابع بازی"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3453,7 +3541,6 @@ msgid "Toggles snapping"
msgstr "یک Breakpoint درج کن"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3633,16 +3720,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3837,6 +3914,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3877,6 +3970,20 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "پرونده:"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "پرونده:"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4053,10 +4160,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4074,15 +4177,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4144,10 +4247,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4435,11 +4534,13 @@ msgstr "مرتب‌سازی:"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4455,7 +4556,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4468,6 +4569,11 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "رونوشت مسیر گره"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4659,14 +4765,10 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
+msgid "Fold/Unfold Line"
msgstr "برو به خط"
#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
msgstr ""
@@ -4994,6 +5096,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5103,6 +5213,19 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "انتخاب حالت"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5176,10 +5299,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5221,6 +5340,10 @@ msgid "Settings"
msgstr "ترجیحات"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5608,6 +5731,11 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "صدور مجموعه کاشی"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5619,6 +5747,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "لغو"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5741,10 +5873,6 @@ msgid "Imported Project"
msgstr "پروژه واردشده"
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -6003,8 +6131,9 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "Ø§ÙØ²ÙˆØ¯Ù† عمل ورودی"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "حذ٠رویداد عمل ورودی"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6071,6 +6200,10 @@ msgid "Already existing"
msgstr "پیش از این وجود داشته است"
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "Ø§ÙØ²ÙˆØ¯Ù† عمل ورودی"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "خطای ذخیرهٔ تنظیمات."
@@ -6248,6 +6381,10 @@ msgid "New Script"
msgstr "صحنه جدید"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6280,6 +6417,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6288,10 +6429,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
#, fuzzy
msgid "Select Property"
@@ -6857,6 +6994,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6905,17 +7046,56 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "حذ٠نقطهٔ منحنی"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "صادکردن ÙØ§ÛŒÙ„ کتابخانه ای"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "صادکردن ÙØ§ÛŒÙ„ کتابخانه ای"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Library"
msgstr "صادکردن ÙØ§ÛŒÙ„ کتابخانه ای"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Status"
msgstr "وضعیت:"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7632,6 +7812,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7670,10 +7866,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr "یک منبع NavigationMesh باید برای یک گره تنظیم یا ایجاد شود تا کار کند."
@@ -7733,10 +7925,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "لغو"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "هشدار!"
@@ -7804,6 +7992,9 @@ msgstr "خطای بارگذاری قلم."
msgid "Invalid font size."
msgstr "اندازهٔ قلم نامعتبر."
+#~ msgid "Move Add Key"
+#~ msgstr "کلید Add را جابجا کن"
+
#, fuzzy
#~ msgid ""
#~ "\n"
diff --git a/editor/translations/fi.po b/editor/translations/fi.po
index afa22fa263..751c5a9718 100644
--- a/editor/translations/fi.po
+++ b/editor/translations/fi.po
@@ -3,6 +3,7 @@
# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
+# basse <basse@roiske.org>, 2017.
# Bastian Salmela <bastian.salmela@gmail.com>, 2017.
# ekeimaja <ekeimaja@gmail.com>, 2017.
# Jarmo Riikonen <amatrelan@gmail.com>, 2017.
@@ -10,7 +11,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-28 13:44+0000\n"
+"PO-Revision-Date: 2017-12-03 11:31+0000\n"
"Last-Translator: Bastian Salmela <bastian.salmela@gmail.com>\n"
"Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/"
"godot/fi/>\n"
@@ -30,8 +31,8 @@ msgstr "Koko valinta"
#: editor/animation_editor.cpp
#, fuzzy
-msgid "Move Add Key"
-msgstr "Siirrä lisäyspainiketta"
+msgid "Anim Change Keyframe Time"
+msgstr "Animaatio: muuta arvoa"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -39,10 +40,11 @@ msgstr "Vaihda animaation siirtymää"
#: editor/animation_editor.cpp
msgid "Anim Change Transform"
-msgstr "Vaihda animaation muunnosta"
+msgstr "Animaatio: muuta siirtymää"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Animaatio: muuta arvoa"
#: editor/animation_editor.cpp
@@ -493,7 +495,6 @@ msgid "Remove"
msgstr "Poista"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Add Extra Call Argument:"
msgstr "Lisää ylimääräinen argumentti kutsulle:"
@@ -544,8 +545,9 @@ msgid "Connecting Signal:"
msgstr "Yhdistävä signaali:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Luo tilaus"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Yhdistä '%s' '%s':n"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -561,7 +563,8 @@ msgid "Signals"
msgstr "Signaalit"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Luo uusi"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -576,7 +579,7 @@ msgstr "Viimeaikaiset:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Hae:"
@@ -617,6 +620,7 @@ msgstr ""
"Muutokset tulevat voimaan päivitettäessä."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Riippuvuudet"
@@ -723,9 +727,10 @@ msgid "Delete selected files?"
msgstr "Poista valitut tiedostot?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Poista"
@@ -870,6 +875,11 @@ msgid "Rename Audio Bus"
msgstr "Nimeä väylä uudelleen"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Ääniväylä sooloksi"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Ääniväylä sooloksi"
@@ -917,8 +927,8 @@ msgstr "Ohita"
msgid "Bus options"
msgstr "Väylän asetukset"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Monista"
@@ -931,6 +941,10 @@ msgid "Delete Effect"
msgstr "Poista efekti"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "Lisää ääniväylä"
@@ -1090,7 +1104,8 @@ msgstr "Polku:"
msgid "Node Name:"
msgstr "Noden nimi:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Nimi"
@@ -1099,10 +1114,6 @@ msgstr "Nimi"
msgid "Singleton"
msgstr "Ainokainen"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Lista:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "Päivitetään skeneä"
@@ -1115,6 +1126,15 @@ msgstr "Varastoidaan paikalliset muutokset..."
msgid "Updating scene.."
msgstr "Päivitetään skeneä..."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(tyhjä)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "Valitse ensin päähakemisto"
@@ -1165,6 +1185,22 @@ msgstr "Tiedosto on jo olemassa, korvaa?"
msgid "Select Current Folder"
msgstr "Luo kansio"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Kopioi polku"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Näytä tiedostonhallinnassa"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Luo kansio..."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Päivitä"
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr "Kaikki tunnistetut"
@@ -1212,10 +1248,6 @@ msgid "Go Up"
msgstr "Mene ylös"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Päivitä"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "Näytä piilotiedostot"
@@ -1349,7 +1381,7 @@ msgstr "Animaatiot"
#: editor/editor_help.cpp
msgid "enum "
-msgstr ""
+msgstr "enum"
#: editor/editor_help.cpp
#, fuzzy
@@ -1411,7 +1443,8 @@ msgstr " Tuloste:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "Tyhjennä"
@@ -1492,7 +1525,7 @@ msgstr "Resurssin lataaminen epäonnistui."
#: editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
-msgstr ""
+msgstr "MalliKirjastojen yhdistäminen ei onnistunut!"
#: editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
@@ -1568,8 +1601,7 @@ msgid ""
"this workflow."
msgstr ""
"Tämä on etä-objekti, joten siihen tehtyjä muutoksia ei säilytetä.\n"
-"Ole hyvä ja lue ohjeet debuggaamisesta ymmärtääksesi paremmin tämän "
-"työnkulun."
+"Ole hyvä ja lue ohjeet testaamisesta ymmärtääksesi paremmin tämän työnkulun."
#: editor/editor_node.cpp
#, fuzzy
@@ -1669,9 +1701,8 @@ msgid "Quick Open Script.."
msgstr "Nopea skriptin avaus..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Save & Close"
-msgstr "Tallenna tiedosto"
+msgstr "Tallenna ja sulje"
#: editor/editor_node.cpp
#, fuzzy
@@ -1683,9 +1714,8 @@ msgid "Save Scene As.."
msgstr "Tallenna scene nimellä..."
#: editor/editor_node.cpp
-#, fuzzy
msgid "No"
-msgstr "Node"
+msgstr "Ei"
#: editor/editor_node.cpp
msgid "Yes"
@@ -1697,25 +1727,23 @@ msgstr "Tätä sceneä ei ole koskaan tallennettu. Tallenna ennen suorittamista?
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "This operation can't be done without a scene."
-msgstr "Tätä toimintoa ei voi tehdä ilman Sceneä."
+msgstr "Tätä toimintoa ei voi tehdä ilman sceneä."
#: editor/editor_node.cpp
msgid "Export Mesh Library"
-msgstr "Tuo Mesh-kirjasto"
+msgstr "Vie malli kirjasto"
#: editor/editor_node.cpp
-#, fuzzy
msgid "This operation can't be done without a root node."
-msgstr "Tätä toimintoa ei voi tehdä ilman Sceneä."
+msgstr "Tätä toimintoa ei voida suorittaa ilman päänodea."
#: editor/editor_node.cpp
msgid "Export Tile Set"
-msgstr "Tuo tileset"
+msgstr "Vie tileset"
#: editor/editor_node.cpp
-#, fuzzy
msgid "This operation can't be done without a selected node."
-msgstr "Tätä toimintoa ei voi tehdä ilman Sceneä."
+msgstr "Tätä toimintoa ei voi tehdä ilman valittua nodea."
#: editor/editor_node.cpp
msgid "Current scene not saved. Open anyway?"
@@ -1746,14 +1774,12 @@ msgid "Exit the editor?"
msgstr "Poistu editorista?"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open Project Manager?"
-msgstr "Projektinhallinta"
+msgstr "Projektienhallinta"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Save & Quit"
-msgstr "Tallenna tiedosto"
+msgstr "Tallenna ja lopeta"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before quitting?"
@@ -1779,25 +1805,25 @@ msgstr "Valitse pääscene"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
-msgstr ""
+msgstr "Lisäosan '%s' aktivointi epäonnistui, virheellinen asetustiedosto."
#: editor/editor_node.cpp
msgid "Unable to find script field for addon plugin at: 'res://addons/%s'."
msgstr ""
#: editor/editor_node.cpp
-#, fuzzy
msgid "Unable to load addon script from path: '%s'."
-msgstr "Virhe ladattaessa skripti %s:stä"
+msgstr "Virhe ladattaessa lisäosaa polusta: '%s'."
#: editor/editor_node.cpp
msgid ""
"Unable to load addon script from path: '%s' Base type is not EditorPlugin."
-msgstr ""
+msgstr "Virhe ladattaessa lisäosaa polusta: '%s'. Tyyppi ei ole EditorPlugin."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
msgstr ""
+"Virhe ladattaessa lisäosaa polusta: '%s'. Skripti ei ole työkalu-tilassa."
#: editor/editor_node.cpp
msgid ""
@@ -1825,17 +1851,16 @@ msgid "Scene '%s' has broken dependencies:"
msgstr "Scenellä '%s' on rikkinäisiä riippuvuuksia:"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Clear Recent Scenes"
-msgstr "Tyhjennä luut"
+msgstr "Tyhjennä viimeiset scenet"
#: editor/editor_node.cpp
msgid "Save Layout"
-msgstr "Tallenna Layout"
+msgstr "Tallenna asettelut"
#: editor/editor_node.cpp
msgid "Delete Layout"
-msgstr "Poista Layout"
+msgstr "Poista asettelu"
#: editor/editor_node.cpp editor/import_dock.cpp
#: editor/script_create_dialog.cpp
@@ -1847,19 +1872,16 @@ msgid "Switch Scene Tab"
msgstr "Vaihda Scenen välilehteä"
#: editor/editor_node.cpp
-#, fuzzy
msgid "%d more files or folders"
-msgstr "%d muuta tiedostoa"
+msgstr "Vielä %d tiedostoa tai hakemistoa"
#: editor/editor_node.cpp
-#, fuzzy
msgid "%d more folders"
-msgstr "%d muuta tiedostoa"
+msgstr "Vielä %d hakemistoa"
#: editor/editor_node.cpp
-#, fuzzy
msgid "%d more files"
-msgstr "%d muuta tiedostoa"
+msgstr "Vielä %d tiedostoa"
#: editor/editor_node.cpp
msgid "Dock Position"
@@ -1874,17 +1896,16 @@ msgid "Toggle distraction-free mode."
msgstr "Käytä häiriötöntä tilaa."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Add a new scene."
-msgstr "Lisää uusia raitoja."
+msgstr "Lisää uusi skene."
#: editor/editor_node.cpp
msgid "Scene"
-msgstr "Näkymä"
+msgstr "Skene"
#: editor/editor_node.cpp
msgid "Go to previously opened scene."
-msgstr "Mene aiemmin avattuun sceneen."
+msgstr "Mene aiemmin avattuun skeneen."
#: editor/editor_node.cpp
msgid "Next tab"
@@ -1900,31 +1921,31 @@ msgstr "Suodata tiedostot..."
#: editor/editor_node.cpp
msgid "Operations with scene files."
-msgstr ""
+msgstr "Toiminnot skene tiedostoille."
#: editor/editor_node.cpp
msgid "New Scene"
-msgstr "Uusi Scene"
+msgstr "Uusi skene"
#: editor/editor_node.cpp
msgid "New Inherited Scene.."
-msgstr "Uusi peritty Scene..."
+msgstr "Uusi peritty skene..."
#: editor/editor_node.cpp
msgid "Open Scene.."
-msgstr "Avaa Scene..."
+msgstr "Avaa skene..."
#: editor/editor_node.cpp
msgid "Save Scene"
-msgstr "Tallenna scene"
+msgstr "Tallenna skene"
#: editor/editor_node.cpp
msgid "Save all Scenes"
-msgstr "Tallenna kaikki scenet"
+msgstr "Tallenna kaikki skenet"
#: editor/editor_node.cpp
msgid "Close Scene"
-msgstr "Sulje scene"
+msgstr "Sulje skene"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Open Recent"
@@ -1954,11 +1975,11 @@ msgstr "Tee uudelleen"
#: editor/editor_node.cpp
msgid "Revert Scene"
-msgstr "Palauta Scene"
+msgstr "Palauta skene"
#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
-msgstr ""
+msgstr "Sekalaiset projekti- tai skenetyökalut."
#: editor/editor_node.cpp
#, fuzzy
@@ -1987,17 +2008,19 @@ msgstr "Lopeta ja palaa projektiluetteloon"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Debug"
-msgstr ""
+msgstr "Testaa"
#: editor/editor_node.cpp
msgid "Deploy with Remote Debug"
-msgstr ""
+msgstr "Julkaise etätestauksen kasnsa"
#: editor/editor_node.cpp
msgid ""
"When exporting or deploying, the resulting executable will attempt to "
"connect to the IP of this computer in order to be debugged."
msgstr ""
+"Vietäessä tai julkaistaessa, käynnistystiedosto yrittää ottaa yhteyden tämän "
+"tietokoneen IP osoitteeseen testaamista varten."
#: editor/editor_node.cpp
msgid "Small Deploy with Network FS"
@@ -2012,6 +2035,12 @@ msgid ""
"On Android, deploy will use the USB cable for faster performance. This "
"option speeds up testing for games with a large footprint."
msgstr ""
+"Kun tämä on valittuna, vienti tai julkaisu tuottaa pienimmän mahdollisen "
+"käynnistystiedoston.\n"
+"Tiedostojärjestelmän tarjoaa projektin editori, verkon kautta. \n"
+"Androidilla julkaisu käyttää USB kaapelia nopeamman toimivuuden "
+"saavuttamiseksi. Tämä nopeuttaa testaamista varsinkin suurempien pelien "
+"kohdalla."
#: editor/editor_node.cpp
#, fuzzy
@@ -2023,8 +2052,8 @@ msgid ""
"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
"running game if this option is turned on."
msgstr ""
-"Osuma-alueet ja raycast nodet (2D ja 3D) ovat näkyvillä peliä ajettaessa jos "
-"tämä on valittu."
+"Osuma-alueet ja raycast nodet (2D ja 3D) ovat näkyvillä peliä ajettaessa "
+"tämän ollessa valittuna."
#: editor/editor_node.cpp
msgid "Visible Navigation"
@@ -2035,12 +2064,12 @@ msgid ""
"Navigation meshes and polygons will be visible on the running game if this "
"option is turned on."
msgstr ""
-"Navigaation muodot ja polygonit ovat näkyvillä peliä ajettaessa mikäli tämä "
-"on valittu."
+"Navigaatiomuodot ja -polygonit ovat näkyvillä peliä ajettaessa tämän ollessa "
+"valittuna."
#: editor/editor_node.cpp
msgid "Sync Scene Changes"
-msgstr "Synkronoi Scenen muutokset"
+msgstr "Synkronoi skenen muutokset"
#: editor/editor_node.cpp
msgid ""
@@ -2049,6 +2078,10 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
+"Tämän ollessa valittuna, kaikki skeneen tehdyt muutokset toteutetaan myös "
+"käynnissä olevassa pelissä.\n"
+"Tämä on tehokkainta verkkotiedostojärjestelmän kanssa mikäli käytössä on "
+"etälaite."
#: editor/editor_node.cpp
msgid "Sync Script Changes"
@@ -2211,9 +2244,8 @@ msgid "Object properties."
msgstr "Objektin ominaisuudet."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Changes may be lost!"
-msgstr "Vaihda säteen muodon pituutta"
+msgstr "Muutokset saatetaan menettää!"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
#: editor/project_manager.cpp
@@ -2274,34 +2306,28 @@ msgid "Select"
msgstr "Valitse"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open 2D Editor"
-msgstr "Avaa editorissa"
+msgstr "Avaa 2D-editori"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open 3D Editor"
-msgstr "Avaa editorissa"
+msgstr "Avaa 3D-editori"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open Script Editor"
-msgstr "Avaa editorissa"
+msgstr "Avaa skriptieditori"
#: editor/editor_node.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Open Asset Library"
-msgstr "Vie kirjasto"
+msgstr "Avaa Asset-kirjasto"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open the next Editor"
-msgstr "Avaa editorissa"
+msgstr "Avaa seuraava editori"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open the previous Editor"
-msgstr "Avaa editorissa"
+msgstr "Avaa edellinen editori"
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
@@ -2378,6 +2404,16 @@ msgstr "Itse"
msgid "Frame #:"
msgstr "Ruutu #:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Aika:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Kutsu"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "Valitse laite listasta"
@@ -2387,6 +2423,8 @@ msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the export menu."
msgstr ""
+"Käynnistettävää vientipohjaa ei löytynyt tälle alustalle.\n"
+"Lisää sellainen vienti-valikosta."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
@@ -2462,17 +2500,19 @@ msgstr "Poista mallin versio '%s'?"
#: editor/export_template_manager.cpp
msgid "Can't open export templates zip."
-msgstr ""
+msgstr "Vientipohjien zip-tiedostoa ei voitu avata."
#: editor/export_template_manager.cpp
msgid "Invalid version.txt format inside templates."
-msgstr ""
+msgstr "Paketti sisältää viallisen version.txt tiedoston."
#: editor/export_template_manager.cpp
msgid ""
"Invalid version.txt format inside templates. Revision is not a valid "
"identifier."
msgstr ""
+"Paketti sisältää viallisen version.txt tiedoston. 'Revision' ei ole "
+"hyväksytty tunniste."
#: editor/export_template_manager.cpp
msgid "No version.txt found inside templates."
@@ -2484,7 +2524,7 @@ msgstr "Virhe luotaessa polkua mallille:\n"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
-msgstr ""
+msgstr "Puretaan vientipohjia."
#: editor/export_template_manager.cpp
msgid "Importing:"
@@ -2495,17 +2535,18 @@ msgid ""
"No download links found for this version. Direct download is only available "
"for official releases."
msgstr ""
+"Tälle versiolle ei löytynyt ladattavia linkkejä. Suora lataaminen on "
+"mahdollista vain virallisilla versioilla."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve."
-msgstr ""
+msgstr "Yhdistäminen epäonnistui."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Can't connect."
-msgstr "Yhdistä..."
+msgstr "Yhdistäminen epäonnistui."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -2514,18 +2555,19 @@ msgstr "Ei vastausta."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "Pyyntö epäonnistui."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Redirect Loop."
-msgstr ""
+msgstr "Loputon uudelleenohjaus."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Failed:"
-msgstr ""
+msgstr "Epäonnistui:"
#: editor/export_template_manager.cpp
#, fuzzy
@@ -2559,7 +2601,7 @@ msgstr "Tallennetaan..."
#: editor/export_template_manager.cpp
msgid "Can't Resolve"
-msgstr ""
+msgstr "Yhdistäminen epäonnistui"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -2568,7 +2610,8 @@ msgid "Connecting.."
msgstr "Yhdistä..."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "Ei voitu yhdistää"
#: editor/export_template_manager.cpp
@@ -2631,10 +2674,14 @@ msgstr "Valitse peilipalvelin listasta: "
#: editor/file_type_cache.cpp
msgid "Can't open file_type_cache.cch for writing, not saving file type cache!"
msgstr ""
+"Tiedostoa file_type_cache.cch ei voitu avata kirjoittamista varten. "
+"Välimuistia ei tallenneta. "
#: editor/filesystem_dock.cpp
msgid "Cannot navigate to '%s' as it has not been found in the file system!"
msgstr ""
+"Tiedostoa '%s' ei voida avata, koska sitä ei näytä löytyvän "
+"tiedostojärjestelmästäsi!"
#: editor/filesystem_dock.cpp
msgid "View items as a grid of thumbnails"
@@ -2649,15 +2696,16 @@ msgid ""
"\n"
"Status: Import of file failed. Please fix file and reimport manually."
msgstr ""
+"\n"
+"Tila: Tuonti epäonnistui. Ole hyvä, korjaa tiedosto, ja tuo uudelleen."
#: editor/filesystem_dock.cpp
msgid "Cannot move/rename resources root."
-msgstr ""
+msgstr "Ei voitu siirtää/nimetä uudelleen resurssien päätasoa."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Cannot move a folder into itself.\n"
-msgstr "Tiedostoa ei voi tuoda itseensä:"
+msgstr "Hakemistoa ei voi siirtää itsensä sisään.\n"
#: editor/filesystem_dock.cpp
#, fuzzy
@@ -2666,6 +2714,11 @@ msgstr "Virhe tuotaessa:"
#: editor/filesystem_dock.cpp
#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Virhe ladatessa:"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
msgid "Unable to update dependencies:\n"
msgstr "Scenellä '%s' on rikkinäisiä riippuvuuksia:"
@@ -2704,6 +2757,16 @@ msgid "Renaming folder:"
msgstr "Nimeä Node uudelleen"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Monista"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Nimeä Node uudelleen"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "Laajenna kaikki"
@@ -2712,10 +2775,6 @@ msgid "Collapse all"
msgstr "Pienennä kaikki"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "Kopioi polku"
-
-#: editor/filesystem_dock.cpp
#, fuzzy
msgid "Rename.."
msgstr "Nimeä uudelleen"
@@ -2725,12 +2784,9 @@ msgid "Move To.."
msgstr "Siirrä..."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "Luo kansio..."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "Näytä tiedostonhallinnassa"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Avaa scene"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2745,6 +2801,11 @@ msgid "View Owners.."
msgstr "Tarkastele omistajia..."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Monista"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "Edellinen hakemisto"
@@ -2762,7 +2823,7 @@ msgstr "Merkitse kansio suosikkeihin"
#: editor/filesystem_dock.cpp
msgid "Instance the selected scene(s) as child of the selected node."
-msgstr ""
+msgstr "Luo valituista skeneistä instanssi valitun noden alle."
#: editor/filesystem_dock.cpp
#, fuzzy
@@ -2837,7 +2898,7 @@ msgstr "Tuo 3D Scene"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes+Materials"
-msgstr ""
+msgstr "Tuo useina skeneinä ja materiaaleina"
#: editor/import/resource_importer_scene.cpp
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
@@ -2849,20 +2910,30 @@ msgid "Importing Scene.."
msgstr "Tuodaan Scene..."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "Muunna Lightmapiksi:"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "Luo AABB"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "Suorita valitsemasi skripti..."
#: editor/import/resource_importer_scene.cpp
msgid "Couldn't load post-import script:"
-msgstr ""
+msgstr "Ei voitu ladata tuonnin jälkeistä skriptiä: "
#: editor/import/resource_importer_scene.cpp
msgid "Invalid/broken script for post-import (check console):"
-msgstr ""
+msgstr "Viallinen tuonnin jälkeinen skripti (tarkista konsoli) : "
#: editor/import/resource_importer_scene.cpp
msgid "Error running post-import script:"
-msgstr ""
+msgstr "Virhe ajettaessa tuonnin jälkeistä skriptiä: "
#: editor/import/resource_importer_scene.cpp
msgid "Saving.."
@@ -2885,7 +2956,6 @@ msgid "Import As:"
msgstr "Tuo nimellä:"
#: editor/import_dock.cpp editor/property_editor.cpp
-#, fuzzy
msgid "Preset.."
msgstr "Esiasetus..."
@@ -2903,7 +2973,7 @@ msgstr "Ryhmät"
#: editor/node_dock.cpp
msgid "Select a Node to edit Signals and Groups."
-msgstr ""
+msgstr "Valitse node jonka signaaleja ja ryhmiä haluat muokata."
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
@@ -2917,9 +2987,8 @@ msgid "Edit Poly"
msgstr "Muokkaa polygonia"
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Insert Point"
-msgstr "Poista piste"
+msgstr "Lisää piste"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/collision_polygon_editor_plugin.cpp
@@ -2932,9 +3001,8 @@ msgid "Remove Poly And Point"
msgstr "Poista polygoni ja piste"
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Create a new polygon from scratch"
-msgstr "Luo uusi piste tyhjästä."
+msgstr "Luo uusi polygoni tyhjästä"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid ""
@@ -2943,11 +3011,14 @@ msgid ""
"Ctrl+LMB: Split Segment.\n"
"RMB: Erase Point."
msgstr ""
+"Muokkaa polygonia:\n"
+"Vasen hiirenkorva: Siirrä pistettä.\n"
+"Ctrl+Vasen hiirenkorva: Puolita segmentti.\n"
+"Oikea hiirenkorva: Poista piste."
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Delete points"
-msgstr "Poista piste"
+msgstr "Poista pisteitä"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
@@ -2994,7 +3065,7 @@ msgstr "Lisää animaatio"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Next Changed"
-msgstr ""
+msgstr "Sekoita seuraavaan vaihdettu"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Blend Time"
@@ -3094,50 +3165,47 @@ msgstr "Kopioi animaatio"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "Onion skinning"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Käytä Onion skinningiä"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "Kuvaus:"
+msgstr "Suunnat"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Past"
-msgstr "Liitä"
+msgstr "Mennyt"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Future"
-msgstr "Tekstuuri"
+msgstr "Tuleva"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Syvyys"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 askel"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 askelta"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 askelta"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Vain eroavaisuudet"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
-msgstr ""
+msgstr "Pakota valkoisen modulaatio"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
@@ -3160,15 +3228,15 @@ msgstr "Virhe!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Times:"
-msgstr ""
+msgstr "Sulautusajat:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Next (Auto Queue):"
-msgstr ""
+msgstr "Seuraava (automaattinen jono):"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Cross-Animation Blend Times"
-msgstr ""
+msgstr "Lomittautuvien animaatioiden sulautusajat"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -3180,9 +3248,8 @@ msgid "New name:"
msgstr "Uusi nimi:"
#: editor/plugins/animation_tree_editor_plugin.cpp
-#, fuzzy
msgid "Edit Filters"
-msgstr "Suodattimet"
+msgstr "Muokkaa suodattimia"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/multimesh_editor_plugin.cpp
@@ -3199,15 +3266,15 @@ msgstr "Häivytys ulos (s):"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend"
-msgstr "Sekoita"
+msgstr "Sulauta"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix"
-msgstr ""
+msgstr "Sekoitus"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Auto Restart:"
-msgstr ""
+msgstr "Automaattinen uudelleenkäynnistys:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Restart (s):"
@@ -3228,19 +3295,19 @@ msgstr "Määrä:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend:"
-msgstr ""
+msgstr "Sulautus:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend 0:"
-msgstr ""
+msgstr "Sulautus 0:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend 1:"
-msgstr ""
+msgstr "Sulautus 1:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "X-Fade Time (s):"
-msgstr ""
+msgstr "Ristihäivytyksen aika (s):"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Current:"
@@ -3276,7 +3343,7 @@ msgstr "Animaationode"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "OneShot Node"
-msgstr "OneShot Node"
+msgstr "OneShot node"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix Node"
@@ -3284,7 +3351,7 @@ msgstr "Mix Node"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend2 Node"
-msgstr ""
+msgstr "Sulautus2 node"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend3 Node"
@@ -3304,7 +3371,7 @@ msgstr ""
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Transition Node"
-msgstr ""
+msgstr "Siirtymänode"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Import Animations.."
@@ -3312,7 +3379,7 @@ msgstr "Tuo animaatiot..."
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Edit Node Filters"
-msgstr ""
+msgstr "Muokkaa noden suodattimia"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Filters.."
@@ -3320,12 +3387,11 @@ msgstr "Suodattimet..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Free"
-msgstr ""
+msgstr "Vapauta"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Contents:"
-msgstr "Vakiot:"
+msgstr "Sisällöt:"
#: editor/plugins/asset_library_editor_plugin.cpp
#, fuzzy
@@ -3334,11 +3400,11 @@ msgstr " Tiedostot"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve hostname:"
-msgstr ""
+msgstr "Palvelinta ei löytynyt:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Connection error, please try again."
-msgstr ""
+msgstr "Yhteysvirhe, ole hyvä ja yritä uudelleen."
#: editor/plugins/asset_library_editor_plugin.cpp
#, fuzzy
@@ -3347,7 +3413,7 @@ msgstr "Yhdistä Nodeen:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No response from host:"
-msgstr ""
+msgstr "Ei vastausta isännältä: "
#: editor/plugins/asset_library_editor_plugin.cpp
#, fuzzy
@@ -3356,31 +3422,31 @@ msgstr "Pyydetty tiedostomuoto tuntematon:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, too many redirects"
-msgstr ""
+msgstr "Pyyntö epäonnistui, liikaa uudelleenohjauksia"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Bad download hash, assuming file has been tampered with."
-msgstr ""
+msgstr "Latauksessa väärä hash, oletetaan että tiedostoa on näpelöity."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Expected:"
-msgstr ""
+msgstr "Oletettiin:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Got:"
-msgstr ""
+msgstr "Saatiin:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Failed sha256 hash check"
-msgstr ""
+msgstr "sha256 hash-tarkistus epäonnistui"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Asset Download Error:"
-msgstr ""
+msgstr "Assettien latausvirhe:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Fetching:"
-msgstr ""
+msgstr "Noudetaan:"
#: editor/plugins/asset_library_editor_plugin.cpp
#, fuzzy
@@ -3394,11 +3460,11 @@ msgstr "Virhe tallennettaessa resurssia!"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Idle"
-msgstr ""
+msgstr "Toimeton"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Retry"
-msgstr ""
+msgstr "Yritä uudelleen"
#: editor/plugins/asset_library_editor_plugin.cpp
#, fuzzy
@@ -3407,15 +3473,15 @@ msgstr "Lataa"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download for this asset is already in progress!"
-msgstr ""
+msgstr "Tämän assetin lataus on jo käynnissä!"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "first"
-msgstr ""
+msgstr "ensimmäinen"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "prev"
-msgstr ""
+msgstr "edellinen"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "next"
@@ -3423,16 +3489,17 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "last"
-msgstr ""
+msgstr "viimeinen"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Kaikki"
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/project_settings_editor.cpp
msgid "Plugins"
-msgstr ""
+msgstr "Lisäosat"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Sort:"
@@ -3466,8 +3533,30 @@ msgstr "Testaus"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
+msgstr "Assettien zip-tiedosto"
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
msgstr ""
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "Muunna Lightmapiksi:"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "Esikatselu"
@@ -3479,20 +3568,20 @@ msgstr "Määrittele tarttuminen"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Offset:"
-msgstr ""
+msgstr "Ruudukon siirtymä:"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Step:"
-msgstr ""
+msgstr "Ruudukon välistys:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Offset:"
-msgstr ""
+msgstr "Ruudukon siirtymä:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Step:"
-msgstr ""
+msgstr "Kierron välistys:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Pivot"
@@ -3500,11 +3589,11 @@ msgstr "Siirrä keskikohtaa"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Action"
-msgstr ""
+msgstr "Siirrä "
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move vertical guide"
-msgstr ""
+msgstr "Siirrä pystysuuntaista apuviivaa"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -3533,11 +3622,11 @@ msgstr "Poista virheelliset avaimet"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create new horizontal and vertical guides"
-msgstr ""
+msgstr "Luo uudet vaaka- ja pystysuorat apuviivat"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Edit IK Chain"
-msgstr ""
+msgstr "Muokkaa IK ketjua"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Edit CanvasItem"
@@ -3559,7 +3648,7 @@ msgstr "Muuta ankkureita"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Paste Pose"
-msgstr ""
+msgstr "Liitä asento"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Select Mode"
@@ -3608,10 +3697,9 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggles snapping"
-msgstr ""
+msgstr "Asettaa tarttumisen"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "Käytä tarttumista"
@@ -3634,7 +3722,7 @@ msgstr "Määrittele tarttuminen..."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap Relative"
-msgstr ""
+msgstr "Suhteellinen tarttuminen"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Pixel Snap"
@@ -3651,7 +3739,7 @@ msgstr "Laajenna Parentiin"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to node anchor"
-msgstr ""
+msgstr "Tartu noden ankkuriin"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -3773,11 +3861,11 @@ msgstr "Aseta piste hiiren kohdalle"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
-msgstr ""
+msgstr "Kerro ruudukon välistys kahdella"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Divide grid step by 2"
-msgstr ""
+msgstr "Jaa ruudukon välistys kahdella"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
@@ -3795,22 +3883,12 @@ msgstr "Luo Node"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Error instancing scene from %s"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "Asia kunnossa :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
+msgstr "Virhe luotaessa instanssia kohteesta %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
-msgstr ""
+msgstr "Tämä toiminto vaatii yhden valitun noden."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change default type"
@@ -3830,7 +3908,7 @@ msgstr "Luo Poly3D"
#: editor/plugins/collision_shape_2d_editor_plugin.cpp
msgid "Set Handle"
-msgstr ""
+msgstr "Aseta kahva"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Remove item %d?"
@@ -3878,49 +3956,40 @@ msgid "Smoothstep"
msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Modify Curve Point"
-msgstr "Muokkaa käyrää"
+msgstr "Muokkaa käyrän pistettä"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Modify Curve Tangent"
-msgstr "Muokkaa käyrää"
+msgstr "Muokkaa käyrän tangenttia"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Load Curve Preset"
-msgstr "Lataa resurssi"
+msgstr "Lataa käyrän esiasetus"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Add point"
-msgstr "Lisää syöte"
+msgstr "Lisää pistä"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Remove point"
-msgstr "Siirrä pistettä"
+msgstr "Poista piste"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Left linear"
-msgstr "Lineaarinen"
+msgstr "Vasen lineaarinen"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Right linear"
-msgstr "Oikea näkymä"
+msgstr "Oikea lineaarinen"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Load preset"
-msgstr "Lataa resurssi"
+msgstr "Lataa esiasetus"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Remove Curve Point"
-msgstr "Siirrä pistettä"
+msgstr "Poista käyrän piste"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Toggle Curve Linear Tangent"
@@ -3928,7 +3997,7 @@ msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
msgid "Hold Shift to edit tangents individually"
-msgstr ""
+msgstr "Pidä shift pohjassa muokataksesi tangentteja yksitellen"
#: editor/plugins/gi_probe_editor_plugin.cpp
msgid "Bake GI Probe"
@@ -3936,12 +4005,12 @@ msgstr ""
#: editor/plugins/gradient_editor_plugin.cpp
msgid "Add/Remove Color Ramp Point"
-msgstr ""
+msgstr "Lisää/poista väriliukuman piste"
#: editor/plugins/gradient_editor_plugin.cpp
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Modify Color Ramp"
-msgstr ""
+msgstr "Muokkaa väriliukumaa"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
@@ -3960,10 +4029,12 @@ msgid ""
"No OccluderPolygon2D resource on this node.\n"
"Create and assign one?"
msgstr ""
+"Tälle nodelle ei ole OccluderPolygon2D:tä.\n"
+"Luodaanko sellainen?"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create Occluder Polygon"
-msgstr ""
+msgstr "Luo Occluder polygooni"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create a new polygon from scratch."
@@ -3979,7 +4050,7 @@ msgstr "VHP: Siirrä pistettä."
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Ctrl+LMB: Split Segment."
-msgstr ""
+msgstr "Ctrl+Vasen hiirennappi: Puolita osa"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "RMB: Erase Point."
@@ -4015,6 +4086,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -4055,6 +4142,20 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Näytä/Tarkastele"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Näytä/Tarkastele"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4227,17 +4328,13 @@ msgstr ""
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Done!"
-msgstr ""
+msgstr "Valmis!"
#: editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
#, fuzzy
msgid "Generating AABB"
@@ -4256,26 +4353,25 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Load Emission Mask"
+msgstr "Lataa emissiomaski"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "Particles"
-msgstr "Ominaisuudet:"
+msgstr "Partikkelit"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generated Point Count:"
-msgstr ""
+msgstr "Luotujen pisteiden määrä:"
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
@@ -4285,7 +4381,7 @@ msgstr "Keskimääräinen aika (sek)"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Emission Mask"
-msgstr ""
+msgstr "Emission maski"
#: editor/plugins/particles_2d_editor_plugin.cpp
#, fuzzy
@@ -4294,7 +4390,7 @@ msgstr "Luo Scenestä"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Emission Colors"
-msgstr ""
+msgstr "Emission väri"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Node does not contain geometry."
@@ -4310,7 +4406,7 @@ msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
msgid "Faces contain no area!"
-msgstr ""
+msgstr "Pinnat eivät sisällä aluetta!"
#: editor/plugins/particles_editor_plugin.cpp
msgid "No faces!"
@@ -4329,25 +4425,21 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "Tyhjennä säteilijä/lähetin"
-
-#: editor/plugins/particles_editor_plugin.cpp
#, fuzzy
msgid "Create Emitter"
msgstr "Luo säteilijä/lähetin"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Emission Points:"
-msgstr ""
+msgstr "Emissiopisteet:"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Surface Points"
-msgstr ""
+msgstr "Pinnan pisteet"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Surface Points+Normal (Directed)"
-msgstr ""
+msgstr "Pinnan pisteet+normaali"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Volume"
@@ -4355,7 +4447,7 @@ msgstr "Äänenvoimakkuus"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Emission Source: "
-msgstr ""
+msgstr "Emission lähde:"
#: editor/plugins/particles_editor_plugin.cpp
#, fuzzy
@@ -4401,7 +4493,7 @@ msgstr "Valitse pisteet"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Shift+Drag: Select Control Points"
-msgstr ""
+msgstr "Shift+vedä: Valitse kontrollipisteitä"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -4415,7 +4507,7 @@ msgstr "Oikea klikkaus: Poista piste"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Select Control Points (Shift+Drag)"
-msgstr ""
+msgstr "Valitse kontrollipisteitä (Shift+vedä)"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -4425,7 +4517,7 @@ msgstr "Lisää piste (tyhjyydessä)"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Split Segment (in curve)"
-msgstr ""
+msgstr "Puolita osa (käyrässä)"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -4439,7 +4531,7 @@ msgstr "Sulje käyrä"
#: editor/plugins/path_editor_plugin.cpp
msgid "Curve Point #"
-msgstr ""
+msgstr "Käyrän piste #"
#: editor/plugins/path_editor_plugin.cpp
#, fuzzy
@@ -4458,11 +4550,11 @@ msgstr "Siirrä pistettä"
#: editor/plugins/path_editor_plugin.cpp
msgid "Split Path"
-msgstr ""
+msgstr "Puolita polku"
#: editor/plugins/path_editor_plugin.cpp
msgid "Remove Path Point"
-msgstr ""
+msgstr "Poista polun piste"
#: editor/plugins/path_editor_plugin.cpp
#, fuzzy
@@ -4476,11 +4568,11 @@ msgstr "Poista polygoni ja piste"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create UV Map"
-msgstr ""
+msgstr "Luo UV kartta"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Transform UV Map"
-msgstr ""
+msgstr "Muunna UV kartta"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon 2D UV Editor"
@@ -4525,11 +4617,11 @@ msgstr "Muokkaa"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon->UV"
-msgstr ""
+msgstr "Polygooni->UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "UV->Polygon"
-msgstr ""
+msgstr "UV->Polygooni"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
@@ -4591,6 +4683,8 @@ msgid ""
"Close and save changes?\n"
"\""
msgstr ""
+"Sulje ja tallenna muutokset?\n"
+"\""
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme"
@@ -4618,7 +4712,7 @@ msgstr "Tallenna teema nimellä..."
#: editor/plugins/script_editor_plugin.cpp
msgid " Class Reference"
-msgstr ""
+msgstr " Luokan referenssi"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
@@ -4627,11 +4721,13 @@ msgstr "Lajittele:"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "Siirrä ylös"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "Siirrä alas"
@@ -4647,7 +4743,7 @@ msgstr "Edellinen skripti"
msgid "File"
msgstr "Tiedosto"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "Uusi"
@@ -4660,12 +4756,17 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Kopioi polku"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
-msgstr ""
+msgstr "Edellinen historiassa"
#: editor/plugins/script_editor_plugin.cpp
msgid "History Next"
-msgstr ""
+msgstr "Seuraava historiassa"
#: editor/plugins/script_editor_plugin.cpp
msgid "Reload Theme"
@@ -4689,16 +4790,15 @@ msgstr "Sulje kaikki"
#: editor/plugins/script_editor_plugin.cpp
msgid "Close Other Tabs"
-msgstr ""
+msgstr "Sulje muut välilehdet"
#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
msgid "Run"
-msgstr "Aja"
+msgstr "Suorita"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Scripts Panel"
-msgstr "Näytä suosikit"
+msgstr "Näytä/piilota skriptipaneeli"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
@@ -4717,7 +4817,7 @@ msgstr "Ohita"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Step Into"
-msgstr ""
+msgstr "Siirry"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Break"
@@ -4730,16 +4830,15 @@ msgstr "Jatka"
#: editor/plugins/script_editor_plugin.cpp
msgid "Keep Debugger Open"
-msgstr "Pidä debuggeri auki"
+msgstr "Pidä testaaja auki"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Debug with external editor"
-msgstr "Avaa editorissa"
+msgstr "Testaa ulkoisella editorilla"
#: editor/plugins/script_editor_plugin.cpp
msgid "Open Godot online documentation"
-msgstr ""
+msgstr "Avaa Godotin online-dokumentaatio"
#: editor/plugins/script_editor_plugin.cpp
msgid "Search the class hierarchy."
@@ -4747,7 +4846,7 @@ msgstr "Etsi luokkahierarkia."
#: editor/plugins/script_editor_plugin.cpp
msgid "Search the reference documentation."
-msgstr ""
+msgstr "Etsi dokumentaatiosta."
#: editor/plugins/script_editor_plugin.cpp
msgid "Go to previous edited document."
@@ -4783,7 +4882,7 @@ msgstr "Tallenna uudelleen"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Debugger"
-msgstr ""
+msgstr "Debuggeri"
#: editor/plugins/script_editor_plugin.cpp
msgid ""
@@ -4807,11 +4906,11 @@ msgstr "Muunnetaan kuvia"
#: editor/plugins/script_text_editor.cpp
msgid "Uppercase"
-msgstr ""
+msgstr "Isot kirjaimet"
#: editor/plugins/script_text_editor.cpp
msgid "Lowercase"
-msgstr ""
+msgstr "Pienet kirjaimet"
#: editor/plugins/script_text_editor.cpp
msgid "Capitalize"
@@ -4856,24 +4955,20 @@ msgstr "Kloonaa alas"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
-msgstr "Mene riville"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
+msgid "Fold/Unfold Line"
+msgstr "Avaa rivi"
#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
-msgstr ""
+msgstr "Laskosta kaikki rivit"
#: editor/plugins/script_text_editor.cpp
msgid "Unfold All Lines"
-msgstr ""
+msgstr "Avaa kaikki rivit"
#: editor/plugins/script_text_editor.cpp
msgid "Complete Symbol"
-msgstr ""
+msgstr "Täydennä symbooli"
#: editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
@@ -4881,11 +4976,11 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
msgid "Convert Indent To Spaces"
-msgstr ""
+msgstr "Muuta sisennys välilyönneiksi"
#: editor/plugins/script_text_editor.cpp
msgid "Convert Indent To Tabs"
-msgstr ""
+msgstr "Muuta sisennys sarkaimiksi"
#: editor/plugins/script_text_editor.cpp
msgid "Auto Indent"
@@ -5159,7 +5254,7 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Animation Key Inserted."
-msgstr ""
+msgstr "Animaatioavain lisätty."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Objects Drawn"
@@ -5197,6 +5292,14 @@ msgstr ""
msgid "Align with view"
msgstr "Kohdista näkymään"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "Asia kunnossa :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "Näytä normaali"
@@ -5312,6 +5415,20 @@ msgid "Scale Mode (R)"
msgstr "Skaalaustila (R)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "Paikalliset koordinaatit"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "Skaalaustila (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Tarttumisen tila:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "Pohjanäkymä"
@@ -5341,7 +5458,7 @@ msgstr "Vaihda perspektiiviseen/ortogonaaliseen näkymään"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Insert Animation Key"
-msgstr ""
+msgstr "Lisää animaatioavain"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Origin"
@@ -5389,10 +5506,6 @@ msgid "Configure Snap.."
msgstr "Määrittele tarttuminen..."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "Paikalliset koordinaatit"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5434,6 +5547,10 @@ msgid "Settings"
msgstr "Asetukset"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr "Tarttumisen asetukset"
@@ -5459,11 +5576,11 @@ msgstr "Näkökentän perspektiivi (ast.):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Near:"
-msgstr ""
+msgstr "Minimi etäisyys:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Far:"
-msgstr ""
+msgstr "Maksimi etäisyys:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Change"
@@ -5515,11 +5632,11 @@ msgstr "Lisää tyhjä"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr ""
+msgstr "Vaihda animaation luuppia"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
-msgstr ""
+msgstr "Vaihda animaation nopeutta"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "(empty)"
@@ -5579,7 +5696,7 @@ msgstr "<Ei mitään>"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Pixel Snap"
-msgstr ""
+msgstr "Tartu pikseleihin"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Snap"
@@ -5587,15 +5704,15 @@ msgstr "Tartu ruudukkoon"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Auto Slice"
-msgstr ""
+msgstr "Jaa automaattisesti"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Offset:"
-msgstr "Offset:"
+msgstr "Siirtymä:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Step:"
-msgstr ""
+msgstr "Välistys:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Separation:"
@@ -5625,7 +5742,7 @@ msgstr "Lisää kaikki"
#: editor/plugins/theme_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove Item"
-msgstr ""
+msgstr "Poista"
#: editor/plugins/theme_editor_plugin.cpp
#, fuzzy
@@ -5633,17 +5750,16 @@ msgid "Remove All Items"
msgstr "Poista valitut"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All"
-msgstr "Poista"
+msgstr "Poista kaikki"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Edit theme.."
-msgstr ""
+msgstr "Muokkaa teemaa..."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme editing menu."
-msgstr ""
+msgstr "Teeman muokkaus."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
@@ -5654,17 +5770,16 @@ msgid "Remove Class Items"
msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Create Empty Template"
-msgstr "Luo tyhjä Template"
+msgstr "Luo tyhjä pohja"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create Empty Editor Template"
-msgstr ""
+msgstr "Luo tyhjä editorin pohja"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create From Current Editor Theme"
-msgstr ""
+msgstr "Luo nykyisestä editorin teemasta"
#: editor/plugins/theme_editor_plugin.cpp
msgid "CheckBox Radio1"
@@ -5680,11 +5795,11 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Check Item"
-msgstr ""
+msgstr "Valinta"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Checked Item"
-msgstr ""
+msgstr "Valittu"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Has"
@@ -5751,18 +5866,16 @@ msgid "Paint TileMap"
msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Line Draw"
-msgstr "Lineaarinen"
+msgstr "Viivan piirto"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Rectangle Paint"
msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Bucket Fill"
-msgstr "Sanko"
+msgstr "Täyttö"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase TileMap"
@@ -5819,19 +5932,24 @@ msgstr "Tileä ei löytynyt:"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Item name or ID:"
-msgstr ""
+msgstr "Nimi tai ID:"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from scene?"
-msgstr "Luo Scenestä?"
+msgstr "Luo skenestä?"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Merge from scene?"
-msgstr "Yhdistä Scenestä?"
+msgstr "Yhdistä skenestä?"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "Vie tileset"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
-msgstr "Luo Scenestä"
+msgstr "Luo skenestä"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Merge from Scene"
@@ -5841,6 +5959,10 @@ msgstr ""
msgid "Error"
msgstr "Virhe"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Peru"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Suoritettava"
@@ -5851,7 +5973,7 @@ msgstr ""
#: editor/project_export.cpp
msgid "Delete preset '%s'?"
-msgstr ""
+msgstr "Poista esiasetus '%s'?"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing/corrupted: "
@@ -5859,7 +5981,7 @@ msgstr ""
#: editor/project_export.cpp
msgid "Presets"
-msgstr ""
+msgstr "Esiasetukset"
#: editor/project_export.cpp editor/project_settings_editor.cpp
msgid "Add.."
@@ -5883,7 +6005,7 @@ msgstr "Vie valitut resurssit (ja riippuvuudet)"
#: editor/project_export.cpp
msgid "Export Mode:"
-msgstr ""
+msgstr "Vientitila:"
#: editor/project_export.cpp
msgid "Resources to export:"
@@ -5893,11 +6015,15 @@ msgstr "Vietävät resurssit:"
msgid ""
"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)"
msgstr ""
+"Suodattimet tiedostojen viemiseen jotka eivät ole resursseja (esim. *.json, "
+"*.txt)"
#: editor/project_export.cpp
msgid ""
"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)"
msgstr ""
+"Suodattimet tiedostoille jotka jätetään projektista pois (esim. *.json, *."
+"txt)"
#: editor/project_export.cpp
msgid "Patches"
@@ -5905,7 +6031,7 @@ msgstr ""
#: editor/project_export.cpp
msgid "Make Patch"
-msgstr ""
+msgstr "Tee patchi"
#: editor/project_export.cpp
#, fuzzy
@@ -5922,13 +6048,12 @@ msgid "Feature List:"
msgstr "Metodilista:"
#: editor/project_export.cpp
-#, fuzzy
msgid "Export PCK/Zip"
-msgstr "Vie"
+msgstr "Vie PCK/Zip"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing:"
-msgstr ""
+msgstr "Tälle alustalle ei löytynyt vientipohjia:"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing/corrupted:"
@@ -5939,35 +6064,32 @@ msgid "Export With Debug"
msgstr "Vie debugaten"
#: editor/project_manager.cpp
-#, fuzzy
msgid "The path does not exist."
-msgstr "Tiedostoa ei ole olemassa."
+msgstr "Polkua ei ole olemassa."
#: editor/project_manager.cpp
msgid "Please choose a 'project.godot' file."
-msgstr ""
+msgstr "Ole hyvä ja valitse 'project.godot' tiedosto."
#: editor/project_manager.cpp
msgid ""
"Your project will be created in a non empty folder (you might want to create "
"a new folder)."
msgstr ""
+"Projektillesi valitsema hakemisto ei ole tyhjä (ehkä haluaisit luoda uuden "
+"hakemiston)."
#: editor/project_manager.cpp
msgid "Please choose a folder that does not contain a 'project.godot' file."
-msgstr ""
+msgstr "Ole hyvä ja valitse hakemisto jossa ei ole 'project.godot' tiedostoa."
#: editor/project_manager.cpp
msgid "Imported Project"
msgstr "Tuotu projekti"
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
-msgstr ""
+msgstr "Olisi hyvä idea antaa projektillesi nimi."
#: editor/project_manager.cpp
msgid "Invalid project path (changed anything?)."
@@ -5993,9 +6115,8 @@ msgid "The following files failed extraction from package:"
msgstr "Seuraavien tiedostojen purku paketista epäonnistui:"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Rename Project"
-msgstr "Nimetön projekti"
+msgstr "Nimetä projekti"
#: editor/project_manager.cpp
#, fuzzy
@@ -6037,56 +6158,60 @@ msgstr "Selaa"
#: editor/project_manager.cpp
msgid "That's a BINGO!"
-msgstr ""
+msgstr "Sehän on BINGO!"
#: editor/project_manager.cpp
msgid "Unnamed Project"
msgstr "Nimetön projekti"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Can't open project"
-msgstr "Yhdistä..."
+msgstr "Projektia ei voida avata"
#: editor/project_manager.cpp
msgid "Are you sure to open more than one project?"
msgstr "Haluatko varmasti avata useamman kuin yhden projektin?"
#: editor/project_manager.cpp
-#, fuzzy
msgid ""
"Can't run project: no main scene defined.\n"
"Please edit the project and set the main scene in \"Project Settings\" under "
"the \"Application\" category."
msgstr ""
-"Pääsceneä ei ole määritetty, haluatko valita sen?\n"
-"Voit muuttaa sitä myöhemmin projektin asetuksista."
+"Projektia ei voida suorittaa: pääsceneä ei ole määritetty.\n"
+"Ole hyvä ja muokkaa projektia ja aseta pääscene projektin asetuksista "
+"\"Application\" -kategoriasta."
#: editor/project_manager.cpp
msgid ""
"Can't run project: Assets need to be imported.\n"
"Please edit the project to trigger the initial import."
msgstr ""
+"Projektia ei voi ajaa: Assetit täytyy tuoda uudelleen.\n"
+"Muokkaa projektia käynnistääksesi uudelleentuonnin."
#: editor/project_manager.cpp
msgid "Are you sure to run more than one project?"
-msgstr ""
+msgstr "Haluatko varmasti suorittaa usemman projektin?"
#: editor/project_manager.cpp
msgid "Remove project from the list? (Folder contents will not be modified)"
-msgstr ""
+msgstr "Poista projekti listalta? (Kansion sisältöä ei muuteta)"
#: editor/project_manager.cpp
msgid ""
"Language changed.\n"
"The UI will update next time the editor or project manager starts."
msgstr ""
+"Kieli vaihdettu.\n"
+"Muutokset astuvat voimaan kun editori tai projektinhallinta käynnistetään "
+"uudelleen."
#: editor/project_manager.cpp
msgid ""
"You are about the scan %s folders for existing Godot projects. Do you "
"confirm?"
-msgstr ""
+msgstr "Olet aikeissa etsiä hakemistosta %s Godot projekteja. Oletko varma?"
#: editor/project_manager.cpp
msgid "Project List"
@@ -6094,20 +6219,19 @@ msgstr "Projektiluettelo"
#: editor/project_manager.cpp
msgid "Scan"
-msgstr ""
+msgstr "Tutki"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
-msgstr "Valitse skannattava kansio"
+msgstr "Valitse tutkittava kansio"
#: editor/project_manager.cpp
msgid "New Project"
msgstr "Uusi projekti"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Templates"
-msgstr "Poista malli"
+msgstr "Mallit"
#: editor/project_manager.cpp
msgid "Exit"
@@ -6128,6 +6252,8 @@ msgid ""
"You don't currently have any projects.\n"
"Would you like to explore the official example projects in the Asset Library?"
msgstr ""
+"Sinulla ei ole tällä hetkellä yhtään projekteja.\n"
+"Haluaisitko selata virallisia malliprojekteja Asset-kirjastosta?"
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -6135,43 +6261,43 @@ msgstr "Näppäin... "
#: editor/project_settings_editor.cpp
msgid "Joy Button"
-msgstr "Joystick-painike"
+msgstr "Ohjaimen painike"
#: editor/project_settings_editor.cpp
msgid "Joy Axis"
-msgstr ""
+msgstr "Ohjaimen akseli"
#: editor/project_settings_editor.cpp
msgid "Mouse Button"
-msgstr ""
+msgstr "Hiiren painike"
#: editor/project_settings_editor.cpp
msgid "Invalid action (anything goes but '/' or ':')."
-msgstr ""
+msgstr "Virheellinen tapahtuma (muut käy, paitsi '/' tai ':')."
#: editor/project_settings_editor.cpp
msgid "Action '%s' already exists!"
-msgstr ""
+msgstr "Tapahtuma '%s' on jo olemassa!"
#: editor/project_settings_editor.cpp
msgid "Rename Input Action Event"
-msgstr ""
+msgstr "Nimeä syöttötapahtuma uudelleen"
#: editor/project_settings_editor.cpp
msgid "Add Input Action Event"
-msgstr ""
+msgstr "Lisää syöttötapahtuma"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Shift+"
-msgstr ""
+msgstr "Shift+"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Alt+"
-msgstr ""
+msgstr "Alt+"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Control+"
-msgstr ""
+msgstr "Control+"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key.."
@@ -6179,7 +6305,7 @@ msgstr "Paina näppäintä..."
#: editor/project_settings_editor.cpp
msgid "Mouse Button Index:"
-msgstr ""
+msgstr "Hiiren painikkeen indeksi:"
#: editor/project_settings_editor.cpp
msgid "Left Button"
@@ -6224,7 +6350,7 @@ msgstr "Muuta"
#: editor/project_settings_editor.cpp
msgid "Joypad Axis Index:"
-msgstr ""
+msgstr "Ohjaimen akselin indeksi:"
#: editor/project_settings_editor.cpp
msgid "Axis"
@@ -6232,15 +6358,16 @@ msgstr "Akseli"
#: editor/project_settings_editor.cpp
msgid "Joypad Button Index:"
-msgstr ""
+msgstr "Ohjaimen painikkeen indeksi:"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "Lisää syöttötapahtuma"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Tyhjennä syöttötapahtuma"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
-msgstr ""
+msgstr "Tyhjennä syöttötapahtuma"
#: editor/project_settings_editor.cpp
#, fuzzy
@@ -6277,7 +6404,7 @@ msgstr "Rulla alas."
#: editor/project_settings_editor.cpp
msgid "Add Global Property"
-msgstr ""
+msgstr "Lisää yleinen ominaisuus"
#: editor/project_settings_editor.cpp
msgid "Select a setting item first!"
@@ -6285,7 +6412,7 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "No property '%s' exists."
-msgstr ""
+msgstr "Ominaisuutta '%s' ei löytynyt."
#: editor/project_settings_editor.cpp
msgid "Setting '%s' is internal, and it can't be deleted."
@@ -6306,6 +6433,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "Lisää syöttötapahtuma"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "Virhe tallennettaessa asetuksia."
@@ -6365,7 +6496,7 @@ msgstr ""
#: editor/project_settings_editor.cpp editor/property_editor.cpp
msgid "Property:"
-msgstr ""
+msgstr "Ominaisuus:"
#: editor/project_settings_editor.cpp
msgid "Override For.."
@@ -6377,27 +6508,27 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Action:"
-msgstr ""
+msgstr "Toiminto:"
#: editor/project_settings_editor.cpp
msgid "Device:"
-msgstr ""
+msgstr "Laite:"
#: editor/project_settings_editor.cpp
msgid "Index:"
-msgstr ""
+msgstr "Indeksi:"
#: editor/project_settings_editor.cpp
msgid "Localization"
-msgstr ""
+msgstr "Kääntäminen"
#: editor/project_settings_editor.cpp
msgid "Translations"
-msgstr ""
+msgstr "Käännökset"
#: editor/project_settings_editor.cpp
msgid "Translations:"
-msgstr ""
+msgstr "Käännökset:"
#: editor/project_settings_editor.cpp
msgid "Remaps"
@@ -6405,7 +6536,7 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Resources:"
-msgstr ""
+msgstr "Resurssit:"
#: editor/project_settings_editor.cpp
msgid "Remaps by Locale:"
@@ -6413,34 +6544,31 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Locale"
-msgstr ""
+msgstr "Kieli"
#: editor/project_settings_editor.cpp
msgid "Locales Filter"
-msgstr ""
+msgstr "Kielten suodatus"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Show all locales"
-msgstr "Näytä luut"
+msgstr "Näytä kaikki kielet"
#: editor/project_settings_editor.cpp
msgid "Show only selected locales"
-msgstr ""
+msgstr "Näytä vain valitut kielet"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Filter mode:"
-msgstr "Suodattimet"
+msgstr "Suodatustila:"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Locales:"
-msgstr "Skaalaus:"
+msgstr "Kielet:"
#: editor/project_settings_editor.cpp
msgid "AutoLoad"
-msgstr ""
+msgstr "Lataa automaattisesti"
#: editor/property_editor.cpp
msgid "Pick a Viewport"
@@ -6468,11 +6596,11 @@ msgstr ""
#: editor/property_editor.cpp
msgid "File.."
-msgstr ""
+msgstr "Tiedosto..."
#: editor/property_editor.cpp
msgid "Dir.."
-msgstr ""
+msgstr "Hakemisto..."
#: editor/property_editor.cpp
msgid "Assign"
@@ -6485,6 +6613,10 @@ msgstr "Valitse Node"
#: editor/property_editor.cpp
msgid "New Script"
+msgstr "Uusi skripti"
+
+#: editor/property_editor.cpp
+msgid "New %s"
msgstr ""
#: editor/property_editor.cpp
@@ -6494,16 +6626,15 @@ msgstr "Tee luut"
#: editor/property_editor.cpp
msgid "Show in File System"
-msgstr ""
+msgstr "Näytä tiedostojärjestelmässä"
#: editor/property_editor.cpp
-#, fuzzy
msgid "Convert To %s"
-msgstr "Muunna..."
+msgstr "Muunna muotoon %s"
#: editor/property_editor.cpp
msgid "Error loading file: Not a resource!"
-msgstr ""
+msgstr "Virhe ladattaessa tiedostoa: Ei ole resurssi!"
#: editor/property_editor.cpp
#, fuzzy
@@ -6512,7 +6643,7 @@ msgstr "Valitse tuotava(t) node(t)"
#: editor/property_editor.cpp
msgid "Pick a Node"
-msgstr "Poimi Node"
+msgstr "Poimi node"
#: editor/property_editor.cpp
msgid "Bit %d, val %d."
@@ -6520,28 +6651,28 @@ msgstr ""
#: editor/property_editor.cpp
msgid "On"
-msgstr ""
+msgstr "Päällä"
+
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "Lisää tyhjä"
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
-msgstr ""
+msgstr "Aseta"
#: editor/property_editor.cpp
msgid "Properties:"
msgstr "Ominaisuudet:"
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "Valitse ominaisuus"
#: editor/property_selector.cpp
-#, fuzzy
msgid "Select Virtual Method"
-msgstr "Valitse metodi"
+msgstr "Valitse virtuaalinen metodi"
#: editor/property_selector.cpp
msgid "Select Method"
@@ -6557,11 +6688,11 @@ msgstr ""
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent Node"
-msgstr ""
+msgstr "Vaihda noden isäntää"
#: editor/reparent_dialog.cpp
msgid "Reparent Location (Select new Parent):"
-msgstr ""
+msgstr "Valitse uusi isäntä:"
#: editor/reparent_dialog.cpp
msgid "Keep Global Transform"
@@ -6569,7 +6700,7 @@ msgstr ""
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent"
-msgstr ""
+msgstr "Uusi isäntä"
#: editor/run_settings_dialog.cpp
msgid "Run Mode:"
@@ -6577,15 +6708,15 @@ msgstr ""
#: editor/run_settings_dialog.cpp
msgid "Current Scene"
-msgstr ""
+msgstr "Nykyinen skene"
#: editor/run_settings_dialog.cpp
msgid "Main Scene"
-msgstr ""
+msgstr "Pääskene"
#: editor/run_settings_dialog.cpp
msgid "Main Scene Arguments:"
-msgstr ""
+msgstr "Pääskenen argumentit:"
#: editor/run_settings_dialog.cpp
msgid "Scene Run Settings"
@@ -7100,6 +7231,10 @@ msgstr ""
msgid "Shortcuts"
msgstr "Pikakuvakkeet"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "Muuta valon sädettä"
@@ -7148,17 +7283,56 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Poista käyrän piste"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "Vie kirjasto"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "Vie kirjasto"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Library"
msgstr "Vie kirjasto"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Status"
msgstr "Tila:"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7374,9 +7548,8 @@ msgid "Change Argument Type"
msgstr "Vaihda taulukon arvon tyyppiä"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Argument name"
-msgstr "Vaihda syötteen nimi"
+msgstr "Vaihda argumentin nimi"
#: modules/visual_script/visual_script_editor.cpp
msgid "Set Variable Default Value"
@@ -7839,6 +8012,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7867,10 +8056,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7924,10 +8109,6 @@ msgid "Add current color as a preset"
msgstr "Lisää nykyinen väri esiasetukseksi"
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Peru"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Huomio!"
@@ -8001,6 +8182,32 @@ msgstr "Virhe fontin latauksessa."
msgid "Invalid font size."
msgstr "Virheellinen fonttikoko."
+#, fuzzy
+#~ msgid "Move Add Key"
+#~ msgstr "Siirrä lisäyspainiketta"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Luo tilaus"
+
+#~ msgid "List:"
+#~ msgstr "Lista:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "Aseta emissiomaski"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "Tyhjennä säteilijä/lähetin"
+
+#, fuzzy
+#~ msgid "Fold Line"
+#~ msgstr "Mene riville"
+
+#~ msgid " "
+#~ msgstr " "
+
+#~ msgid "Sections:"
+#~ msgstr "Osiot:"
+
#~ msgid "Cannot navigate to '"
#~ msgstr "Ei voida navigoida '"
@@ -8351,9 +8558,6 @@ msgstr "Virheellinen fonttikoko."
#~ msgid "Import Languages:"
#~ msgstr "Tuo kielet:"
-#~ msgid "Transfer to Lightmaps:"
-#~ msgstr "Muunna Lightmapiksi:"
-
#~ msgid "Zoom (%):"
#~ msgstr "Lähennä (%):"
diff --git a/editor/translations/fr.po b/editor/translations/fr.po
index ddc6039dcc..dcfa996ee5 100644
--- a/editor/translations/fr.po
+++ b/editor/translations/fr.po
@@ -34,8 +34,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2017-11-27 16:46+0000\n"
-"Last-Translator: anonymous <>\n"
+"PO-Revision-Date: 2017-12-07 06:46+0000\n"
+"Last-Translator: LL <lu.lecocq@free.fr>\n"
"Language-Team: French <https://hosted.weblate.org/projects/godot-engine/"
"godot/fr/>\n"
"Language: fr\n"
@@ -54,8 +54,9 @@ msgid "All Selection"
msgstr "Toute la sélection"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Mouvement Ajouter une clé"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Animation Changer la valeur"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -66,7 +67,8 @@ msgid "Anim Change Transform"
msgstr "Animation Changer la transformation"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Animation Changer la valeur"
#: editor/animation_editor.cpp
@@ -562,8 +564,9 @@ msgid "Connecting Signal:"
msgstr "Connecter un signal :"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Créer une connexion"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Connecter « %s » à « %s »"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -579,7 +582,8 @@ msgid "Signals"
msgstr "Signaux"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Créer un nouveau"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -594,7 +598,7 @@ msgstr "Récents :"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Rechercher :"
@@ -631,10 +635,11 @@ msgid ""
"Resource '%s' is in use.\n"
"Changes will take effect when reloaded."
msgstr ""
-"Le ressource « %s » est utilisée.\n"
+"La ressource « %s » est utilisée.\n"
"Les changements n'auront pas d'effet avant un rechargement."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Dépendances"
@@ -739,9 +744,10 @@ msgid "Delete selected files?"
msgstr "Supprimer les fichiers sélectionnés ?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Supprimer"
@@ -884,6 +890,11 @@ msgid "Rename Audio Bus"
msgstr "Renommer bus audio"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Basculer vers transport audio solo"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Basculer vers transport audio solo"
@@ -931,8 +942,8 @@ msgstr "Contournement"
msgid "Bus options"
msgstr "Options de tranport"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Dupliquer"
@@ -945,6 +956,10 @@ msgid "Delete Effect"
msgstr "Supprimer l'effet"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "Ajouter un transport audio"
@@ -1101,7 +1116,8 @@ msgstr "Chemin :"
msgid "Node Name:"
msgstr "Nom de nœud :"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Nom"
@@ -1109,10 +1125,6 @@ msgstr "Nom"
msgid "Singleton"
msgstr "Singleton"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Liste :"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "Mise à jour de la scène"
@@ -1125,6 +1137,15 @@ msgstr "Stockage des modifications locales…"
msgid "Updating scene.."
msgstr "Mise à jour de la scène…"
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(vide)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "Veuillez sélectionner un répertoire de base en premier"
@@ -1171,9 +1192,24 @@ msgid "File Exists, Overwrite?"
msgstr "Le fichier existe, l'écraser ?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "Créer un dossier"
+msgstr "Selectionner le dossier actuel"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Copier le chemin"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Montrer dans le gestionnaire de fichiers"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Nouveau dossier.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Rafraîchir"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1222,10 +1258,6 @@ msgid "Go Up"
msgstr "Monter"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Rafraîchir"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "Basculer les fichiers cachés"
@@ -1376,8 +1408,8 @@ msgid ""
"There is currently no description for this property. Please help us by "
"[color=$color][url=$url]contributing one[/url][/color]!"
msgstr ""
-"Il n'y a pour l'instant aucune description de cette propriété. Aidez-nous en "
-"en [color=$color][url=$url]ajoutant une[/url][/color]!"
+"Pas de description disponible pour cette propriété. [color=$color][url="
+"$url]Contribuez[/url][/color] pour nous aider!"
#: editor/editor_help.cpp
msgid "Methods"
@@ -1405,7 +1437,8 @@ msgstr "Sortie :"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "Effacer"
@@ -1554,7 +1587,6 @@ msgstr ""
"mieux comprendre ce déroulement."
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"This is a remote object so changes to it will not be kept.\n"
"Please read the documentation relevant to debugging to better understand "
@@ -1562,7 +1594,7 @@ msgid ""
msgstr ""
"Ceci est un objet distant, les changements ne seront donc pas conservés.\n"
"Veuillez lire la documentation concernant le débogage afin de mieux "
-"comprendre ce déroulement."
+"comprendre ce fonctionnement."
#: editor/editor_node.cpp
#, fuzzy
@@ -1706,7 +1738,7 @@ msgstr "Exporter un ensemble de tuiles"
#: editor/editor_node.cpp
msgid "This operation can't be done without a selected node."
-msgstr "Cette opération ne peut être réalisée sans noeud sélectionné."
+msgstr "Cette opération ne peut être réalisée sans nœud sélectionné."
#: editor/editor_node.cpp
msgid "Current scene not saved. Open anyway?"
@@ -1828,7 +1860,7 @@ msgstr "La scène « %s » a des dépendences cassées :"
#: editor/editor_node.cpp
msgid "Clear Recent Scenes"
-msgstr "Retirer les scènes récentes."
+msgstr "Retirer les scènes récentes"
#: editor/editor_node.cpp
msgid "Save Layout"
@@ -2372,6 +2404,16 @@ msgstr "Soi"
msgid "Frame #:"
msgstr "Frame # :"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Temps :"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Appel"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "Sélectionner appareil depuis la liste"
@@ -2450,7 +2492,7 @@ msgstr "(Actuel)"
#: editor/export_template_manager.cpp
msgid "Retrieving mirrors, please wait.."
-msgstr "Récupération des miroirs, veuillez patienter…"
+msgstr "Récupération des miroirs, veuillez patienter.."
#: editor/export_template_manager.cpp
msgid "Remove template version '%s'?"
@@ -2514,7 +2556,8 @@ msgstr "Pas de réponse."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "Req. a Échoué."
#: editor/export_template_manager.cpp
@@ -2537,11 +2580,11 @@ msgstr "Téléchargement terminé."
#: editor/export_template_manager.cpp
msgid "Error requesting url: "
-msgstr "Erreur lors de la requête de l’URL :"
+msgstr "Erreur lors de la requête de l’URL : "
#: editor/export_template_manager.cpp
msgid "Connecting to Mirror.."
-msgstr "Connexion au miroir…"
+msgstr "Connexion au miroir"
#: editor/export_template_manager.cpp
msgid "Disconnected"
@@ -2562,7 +2605,8 @@ msgid "Connecting.."
msgstr "Connexion en cours.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "Connexion impossible"
#: editor/export_template_manager.cpp
@@ -2658,6 +2702,11 @@ msgid "Error moving:\n"
msgstr "Erreur lors du déplacement :\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Erreur au chargement :"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "Impossible de mettre à jour les dépendences :\n"
@@ -2690,6 +2739,16 @@ msgid "Renaming folder:"
msgstr "Renommer le dossier :"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Dupliquer"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Renommer le dossier :"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "Développer tout"
@@ -2698,10 +2757,6 @@ msgid "Collapse all"
msgstr "Réduire tout"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "Copier le chemin"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "Renommer.."
@@ -2710,12 +2765,9 @@ msgid "Move To.."
msgstr "Déplacer vers…"
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "Nouveau dossier.."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "Montrer dans le gestionnaire de fichiers"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Ouvrir une scène"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2730,6 +2782,11 @@ msgid "View Owners.."
msgstr "Voir les propriétaires…"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Dupliquer"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "Répertoire précédent"
@@ -2826,6 +2883,16 @@ msgid "Importing Scene.."
msgstr "Importation de la scène…"
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "Transfert vers des lightmaps :"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "Générer AABB"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "Lancement du script personnalisé…"
@@ -3073,16 +3140,15 @@ msgstr "Copier l'animation"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "Effet pelure d'oignon"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Activer l'effet pelure d'oignon"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "Sections :"
+msgstr "Directions"
#: editor/plugins/animation_player_editor_plugin.cpp
#, fuzzy
@@ -3090,29 +3156,28 @@ msgid "Past"
msgstr "Coller"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Future"
-msgstr "Fonctionnalités"
+msgstr "Futur"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Profondeur"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 étape"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 étapes"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 étapes"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "seul les différence"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
@@ -3120,7 +3185,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "Inclure les Gizmos (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -3397,6 +3462,7 @@ msgid "last"
msgstr "dern"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Tout"
@@ -3438,6 +3504,28 @@ msgstr "En test"
msgid "Assets ZIP File"
msgstr "Fichier ZIP de données"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "Transfert vers des lightmaps :"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "Aperçu"
@@ -3576,7 +3664,6 @@ msgid "Toggles snapping"
msgstr "Active le magnétisme"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "Aligner sur la grille"
@@ -3757,16 +3844,6 @@ msgstr "Erreur d'instanciation de la scène depuis %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "OK :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "Pas de parent dans lequel instancier l'enfant."
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
"Cette opération ne peut être réalisée uniquement avec un seul nœud "
@@ -3823,19 +3900,16 @@ msgid "Flat1"
msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Ease in"
-msgstr "Ease in"
+msgstr "Lent sur le début"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Ease out"
-msgstr "Ease out"
+msgstr "Lent sur la fin"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Smoothstep"
-msgstr "Pas lisse"
+msgstr "Progression douce"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Modify Curve Point"
@@ -3883,7 +3957,7 @@ msgstr "Maintenez l'appui sur Maj pour éditer les tangentes individuellement"
#: editor/plugins/gi_probe_editor_plugin.cpp
msgid "Bake GI Probe"
-msgstr ""
+msgstr "Créer sonde IG (Illumination Globale)"
#: editor/plugins/gradient_editor_plugin.cpp
msgid "Add/Remove Color Ramp Point"
@@ -3966,6 +4040,22 @@ msgid "Create Navigation Mesh"
msgstr "Créer un maillage de navigation"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr "Le MeshInstance n'a pas de maillage !"
@@ -4007,6 +4097,20 @@ msgid "Create Outline Mesh.."
msgstr "Créer un maillage de contour…"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Affichage"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Affichage"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr "Créer un maillage de contour"
@@ -4126,7 +4230,7 @@ msgstr "Calculer !"
#: editor/plugins/navigation_mesh_editor_plugin.cpp
#, fuzzy
msgid "Bake the navigation mesh.\n"
-msgstr "Créer un maillage de navigation"
+msgstr "Créer un maillage de navigation\n"
#: editor/plugins/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
@@ -4183,7 +4287,7 @@ msgstr "Paramétrage du générateur de navigation dans la grille :"
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
-msgstr "Analyse de la géométrie"
+msgstr "Analyse de la géométrie..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Done!"
@@ -4194,10 +4298,6 @@ msgid "Create Navigation Polygon"
msgstr "Créer Polygone de Navigation"
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr "Effacer Masque d'Émission"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr "Générer AABB"
@@ -4216,10 +4316,6 @@ msgid "No pixels with transparency > 128 in image.."
msgstr "Pas de pixels avec transparence > 128 dans l'image.."
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "Définir le masque d'émission"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
msgstr "Générer Rect de Visibilité"
@@ -4228,6 +4324,10 @@ msgid "Load Emission Mask"
msgstr "Charger Masque d'Émission"
#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "Effacer Masque d'Émission"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
msgstr "Particules"
@@ -4286,10 +4386,6 @@ msgid "Create Emission Points From Node"
msgstr "Créer Points d'Émission Depuis Noeud"
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "Effacer l'Émetteur"
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr "Créer Émetteur"
@@ -4573,11 +4669,13 @@ msgstr "Trier"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "Déplacer vers le haut"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "Déplacer vers le bas"
@@ -4593,7 +4691,7 @@ msgstr "Script précédent"
msgid "File"
msgstr "Fichier"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "Nouveau"
@@ -4606,6 +4704,11 @@ msgid "Soft Reload Script"
msgstr "Recharger le script (mode doux)"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Copier le chemin"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr "Précédent dans l'historique"
@@ -4797,11 +4900,7 @@ msgstr "Cloner en dessous"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
-msgstr "Aller à la ligne"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+msgid "Fold/Unfold Line"
msgstr "Dérouler la ligne"
#: editor/plugins/script_text_editor.cpp
@@ -5038,9 +5137,8 @@ msgid "Scaling: "
msgstr "Échelle : "
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translating: "
-msgstr "Traductions : "
+msgstr "Traduction : "
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotating %s degrees."
@@ -5130,6 +5228,14 @@ msgstr "Images par secondes"
msgid "Align with view"
msgstr "Aligner avec la vue"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "OK :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "Pas de parent dans lequel instancier l'enfant."
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "Affichage normal"
@@ -5237,6 +5343,20 @@ msgid "Scale Mode (R)"
msgstr "Mode de mise à l'échelle (R)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "Coordonnées locales"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "Mode de mise à l'échelle (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Mode d'aimantation :"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "Vue de dessous"
@@ -5309,10 +5429,6 @@ msgid "Configure Snap.."
msgstr "Configurer la grille…"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "Coordonnées locales"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr "Dialogue de transformation…"
@@ -5354,6 +5470,10 @@ msgid "Settings"
msgstr "Paramètres"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr "Paramètres d'alignement"
@@ -5738,6 +5858,11 @@ msgid "Merge from scene?"
msgstr "Fusionner depuis la scène ?"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet…"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "Créer depuis la scène"
@@ -5749,6 +5874,10 @@ msgstr "Fusionner depuis la scène"
msgid "Error"
msgstr "Erreur"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Annuler"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Activable"
@@ -5873,10 +6002,6 @@ msgid "Imported Project"
msgstr "Projet importé"
#: editor/project_manager.cpp
-msgid " "
-msgstr " "
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr "Ce serait une bonne idée de donner un nom à votre projet."
@@ -6040,6 +6165,9 @@ msgid ""
"You don't currently have any projects.\n"
"Would you like to explore the official example projects in the Asset Library?"
msgstr ""
+"Vous n'avez pour l'instant aucun projets.\n"
+"Aimeriez-vous explorer les exemples de projets officiels dans l'Asset "
+"Library ?"
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -6147,8 +6275,9 @@ msgid "Joypad Button Index:"
msgstr "Index de bouton de la manette de jeu :"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "Ajouter une action d'entrée"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Effacer l'événement d'action d'entrée"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6216,6 +6345,10 @@ msgid "Already existing"
msgstr "Existe déjà"
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "Ajouter une action d'entrée"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "Erreur d'enregistrement des paramètres."
@@ -6392,6 +6525,10 @@ msgid "New Script"
msgstr "Nouveau script"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr "Rendre unique"
@@ -6423,6 +6560,11 @@ msgstr "Bit %d, valeur %d."
msgid "On"
msgstr "Activé"
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "Ajouter vide"
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "Définir"
@@ -6431,10 +6573,6 @@ msgstr "Définir"
msgid "Properties:"
msgstr "Propriétés :"
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr "Sections :"
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "Sélectionnez une propriété"
@@ -7003,6 +7141,10 @@ msgstr "Définir depuis l'arbre"
msgid "Shortcuts"
msgstr "Raccourcis"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "Changer le rayon d'une lumière"
@@ -7051,16 +7193,56 @@ msgstr "Changer particules AABB"
msgid "Change Probe Extents"
msgstr "Changer les ampleurs de la sonde"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Supprimer point de courbe"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Platform"
+msgstr "Copier vers la plate-forme…"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "Bibliothèque"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "GDNative"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr "Bibliothèque"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Status"
msgstr "État :"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr "Bibliothèques: "
@@ -7771,6 +7953,25 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr "ARVROrigin requiert un nœud enfant ARVRCamera"
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "Tracer les maillages"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "Tracer les maillages"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr "Finalisation du tracer"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "Tracer les maillages"
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7805,10 +8006,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr "Tracer les maillages"
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr "Finalisation du tracer"
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7877,10 +8074,6 @@ msgid "Add current color as a preset"
msgstr "Ajouter la couleur courante comme pré-réglage"
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Annuler"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Alerte !"
@@ -7889,9 +8082,8 @@ msgid "Please Confirm..."
msgstr "Veuillez confirmer…"
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select this Folder"
-msgstr "Sélectionner une méthode"
+msgstr "Sélectionnez ce dossier"
#: scene/gui/popup.cpp
msgid ""
@@ -7954,6 +8146,30 @@ msgstr "Erreur lors du chargement de la police."
msgid "Invalid font size."
msgstr "Taille de police invalide."
+#~ msgid "Move Add Key"
+#~ msgstr "Mouvement Ajouter une clé"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Créer une connexion"
+
+#~ msgid "List:"
+#~ msgstr "Liste :"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "Définir le masque d'émission"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "Effacer l'Émetteur"
+
+#~ msgid "Fold Line"
+#~ msgstr "Masquer la ligne"
+
+#~ msgid " "
+#~ msgstr " "
+
+#~ msgid "Sections:"
+#~ msgstr "Sections :"
+
#~ msgid "Cannot navigate to '"
#~ msgstr "Ne peux pas acceder à '"
@@ -8496,9 +8712,6 @@ msgstr "Taille de police invalide."
#~ msgid "Making BVH"
#~ msgstr "Création du BVH"
-#~ msgid "Transfer to Lightmaps:"
-#~ msgstr "Transfert vers des lightmaps :"
-
#~ msgid "Allocating Texture #"
#~ msgstr "Allocation de la texture #"
@@ -8652,9 +8865,6 @@ msgstr "Taille de police invalide."
#~ msgid "Del"
#~ msgstr "Supprimer"
-#~ msgid "Copy To Platform.."
-#~ msgstr "Copier vers la plate-forme…"
-
#~ msgid "just pressed"
#~ msgstr "vient d'être appuyé"
diff --git a/editor/translations/he.po b/editor/translations/he.po
index 5599828bfd..b4fbcb9123 100644
--- a/editor/translations/he.po
+++ b/editor/translations/he.po
@@ -3,13 +3,14 @@
# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
+# Ben Golan <golanben4@gmail.com>, 2017.
# Luc Stepniewski <lior@gradstein.info>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-24 09:47+0000\n"
-"Last-Translator: Luc Stepniewski <lior@gradstein.info>\n"
+"PO-Revision-Date: 2017-12-10 12:47+0000\n"
+"Last-Translator: Ben Golan <golanben4@gmail.com>\n"
"Language-Team: Hebrew <https://hosted.weblate.org/projects/godot-engine/"
"godot/he/>\n"
"Language: he\n"
@@ -24,10 +25,10 @@ msgstr "מושבת"
#: editor/animation_editor.cpp
msgid "All Selection"
-msgstr ""
+msgstr "כל ×”××œ×ž× ×˜×™× ×©× ×‘×—×¨×•"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
+msgid "Anim Change Keyframe Time"
msgstr ""
#: editor/animation_editor.cpp
@@ -39,7 +40,7 @@ msgid "Anim Change Transform"
msgstr ""
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+msgid "Anim Change Keyframe Value"
msgstr ""
#: editor/animation_editor.cpp
@@ -531,7 +532,7 @@ msgid "Connecting Signal:"
msgstr ""
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
+msgid "Disconnect '%s' from '%s'"
msgstr ""
#: editor/connections_dialog.cpp
@@ -548,7 +549,7 @@ msgid "Signals"
msgstr ""
#: editor/create_dialog.cpp
-msgid "Create New"
+msgid "Create New %s"
msgstr ""
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -563,7 +564,7 @@ msgstr ""
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr ""
@@ -600,6 +601,7 @@ msgid ""
msgstr ""
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr ""
@@ -700,9 +702,10 @@ msgid "Delete selected files?"
msgstr ""
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr ""
@@ -841,6 +844,10 @@ msgid "Rename Audio Bus"
msgstr ""
#: editor/editor_audio_buses.cpp
+msgid "Change Audio Bus Volume"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr ""
@@ -888,8 +895,8 @@ msgstr ""
msgid "Bus options"
msgstr ""
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr ""
@@ -902,6 +909,10 @@ msgid "Delete Effect"
msgstr ""
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr ""
@@ -1052,7 +1063,8 @@ msgstr ""
msgid "Node Name:"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr ""
@@ -1060,10 +1072,6 @@ msgstr ""
msgid "Singleton"
msgstr ""
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr ""
@@ -1076,6 +1084,14 @@ msgstr ""
msgid "Updating scene.."
msgstr ""
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr ""
@@ -1125,6 +1141,22 @@ msgstr ""
msgid "Select Current Folder"
msgstr ""
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr ""
@@ -1172,10 +1204,6 @@ msgid "Go Up"
msgstr ""
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr ""
@@ -1351,7 +1379,8 @@ msgstr ""
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr ""
@@ -2241,6 +2270,14 @@ msgstr ""
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr ""
@@ -2376,7 +2413,7 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+msgid "Request Failed."
msgstr ""
#: editor/export_template_manager.cpp
@@ -2423,7 +2460,7 @@ msgid "Connecting.."
msgstr ""
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+msgid "Can't Connect"
msgstr ""
#: editor/export_template_manager.cpp
@@ -2514,6 +2551,10 @@ msgid "Error moving:\n"
msgstr ""
#: editor/filesystem_dock.cpp
+msgid "Error duplicating:\n"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr ""
@@ -2546,31 +2587,31 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
+msgid "Duplicating file:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
+msgid "Duplicating folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
+msgid "Expand all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Rename.."
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Move To.."
+msgid "Rename.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
+msgid "Move To.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
+msgid "Open Scene(s)"
msgstr ""
#: editor/filesystem_dock.cpp
@@ -2586,6 +2627,10 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+msgid "Duplicate.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2678,6 +2723,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3240,6 +3293,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr ""
@@ -3281,6 +3335,27 @@ msgstr ""
msgid "Assets ZIP File"
msgstr ""
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3415,7 +3490,6 @@ msgid "Toggles snapping"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3595,16 +3669,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3796,6 +3860,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3836,6 +3916,18 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV1"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV2"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4012,10 +4104,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4033,15 +4121,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4103,10 +4191,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4389,11 +4473,13 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4409,7 +4495,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4422,6 +4508,10 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+msgid "Copy Script Path"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4608,11 +4698,7 @@ msgid "Clone Down"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+msgid "Fold/Unfold Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -4940,6 +5026,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5044,6 +5138,18 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5116,10 +5222,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5161,6 +5263,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5543,6 +5649,10 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Tile Set"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5554,6 +5664,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr ""
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5671,10 +5785,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -5931,7 +6041,7 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
+msgid "Erase Input Action"
msgstr ""
#: editor/project_settings_editor.cpp
@@ -5999,6 +6109,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6175,6 +6289,10 @@ msgid "New Script"
msgstr ""
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6206,6 +6324,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6214,10 +6336,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6767,6 +6885,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6815,15 +6937,51 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Remove current entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7472,6 +7630,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7500,10 +7674,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7556,10 +7726,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr ""
diff --git a/editor/translations/hi.po b/editor/translations/hi.po
index c5177b4aa8..4b77c00e83 100644
--- a/editor/translations/hi.po
+++ b/editor/translations/hi.po
@@ -28,8 +28,9 @@ msgid "All Selection"
msgstr "सभी खंड"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr ""
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "à¤à¤¨à¥€à¤®à¥‡à¤¶à¤¨ परिवरà¥à¤¤à¤¨ निधि"
#: editor/animation_editor.cpp
#, fuzzy
@@ -42,7 +43,8 @@ msgid "Anim Change Transform"
msgstr "à¤à¤¨à¥€à¤®à¥‡à¤¶à¤¨ परिवरà¥à¤¤à¤¨ परिणत"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "à¤à¤¨à¥€à¤®à¥‡à¤¶à¤¨ परिवरà¥à¤¤à¤¨ निधि"
#: editor/animation_editor.cpp
@@ -545,8 +547,8 @@ msgstr "कनेकà¥à¤Ÿ करने के लिठसंकेत:"
#: editor/connections_dialog.cpp
#, fuzzy
-msgid "Create Subscription"
-msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚"
+msgid "Disconnect '%s' from '%s'"
+msgstr "जà¥à¤¡à¤¿à¤¯à¥‡ '%s' to '%s'"
#: editor/connections_dialog.cpp
#, fuzzy
@@ -563,7 +565,8 @@ msgid "Signals"
msgstr "संकेत"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "à¤à¤• नया बनाà¤à¤‚"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -578,7 +581,7 @@ msgstr "हाल ही में किया:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
#, fuzzy
msgid "Search:"
msgstr "खोज कर:"
@@ -621,6 +624,7 @@ msgstr ""
"पà¥à¤¨à¤ƒ लोड होने पर परिवरà¥à¤¤à¤¨ पà¥à¤°à¤­à¤¾à¤µà¥€ होंगे।"
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
#, fuzzy
msgid "Dependencies"
msgstr "निरà¥à¤­à¤°à¤¤à¤¾"
@@ -726,9 +730,10 @@ msgid "Delete selected files?"
msgstr "चयनित फ़ाइलें हटाà¤à¤‚?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "को हटा दें"
@@ -874,6 +879,11 @@ msgid "Rename Audio Bus"
msgstr "ऑडियो बस का नाम बदलें"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "ऑडियो बस सोलो टॉगल करें"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "ऑडियो बस सोलो टॉगल करें"
@@ -924,8 +934,8 @@ msgstr "उपमारà¥à¤—"
msgid "Bus options"
msgstr "बस विकलà¥à¤ª"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿"
@@ -938,6 +948,10 @@ msgid "Delete Effect"
msgstr ""
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr ""
@@ -1088,7 +1102,8 @@ msgstr ""
msgid "Node Name:"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr ""
@@ -1096,10 +1111,6 @@ msgstr ""
msgid "Singleton"
msgstr ""
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr ""
@@ -1112,6 +1123,14 @@ msgstr ""
msgid "Updating scene.."
msgstr ""
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr ""
@@ -1161,6 +1180,22 @@ msgstr ""
msgid "Select Current Folder"
msgstr ""
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr ""
@@ -1208,10 +1243,6 @@ msgid "Go Up"
msgstr ""
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr ""
@@ -1387,7 +1418,8 @@ msgstr ""
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr ""
@@ -2277,6 +2309,14 @@ msgstr ""
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr ""
@@ -2412,7 +2452,7 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+msgid "Request Failed."
msgstr ""
#: editor/export_template_manager.cpp
@@ -2459,8 +2499,9 @@ msgid "Connecting.."
msgstr ""
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
-msgstr ""
+#, fuzzy
+msgid "Can't Connect"
+msgstr "जà¥à¤¡à¤¿à¤¯à¥‡"
#: editor/export_template_manager.cpp
msgid "Connected"
@@ -2550,6 +2591,11 @@ msgid "Error moving:\n"
msgstr ""
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "लोड होने मे तà¥à¤°à¥à¤Ÿà¤¿:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr ""
@@ -2582,31 +2628,33 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿"
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
+msgid "Expand all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Rename.."
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Move To.."
+msgid "Rename.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
+msgid "Move To.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
+msgid "Open Scene(s)"
msgstr ""
#: editor/filesystem_dock.cpp
@@ -2622,6 +2670,11 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2714,6 +2767,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3277,6 +3338,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr ""
@@ -3318,6 +3380,27 @@ msgstr ""
msgid "Assets ZIP File"
msgstr ""
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3452,7 +3535,6 @@ msgid "Toggles snapping"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3632,16 +3714,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3833,6 +3905,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3873,6 +3961,18 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV1"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV2"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4049,10 +4149,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4070,15 +4166,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4140,10 +4236,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4426,11 +4518,13 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4446,7 +4540,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4459,6 +4553,10 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+msgid "Copy Script Path"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4645,11 +4743,7 @@ msgid "Clone Down"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+msgid "Fold/Unfold Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -4977,6 +5071,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5081,6 +5183,18 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5153,10 +5267,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5198,6 +5308,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5580,6 +5694,10 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Tile Set"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5591,6 +5709,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr ""
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5708,10 +5830,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -5968,7 +6086,7 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
+msgid "Erase Input Action"
msgstr ""
#: editor/project_settings_editor.cpp
@@ -6036,6 +6154,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6212,6 +6334,10 @@ msgid "New Script"
msgstr ""
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6243,6 +6369,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6251,10 +6381,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6804,6 +6930,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6852,15 +6982,51 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Remove current entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7509,6 +7675,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7537,10 +7719,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7593,10 +7771,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr ""
@@ -7655,3 +7829,7 @@ msgstr ""
#: scene/resources/dynamic_font.cpp
msgid "Invalid font size."
msgstr "गलत फॉणà¥à¤Ÿ का आकार |"
+
+#, fuzzy
+#~ msgid "Create Subscription"
+#~ msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚"
diff --git a/editor/translations/hu.po b/editor/translations/hu.po
index 4bd241b809..aec0003e77 100644
--- a/editor/translations/hu.po
+++ b/editor/translations/hu.po
@@ -10,8 +10,8 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-29 08:12+0000\n"
-"Last-Translator: Nagy Lajos <neutron9707@gmail.com>\n"
+"PO-Revision-Date: 2017-12-01 05:47+0000\n"
+"Last-Translator: Sandor Domokos <sandor.domokos@gmail.com>\n"
"Language-Team: Hungarian <https://hosted.weblate.org/projects/godot-engine/"
"godot/hu/>\n"
"Language: hu\n"
@@ -29,8 +29,9 @@ msgid "All Selection"
msgstr "Mind kiválaszt"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Hozzáadás kulcs mozgatása"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Animáció érték váltás"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -41,7 +42,8 @@ msgid "Anim Change Transform"
msgstr "Animáció átalakító váltás"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Animáció érték váltás"
#: editor/animation_editor.cpp
@@ -139,7 +141,7 @@ msgstr "Kiválasztás átméretezése"
#: editor/animation_editor.cpp
msgid "Scale From Cursor"
-msgstr ""
+msgstr "Kijelölés a kurzortól"
#: editor/animation_editor.cpp
msgid "Goto Next Step"
@@ -188,11 +190,11 @@ msgstr "Animáció megtisztítása"
#: editor/animation_editor.cpp
msgid "Create NEW track for %s and insert key?"
-msgstr ""
+msgstr "ÚJ útvonal létrehozása %s -hez és kulcs beillesztése?"
#: editor/animation_editor.cpp
msgid "Create %d NEW tracks and insert keys?"
-msgstr ""
+msgstr "Létrehoz %d ÚJ útvonalat és beilleszti a kulcsokat?"
#: editor/animation_editor.cpp editor/create_dialog.cpp
#: editor/editor_audio_buses.cpp editor/plugins/abstract_polygon_2d_editor.cpp
@@ -209,19 +211,19 @@ msgstr "Animáció létrehozása és beillesztése"
#: editor/animation_editor.cpp
msgid "Anim Insert Track & Key"
-msgstr ""
+msgstr "Animáció útvonal & kulcs beillesztése"
#: editor/animation_editor.cpp
msgid "Anim Insert Key"
-msgstr ""
+msgstr "Animáció kulcs beillesztése"
#: editor/animation_editor.cpp
msgid "Change Anim Len"
-msgstr ""
+msgstr "Csak animáció változtatása"
#: editor/animation_editor.cpp
msgid "Change Anim Loop"
-msgstr ""
+msgstr "Animáció hurok változtatása"
#: editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
@@ -534,7 +536,7 @@ msgid "Connecting Signal:"
msgstr ""
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
+msgid "Disconnect '%s' from '%s'"
msgstr ""
#: editor/connections_dialog.cpp
@@ -551,7 +553,8 @@ msgid "Signals"
msgstr "Jelzések"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Új létrehozása"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -566,7 +569,7 @@ msgstr "Legutóbbi:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Keresés:"
@@ -603,6 +606,7 @@ msgid ""
msgstr ""
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Függőségek"
@@ -703,9 +707,10 @@ msgid "Delete selected files?"
msgstr "Törli a kiválasztott fájlokat?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Töröl"
@@ -848,6 +853,11 @@ msgid "Rename Audio Bus"
msgstr ""
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Tömb értékének megváltoztatása"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr ""
@@ -895,8 +905,8 @@ msgstr ""
msgid "Bus options"
msgstr ""
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr ""
@@ -909,6 +919,10 @@ msgid "Delete Effect"
msgstr ""
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr ""
@@ -1059,7 +1073,8 @@ msgstr ""
msgid "Node Name:"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr ""
@@ -1067,10 +1082,6 @@ msgstr ""
msgid "Singleton"
msgstr ""
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr ""
@@ -1083,6 +1094,14 @@ msgstr ""
msgid "Updating scene.."
msgstr ""
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr ""
@@ -1132,6 +1151,22 @@ msgstr ""
msgid "Select Current Folder"
msgstr ""
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Útvonal másolása"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr ""
@@ -1179,10 +1214,6 @@ msgid "Go Up"
msgstr ""
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr ""
@@ -1358,7 +1389,8 @@ msgstr ""
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr ""
@@ -2248,6 +2280,14 @@ msgstr ""
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr ""
@@ -2383,7 +2423,7 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+msgid "Request Failed."
msgstr ""
#: editor/export_template_manager.cpp
@@ -2430,8 +2470,9 @@ msgid "Connecting.."
msgstr ""
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
-msgstr ""
+#, fuzzy
+msgid "Can't Connect"
+msgstr "Kapcsolódás..."
#: editor/export_template_manager.cpp
msgid "Connected"
@@ -2521,6 +2562,11 @@ msgid "Error moving:\n"
msgstr ""
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Hiba betöltéskor:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr ""
@@ -2553,31 +2599,32 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Kiválasztás megkettőzése"
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
+msgid "Duplicating folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "Útvonal másaolása"
+msgid "Expand all"
+msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Rename.."
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Move To.."
+msgid "Rename.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
+msgid "Move To.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
+msgid "Open Scene(s)"
msgstr ""
#: editor/filesystem_dock.cpp
@@ -2593,6 +2640,11 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Animáció kulcs megkettőzése"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2685,6 +2737,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -2933,9 +2993,8 @@ msgid "Enable Onion Skinning"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "Leírás:"
+msgstr "Irányok"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Past"
@@ -3248,6 +3307,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr ""
@@ -3289,6 +3349,27 @@ msgstr ""
msgid "Assets ZIP File"
msgstr ""
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3423,7 +3504,6 @@ msgid "Toggles snapping"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3603,16 +3683,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3804,6 +3874,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3844,6 +3930,18 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV1"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV2"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4020,10 +4118,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4041,15 +4135,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4111,10 +4205,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4397,11 +4487,13 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4417,7 +4509,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4430,6 +4522,11 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Útvonal másolása"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4616,11 +4713,7 @@ msgid "Clone Down"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+msgid "Fold/Unfold Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -4948,6 +5041,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5052,6 +5153,18 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5124,10 +5237,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5169,6 +5278,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5551,6 +5664,10 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Tile Set"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5562,6 +5679,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Mégse"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5679,10 +5800,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -5939,7 +6056,7 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
+msgid "Erase Input Action"
msgstr ""
#: editor/project_settings_editor.cpp
@@ -6007,6 +6124,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6183,6 +6304,10 @@ msgid "New Script"
msgstr ""
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6214,6 +6339,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6222,10 +6351,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6775,6 +6900,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6823,15 +6952,52 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Jelenlegi nyomvonal felfelé mozgatása."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7480,6 +7646,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7508,10 +7690,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7564,10 +7742,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Mégse"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Figyelem!"
@@ -7595,7 +7769,7 @@ msgstr ""
#: scene/gui/tree.cpp
msgid "(Other)"
-msgstr "(Másik)"
+msgstr "(Más)"
#: scene/main/scene_tree.cpp
msgid ""
@@ -7631,3 +7805,6 @@ msgstr "Hiba a betűtípus betöltésekor."
#: scene/resources/dynamic_font.cpp
msgid "Invalid font size."
msgstr "Érvénytelen betűtípus méret."
+
+#~ msgid "Move Add Key"
+#~ msgstr "Hozzáadás kulcs mozgatása"
diff --git a/editor/translations/id.po b/editor/translations/id.po
index ad3ddb7862..137e404750 100644
--- a/editor/translations/id.po
+++ b/editor/translations/id.po
@@ -9,6 +9,7 @@
# Damar Inderajati <damarind@gmail.com>, 2017.
# Damar S. M <the.last.walla@gmail.com>, 2017.
# Khairul Hidayat <khairulcyber4rt@gmail.com>, 2016.
+# Romi Kusuma Bakti <romikusumab@gmail.com>, 2017.
# Sofyan Sugianto <sofyanartem@gmail.com>, 2017.
# Tom My <tom.asadinawan@gmail.com>, 2017.
# yursan9 <rizal.sagi@gmail.com>, 2016.
@@ -16,8 +17,8 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-23 18:47+0000\n"
-"Last-Translator: Damar Inderajati <damarind@gmail.com>\n"
+"PO-Revision-Date: 2017-12-11 10:47+0000\n"
+"Last-Translator: Romi Kusuma Bakti <romikusumab@gmail.com>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/godot-engine/"
"godot/id/>\n"
"Language: id\n"
@@ -35,8 +36,9 @@ msgid "All Selection"
msgstr "Semua pilihan"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Pindahkan Kunci Tambah"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Ubah Nilai Animasi"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -47,7 +49,8 @@ msgid "Anim Change Transform"
msgstr "Ubah Transformasi Animasi"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Ubah Nilai Animasi"
#: editor/animation_editor.cpp
@@ -59,9 +62,8 @@ msgid "Anim Add Track"
msgstr "Tambah Trek Anim"
#: editor/animation_editor.cpp
-#, fuzzy
msgid "Anim Duplicate Keys"
-msgstr "Duplikat Tombol Anim"
+msgstr "Tombol Duplikat Anim"
#: editor/animation_editor.cpp
msgid "Move Anim Track Up"
@@ -372,7 +374,7 @@ msgstr "Pergi ke Baris"
#: editor/code_editor.cpp
msgid "Line Number:"
-msgstr "Baris Nomor:"
+msgstr "Nomor Baris:"
#: editor/code_editor.cpp
msgid "No Matches"
@@ -385,11 +387,11 @@ msgstr "Diganti kejadian (kejadian-kejadian) %d."
#: editor/code_editor.cpp
msgid "Replace"
-msgstr "Ubah"
+msgstr "Ganti"
#: editor/code_editor.cpp
msgid "Replace All"
-msgstr "Ubah Semua"
+msgstr "Ganti Semua"
#: editor/code_editor.cpp
msgid "Match Case"
@@ -544,8 +546,9 @@ msgid "Connecting Signal:"
msgstr "Menyambungkan Sinyal:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Buat Subskribsi"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Sambungkan '%s' ke '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -561,7 +564,8 @@ msgid "Signals"
msgstr "Sinyal-sinyal"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Buat Baru"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -576,7 +580,7 @@ msgstr "Saat ini:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Cari:"
@@ -617,6 +621,7 @@ msgstr ""
"Perubahan-perubahan akan terjadi ketika dimuat ulang."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Ketergantungan"
@@ -722,9 +727,10 @@ msgid "Delete selected files?"
msgstr "Hapus file yang dipilih?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Hapus"
@@ -872,6 +878,11 @@ msgid "Rename Audio Bus"
msgstr "Namai kembali Autoload"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Alih Audio Bus Solo"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Alih Audio Bus Solo"
@@ -920,8 +931,8 @@ msgstr "Jalan Lingkar"
msgid "Bus options"
msgstr "Opsi Bus"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Gandakan"
@@ -936,6 +947,10 @@ msgid "Delete Effect"
msgstr "Hapus yang Dipilih"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "Tambah Suara Bus"
@@ -1094,7 +1109,8 @@ msgstr "Path:"
msgid "Node Name:"
msgstr "Nama Node:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Nama"
@@ -1102,10 +1118,6 @@ msgstr "Nama"
msgid "Singleton"
msgstr "Singleton"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Daftar:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "Memperbaharui Scene"
@@ -1118,6 +1130,14 @@ msgstr "Menyimpan perubahan-perubahan lokal.."
msgid "Updating scene.."
msgstr "Memperbaharui scene.."
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
#, fuzzy
msgid "Please select a base directory first"
@@ -1169,6 +1189,23 @@ msgstr "File telah ada, Overwrite?"
msgid "Select Current Folder"
msgstr "Buat Folder"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Tampilkan di Manajer Berkas"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+#, fuzzy
+msgid "New Folder.."
+msgstr "Buat Folder"
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Segarkan"
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr "Semua diakui"
@@ -1219,10 +1256,6 @@ msgid "Go Up"
msgstr "Naik"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Segarkan"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "Beralih File Tersembunyi"
@@ -1415,7 +1448,8 @@ msgstr " Keluaran:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "Bersihkan"
@@ -2393,6 +2427,16 @@ msgstr "Diri"
msgid "Frame #:"
msgstr "Bingkai #:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Waktu:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Panggil"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "Pilih perangkat pada daftar"
@@ -2532,8 +2576,9 @@ msgstr "Tidak ada respon."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
-msgstr ""
+#, fuzzy
+msgid "Request Failed."
+msgstr "Menguji"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -2585,7 +2630,7 @@ msgstr "Menyambungkan.."
#: editor/export_template_manager.cpp
#, fuzzy
-msgid "Can't Conect"
+msgid "Can't Connect"
msgstr "Menyambungkan.."
#: editor/export_template_manager.cpp
@@ -2687,6 +2732,11 @@ msgstr "Error memuat:"
#: editor/filesystem_dock.cpp
#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Error saat memuat:"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
msgid "Unable to update dependencies:\n"
msgstr "Scene '%s' memiliki dependensi yang rusak:"
@@ -2722,15 +2772,21 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Gandakan"
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Gandakan"
+
+#: editor/filesystem_dock.cpp
+msgid "Expand all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
@@ -2744,12 +2800,8 @@ msgstr "Pindah Ke.."
#: editor/filesystem_dock.cpp
#, fuzzy
-msgid "New Folder.."
-msgstr "Buat Folder"
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "Tampilkan di Manajer Berkas"
+msgid "Open Scene(s)"
+msgstr "Buka Scene"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2764,6 +2816,11 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Gandakan"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "Direktori Sebelumnya"
@@ -2860,6 +2917,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3436,6 +3501,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Semua"
@@ -3477,6 +3543,28 @@ msgstr "Menguji"
msgid "Assets ZIP File"
msgstr "Aset-aset File ZIP"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "Ganti Radius Lampu"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3616,7 +3704,6 @@ msgid "Toggles snapping"
msgstr "Beralih Breakpoint"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3798,16 +3885,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -4005,6 +4082,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -4045,6 +4138,20 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "File:"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "File:"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4222,10 +4329,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4243,15 +4346,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4313,10 +4416,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4604,11 +4703,13 @@ msgstr "Sortir:"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4624,7 +4725,7 @@ msgstr ""
msgid "File"
msgstr "Berkas"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "Baru"
@@ -4637,6 +4738,11 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Salin Resource"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4828,14 +4934,10 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
+msgid "Fold/Unfold Line"
msgstr "Pergi ke Baris"
#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
msgstr ""
@@ -5164,6 +5266,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5276,6 +5386,19 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Metode Publik:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5350,10 +5473,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5395,6 +5514,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5782,6 +5905,11 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet.."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5793,6 +5921,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Batal"
+
#: editor/project_export.cpp
#, fuzzy
msgid "Runnable"
@@ -5917,10 +6049,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -6189,8 +6317,9 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr ""
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Beri Skala Seleksi"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6262,6 +6391,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6442,6 +6575,10 @@ msgid "New Script"
msgstr "Scene Baru"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
#, fuzzy
msgid "Make Unique"
msgstr "Membuat sub-Resource Unik"
@@ -6478,6 +6615,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6486,10 +6627,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
#, fuzzy
msgid "Select Property"
@@ -7062,6 +7199,10 @@ msgstr "Menyetel Dari Keturunan"
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "Ganti Radius Lampu"
@@ -7112,16 +7253,55 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Hapus Sinyal"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "Ekspor Pustaka"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "Ekspor Pustaka"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Library"
msgstr "Ekspor Pustaka"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7846,6 +8026,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7884,10 +8080,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7952,10 +8144,6 @@ msgid "Add current color as a preset"
msgstr "Tambah warna sekarang sebagai preset"
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Batal"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Peringatan!"
@@ -8028,6 +8216,15 @@ msgstr "Error memuat font."
msgid "Invalid font size."
msgstr "Ukuran font tidak sah."
+#~ msgid "Move Add Key"
+#~ msgstr "Pindahkan Kunci Tambah"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Buat Subskribsi"
+
+#~ msgid "List:"
+#~ msgstr "Daftar:"
+
#, fuzzy
#~ msgid ""
#~ "\n"
diff --git a/editor/translations/is.po b/editor/translations/is.po
new file mode 100644
index 0000000000..56baed878b
--- /dev/null
+++ b/editor/translations/is.po
@@ -0,0 +1,7791 @@
+# Icelandic translation of the Godot Engine editor
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
+# This file is distributed under the same license as the Godot source code.
+#
+# Jóhannes G. Þorsteinsson <johannesg@johannesg.com>, 2017.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Godot Engine editor\n"
+"PO-Revision-Date: 2017-12-05 21:47+0000\n"
+"Last-Translator: Jóhannes G. Þorsteinsson <johannesg@johannesg.com>\n"
+"Language-Team: Icelandic <https://hosted.weblate.org/projects/godot-engine/"
+"godot/is/>\n"
+"Language: is\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 2.18-dev\n"
+
+#: editor/animation_editor.cpp
+msgid "Disabled"
+msgstr "Óvirkt"
+
+#: editor/animation_editor.cpp
+msgid "All Selection"
+msgstr "Allt Val"
+
+#: editor/animation_editor.cpp
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Hreyfimynd Breyta Gildi"
+
+#: editor/animation_editor.cpp
+msgid "Anim Change Transition"
+msgstr "Hreyfimynd Breyta Stöðuskiptum"
+
+#: editor/animation_editor.cpp
+msgid "Anim Change Transform"
+msgstr "Hreyfimynd Breyta Ummyndun"
+
+#: editor/animation_editor.cpp
+#, fuzzy
+msgid "Anim Change Keyframe Value"
+msgstr "Hreyfimynd Breyta Gildi"
+
+#: editor/animation_editor.cpp
+msgid "Anim Change Call"
+msgstr "Hreyfimynd Breyta Kalli"
+
+#: editor/animation_editor.cpp
+msgid "Anim Add Track"
+msgstr "Hreyfimynd Bæta Við Rás"
+
+#: editor/animation_editor.cpp
+msgid "Anim Duplicate Keys"
+msgstr "Hreyfimynd Tvöfalda Lykla"
+
+#: editor/animation_editor.cpp
+msgid "Move Anim Track Up"
+msgstr "Færa Hreyfimynda Rás Upp"
+
+#: editor/animation_editor.cpp
+msgid "Move Anim Track Down"
+msgstr "Færa Hreyfimynda Rás Niður"
+
+#: editor/animation_editor.cpp
+msgid "Remove Anim Track"
+msgstr "Fjarlægja Hreyfimynda Rás"
+
+#: editor/animation_editor.cpp
+msgid "Set Transitions to:"
+msgstr "Sitja Stöðuskipti á:"
+
+#: editor/animation_editor.cpp
+msgid "Anim Track Rename"
+msgstr "Endurnefna Hreyfimyndarás"
+
+#: editor/animation_editor.cpp
+msgid "Anim Track Change Interpolation"
+msgstr "Breyta Brúun á Hreyfimyndarás"
+
+#: editor/animation_editor.cpp
+msgid "Anim Track Change Value Mode"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Track Change Wrap Mode"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Edit Node Curve"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Edit Selection Curve"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Delete Keys"
+msgstr ""
+
+#: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Duplicate Selection"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Duplicate Transposed"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Remove Selection"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Continuous"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Discrete"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Trigger"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Add Key"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Move Keys"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Scale Selection"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Scale From Cursor"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Goto Next Step"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Goto Prev Step"
+msgstr ""
+
+#: editor/animation_editor.cpp editor/plugins/curve_editor_plugin.cpp
+#: editor/property_editor.cpp
+msgid "Linear"
+msgstr ""
+
+#: editor/animation_editor.cpp editor/plugins/theme_editor_plugin.cpp
+msgid "Constant"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "In"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Out"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "In-Out"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Out-In"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Transitions"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Optimize Animation"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Clean-Up Animation"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Create NEW track for %s and insert key?"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Create %d NEW tracks and insert keys?"
+msgstr ""
+
+#: editor/animation_editor.cpp editor/create_dialog.cpp
+#: editor/editor_audio_buses.cpp editor/plugins/abstract_polygon_2d_editor.cpp
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#: editor/plugins/particles_editor_plugin.cpp editor/project_manager.cpp
+#: editor/script_create_dialog.cpp
+msgid "Create"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Create & Insert"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Insert Track & Key"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Insert Key"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Change Anim Len"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Change Anim Loop"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Create Typed Value Key"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Insert"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Scale Keys"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Add Call Track"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Animation zoom."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Length (s):"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Animation length (in seconds)."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Step (s):"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Cursor step snap (in seconds)."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Enable/Disable looping in animation."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Add new tracks."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Move current track up."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Move current track down."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Remove selected track."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Track tools"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Enable editing of individual keys by clicking them."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim. Optimizer"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Max. Linear Error:"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Max. Angular Error:"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Max Optimizable Angle:"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Optimize"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Select an AnimationPlayer from the Scene Tree to edit animations."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Key"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Transition"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Scale Ratio:"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Call Functions in Which Node?"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Remove invalid keys"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Remove unresolved and empty tracks"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Clean-up all animations"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Clean-Up Animation(s) (NO UNDO!)"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Clean-Up"
+msgstr ""
+
+#: editor/array_property_edit.cpp
+msgid "Resize Array"
+msgstr ""
+
+#: editor/array_property_edit.cpp
+msgid "Change Array Value Type"
+msgstr ""
+
+#: editor/array_property_edit.cpp
+msgid "Change Array Value"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Go to Line"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Line Number:"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "No Matches"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Replaced %d occurrence(s)."
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Replace"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Replace All"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Match Case"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Whole Words"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Selection Only"
+msgstr ""
+
+#: editor/code_editor.cpp editor/editor_node.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/project_settings_editor.cpp
+msgid "Search"
+msgstr ""
+
+#: editor/code_editor.cpp editor/editor_help.cpp
+msgid "Find"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Next"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Not found!"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Replace By"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Case Sensitive"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Backwards"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Prompt On Replace"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Skip"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Zoom In"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Zoom Out"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Reset Zoom"
+msgstr ""
+
+#: editor/code_editor.cpp editor/script_editor_debugger.cpp
+msgid "Line:"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Col:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Method in target Node must be specified!"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid ""
+"Target method not found! Specify a valid method or attach a script to target "
+"Node."
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connect To Node:"
+msgstr ""
+
+#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp
+#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
+msgid "Add"
+msgstr ""
+
+#: editor/connections_dialog.cpp editor/dependency_editor.cpp
+#: editor/plugins/animation_tree_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp
+#: editor/project_settings_editor.cpp
+msgid "Remove"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Add Extra Call Argument:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Extra Call Arguments:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Path to Node:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Make Function"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Deferred"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Oneshot"
+msgstr ""
+
+#: editor/connections_dialog.cpp editor/dependency_editor.cpp
+#: editor/export_template_manager.cpp
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp
+#: editor/project_settings_editor.cpp editor/property_editor.cpp
+#: editor/run_settings_dialog.cpp editor/settings_config_dialog.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Close"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connect"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connect '%s' to '%s'"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connecting Signal:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Disconnect '%s' from '%s'"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connect.."
+msgstr ""
+
+#: editor/connections_dialog.cpp
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Disconnect"
+msgstr ""
+
+#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
+msgid "Signals"
+msgstr ""
+
+#: editor/create_dialog.cpp
+msgid "Create New %s"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
+#: editor/filesystem_dock.cpp
+msgid "Favorites:"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
+msgid "Recent:"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/editor_node.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
+#: editor/quick_open.cpp
+msgid "Search:"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/editor_help.cpp
+#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
+#: editor/quick_open.cpp
+msgid "Matches:"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/editor_help.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp
+#: editor/script_editor_debugger.cpp
+msgid "Description:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Search Replacement For:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Dependencies For:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid ""
+"Scene '%s' is currently being edited.\n"
+"Changes will not take effect unless reloaded."
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid ""
+"Resource '%s' is in use.\n"
+"Changes will take effect when reloaded."
+msgstr ""
+
+#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dependencies"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Resource"
+msgstr ""
+
+#: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp
+#: editor/project_manager.cpp editor/project_settings_editor.cpp
+#: editor/script_create_dialog.cpp
+msgid "Path"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Dependencies:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Fix Broken"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Dependency Editor"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Search Replacement Resource:"
+msgstr ""
+
+#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp
+#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp
+#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
+#: editor/quick_open.cpp scene/gui/file_dialog.cpp
+msgid "Open"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Owners Of:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Remove selected files from the project? (no undo)"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid ""
+"The files being removed are required by other resources in order for them to "
+"work.\n"
+"Remove them anyway? (no undo)"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Cannot remove:\n"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Error loading:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Scene failed to load due to missing dependencies:"
+msgstr ""
+
+#: editor/dependency_editor.cpp editor/editor_node.cpp
+msgid "Open Anyway"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Which action should be taken?"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Fix Dependencies"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Errors loading!"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Permanently delete %d item(s)? (No undo!)"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Owns"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Resources Without Explicit Ownership:"
+msgstr ""
+
+#: editor/dependency_editor.cpp editor/editor_node.cpp
+msgid "Orphan Resource Explorer"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Delete selected files?"
+msgstr ""
+
+#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
+msgid "Delete"
+msgstr ""
+
+#: editor/dictionary_property_edit.cpp
+msgid "Change Dictionary Key"
+msgstr ""
+
+#: editor/dictionary_property_edit.cpp
+msgid "Change Dictionary Value"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Thanks from the Godot community!"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Thanks!"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Godot Engine contributors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Project Founders"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Lead Developer"
+msgstr ""
+
+#: editor/editor_about.cpp editor/project_manager.cpp
+msgid "Project Manager"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Developers"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Authors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Platinum Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Gold Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Mini Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Gold Donors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Silver Donors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Donors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Donors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "License"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Thirdparty License"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid ""
+"Godot Engine relies on a number of thirdparty free and open source "
+"libraries, all compatible with the terms of its MIT license. The following "
+"is an exhaustive list of all such thirdparty components with their "
+"respective copyright statements and license terms."
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "All Components"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Components"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Licenses"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp editor/project_manager.cpp
+msgid "Error opening package file, not in zip format."
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+msgid "Uncompressing Assets"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp editor/project_manager.cpp
+msgid "Package Installed Successfully!"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Success!"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp
+msgid "Install"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+msgid "Package Installer"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Speakers"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Add Effect"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Rename Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Change Audio Bus Volume"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Toggle Audio Bus Solo"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Toggle Audio Bus Mute"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Toggle Audio Bus Bypass Effects"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Select Audio Bus Send"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Add Audio Bus Effect"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Move Bus Effect"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Delete Bus Effect"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus, Drag and Drop to rearrange."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Solo"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Mute"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Bypass"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Bus options"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "Duplicate"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Reset Volume"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Delete Effect"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Add Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Master bus can't be deleted!"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Delete Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Duplicate Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Reset Bus Volume"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Move Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Save Audio Bus Layout As.."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Location for New Layout.."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Open Audio Bus Layout"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "There is no 'res://default_bus_layout.tres' file."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Invalid file, not an audio bus layout."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Add Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Create a new Bus Layout."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp editor/property_editor.cpp
+#: editor/script_create_dialog.cpp
+msgid "Load"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Load an existing Bus Layout."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Save As"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Save this Bus Layout to a file."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp editor/import_dock.cpp
+msgid "Load Default"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Load the default Bus Layout."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Invalid name."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Valid characters:"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Invalid name. Must not collide with an existing engine class name."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Invalid name. Must not collide with an existing buit-in type name."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Invalid name. Must not collide with an existing global constant name."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Invalid Path."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Not in resource path."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Add AutoLoad"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Autoload '%s' already exists!"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Rename Autoload"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Toggle AutoLoad Globals"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Move Autoload"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Remove Autoload"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Enable"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Rearrange Autoloads"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp
+#: scene/gui/file_dialog.cpp
+msgid "Path:"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Node Name:"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
+msgid "Name"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Singleton"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "Updating Scene"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "Storing local changes.."
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "Updating scene.."
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp
+msgid "Please select a base directory first"
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp
+msgid "Choose a Directory"
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
+#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
+msgid "Create Folder"
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
+#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: scene/gui/file_dialog.cpp
+msgid "Name:"
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
+#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
+msgid "Could not create folder."
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp
+msgid "Choose"
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid "Storing File:"
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid "Packing"
+msgstr ""
+
+#: editor/editor_export.cpp platform/javascript/export/export.cpp
+msgid "Template file not found:\n"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "File Exists, Overwrite?"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Select Current Folder"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "All Recognized"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "All Files (*)"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Open a File"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Open File(s)"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Open a Directory"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Open a File or Directory"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/script_editor_plugin.cpp scene/gui/file_dialog.cpp
+msgid "Save"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Save a File"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Toggle Favorite"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Toggle Mode"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Focus Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Move Favorite Up"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Move Favorite Down"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Go to parent folder"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Directories & Files:"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Preview:"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/script_editor_debugger.cpp
+#: scene/gui/file_dialog.cpp
+msgid "File:"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Must use a valid extension."
+msgstr ""
+
+#: editor/editor_file_system.cpp
+msgid "ScanSources"
+msgstr ""
+
+#: editor/editor_file_system.cpp
+msgid "(Re)Importing Assets"
+msgstr ""
+
+#: editor/editor_help.cpp editor/editor_node.cpp
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Search Help"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Class List:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Search Classes"
+msgstr ""
+
+#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+msgid "Top"
+msgstr ""
+
+#: editor/editor_help.cpp editor/property_editor.cpp
+msgid "Class:"
+msgstr ""
+
+#: editor/editor_help.cpp editor/scene_tree_editor.cpp
+msgid "Inherits:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Inherited by:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Brief Description:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Members"
+msgstr ""
+
+#: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp
+msgid "Members:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Public Methods"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Public Methods:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "GUI Theme Items"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "GUI Theme Items:"
+msgstr ""
+
+#: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp
+msgid "Signals:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Enumerations"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Enumerations:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "enum "
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Constants"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Constants:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Description"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Properties"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid ""
+"There is currently no description for this property. Please help us by "
+"[color=$color][url=$url]contributing one[/url][/color]!"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Methods"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Method Description:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid ""
+"There is currently no description for this method. Please help us by [color="
+"$color][url=$url]contributing one[/url][/color]!"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Search Text"
+msgstr ""
+
+#: editor/editor_log.cpp
+msgid "Output:"
+msgstr ""
+
+#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
+#: editor/property_editor.cpp editor/script_editor_debugger.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
+msgid "Clear"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
+msgid "Error saving resource!"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
+msgid "Save Resource As.."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "I see.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't open file for writing:"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Requested file format unknown:"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error while saving."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't open '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error while parsing '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Unexpected end of file '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Missing '%s' or its dependencies."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error while loading '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Saving Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Analyzing"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Creating Thumbnail"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "This operation can't be done without a tree root."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Couldn't save scene. Likely dependencies (instances) couldn't be satisfied."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Failed to load resource."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't load MeshLibrary for merging!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error saving MeshLibrary!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't load TileSet for merging!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error saving TileSet!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error trying to save layout!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Default editor layout overridden."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Layout name not found!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Restored default layout to base settings."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This resource belongs to a scene that was imported, so it's not editable.\n"
+"Please read the documentation relevant to importing scenes to better "
+"understand this workflow."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This resource belongs to a scene that was instanced or inherited.\n"
+"Changes to it will not be kept when saving the current scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This resource was imported, so it's not editable. Change its settings in the "
+"import panel and then re-import."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This scene was imported, so changes to it will not be kept.\n"
+"Instancing it or inheriting will allow making changes to it.\n"
+"Please read the documentation relevant to importing scenes to better "
+"understand this workflow."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This is a remote object so changes to it will not be kept.\n"
+"Please read the documentation relevant to debugging to better understand "
+"this workflow."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Expand all properties"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Collapse all properties"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Copy Params"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Paste Params"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Paste Resource"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Copy Resource"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Make Built-In"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Make Sub-Resources Unique"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open in Help"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "There is no defined scene to run."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"No main scene has ever been defined, select one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Current scene was never saved, please save it prior to running."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Could not start subprocess!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Base Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quick Open Scene.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quick Open Script.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save & Close"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save changes to '%s' before closing?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save Scene As.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "No"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Yes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "This scene has never been saved. Save before running?"
+msgstr ""
+
+#: editor/editor_node.cpp editor/scene_tree_dock.cpp
+msgid "This operation can't be done without a scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Export Mesh Library"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "This operation can't be done without a root node."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Export Tile Set"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "This operation can't be done without a selected node."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Current scene not saved. Open anyway?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't reload a scene that was never saved."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Revert"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "This action cannot be undone. Revert anyway?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quick Run Scene.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quit"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Exit the editor?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Project Manager?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save & Quit"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save changes to the following scene(s) before quitting?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save changes the following scene(s) before opening Project Manager?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This option is deprecated. Situations where refresh must be forced are now "
+"considered a bug. Please report."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Pick a Main Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Unable to find script field for addon plugin at: 'res://addons/%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Unable to load addon script from path: '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Unable to load addon script from path: '%s' Base type is not EditorPlugin."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Scene '%s' was automatically imported, so it can't be modified.\n"
+"To make changes to it, a new inherited scene can be created."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "Ugh"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Error loading scene, it must be inside the project path. Use 'Import' to "
+"open the scene, then save it inside the project path."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Scene '%s' has broken dependencies:"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Clear Recent Scenes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save Layout"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Delete Layout"
+msgstr ""
+
+#: editor/editor_node.cpp editor/import_dock.cpp
+#: editor/script_create_dialog.cpp
+msgid "Default"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Switch Scene Tab"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "%d more files or folders"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "%d more folders"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "%d more files"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Dock Position"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Distraction Free Mode"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Toggle distraction-free mode."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Add a new scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Go to previously opened scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Next tab"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Previous tab"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Filter Files.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Operations with scene files."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "New Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "New Inherited Scene.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Scene.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save all Scenes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Close Scene"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Open Recent"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Convert To.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "MeshLibrary.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "TileSet.."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+msgid "Undo"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
+#: scene/gui/line_edit.cpp
+msgid "Redo"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Revert Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Miscellaneous project or scene-wide tools."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Project"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Project Settings"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Run Script"
+msgstr ""
+
+#: editor/editor_node.cpp editor/project_export.cpp
+msgid "Export"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Tools"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quit to Project List"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Debug"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Deploy with Remote Debug"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When exporting or deploying, the resulting executable will attempt to "
+"connect to the IP of this computer in order to be debugged."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Small Deploy with Network FS"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, export or deploy will produce a minimal "
+"executable.\n"
+"The filesystem will be provided from the project by the editor over the "
+"network.\n"
+"On Android, deploy will use the USB cable for faster performance. This "
+"option speeds up testing for games with a large footprint."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Visible Collision Shapes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
+"running game if this option is turned on."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Visible Navigation"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Navigation meshes and polygons will be visible on the running game if this "
+"option is turned on."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Sync Scene Changes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is turned on, any changes made to the scene in the editor "
+"will be replicated in the running game.\n"
+"When used remotely on a device, this is more efficient with network "
+"filesystem."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Sync Script Changes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is turned on, any script that is saved will be reloaded on "
+"the running game.\n"
+"When used remotely on a device, this is more efficient with network "
+"filesystem."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Editor"
+msgstr ""
+
+#: editor/editor_node.cpp editor/settings_config_dialog.cpp
+msgid "Editor Settings"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Editor Layout"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Toggle Fullscreen"
+msgstr ""
+
+#: editor/editor_node.cpp editor/project_export.cpp
+msgid "Manage Export Templates"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Help"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Classes"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Online Docs"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Q&A"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Issue Tracker"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
+msgid "Community"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "About"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play the project."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Pause the scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Pause Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Stop the scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Stop"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play the edited scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play custom scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play Custom Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Spins when the editor window repaints!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Update Always"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Update Changes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Disable Update Spinner"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Inspector"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Create a new resource in memory and edit it."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Load an existing resource from disk and edit it."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save the currently edited resource."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Save As.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Go to the previous edited object in history."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Go to the next edited object in history."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "History of recently edited objects."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Object properties."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Changes may be lost!"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
+#: editor/project_manager.cpp
+msgid "Import"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Node"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "FileSystem"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Output"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Don't Save"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Import Templates From ZIP File"
+msgstr ""
+
+#: editor/editor_node.cpp editor/project_export.cpp
+msgid "Export Project"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Export Library"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Merge With Existing"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Password:"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open & Run a Script"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "New Inherited"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Load Errors"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp
+msgid "Select"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open 2D Editor"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open 3D Editor"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Script Editor"
+msgstr ""
+
+#: editor/editor_node.cpp editor/project_manager.cpp
+msgid "Open Asset Library"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open the next Editor"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open the previous Editor"
+msgstr ""
+
+#: editor/editor_plugin.cpp
+msgid "Creating Mesh Previews"
+msgstr ""
+
+#: editor/editor_plugin.cpp
+msgid "Thumbnail.."
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+msgid "Installed Plugins:"
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+msgid "Update"
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Version:"
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+msgid "Author:"
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+msgid "Status:"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Stop Profiling"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Start Profiling"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Measure:"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Frame Time (sec)"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Average Time (sec)"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Frame %"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Physics Frame %"
+msgstr ""
+
+#: editor/editor_profiler.cpp editor/script_editor_debugger.cpp
+msgid "Time:"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Inclusive"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Self"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Frame #:"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
+#: editor/editor_run_native.cpp
+msgid "Select device from the list"
+msgstr ""
+
+#: editor/editor_run_native.cpp
+msgid ""
+"No runnable export preset found for this platform.\n"
+"Please add a runnable preset in the export menu."
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "Write your logic in the _run() method."
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "There is an edited scene already."
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "Couldn't instance script:"
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "Did you forget the 'tool' keyword?"
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "Couldn't run script:"
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "Did you forget the '_run' method?"
+msgstr ""
+
+#: editor/editor_settings.cpp
+msgid "Default (Same as Editor)"
+msgstr ""
+
+#: editor/editor_sub_scene.cpp
+msgid "Select Node(s) to Import"
+msgstr ""
+
+#: editor/editor_sub_scene.cpp
+msgid "Scene Path:"
+msgstr ""
+
+#: editor/editor_sub_scene.cpp
+msgid "Import From Node:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Re-Download"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Uninstall"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "(Installed)"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Download"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "(Missing)"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "(Current)"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Retrieving mirrors, please wait.."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Remove template version '%s'?"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Can't open export templates zip."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Invalid version.txt format inside templates."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid ""
+"Invalid version.txt format inside templates. Revision is not a valid "
+"identifier."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "No version.txt found inside templates."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Error creating path for templates:\n"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Extracting Export Templates"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Importing:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid ""
+"No download links found for this version. Direct download is only available "
+"for official releases."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Can't resolve."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Can't connect."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "No response."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Request Failed."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Redirect Loop."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Failed:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Can't write file."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Download Complete."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Error requesting url: "
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Connecting to Mirror.."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Disconnected"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Resolving"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Can't Resolve"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Connecting.."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Can't Connect"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Connected"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Requesting.."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Downloading"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Connection Error"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "SSL Handshake Error"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Current Version:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Installed Versions:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Install From File"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Remove Template"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Select template file"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Export Template Manager"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Download Templates"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Select mirror from list: "
+msgstr ""
+
+#: editor/file_type_cache.cpp
+msgid "Can't open file_type_cache.cch for writing, not saving file type cache!"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Cannot navigate to '%s' as it has not been found in the file system!"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "View items as a grid of thumbnails"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "View items as a list"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid ""
+"\n"
+"Status: Import of file failed. Please fix file and reimport manually."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Cannot move/rename resources root."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Cannot move a folder into itself.\n"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Error moving:\n"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Error duplicating:\n"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Unable to update dependencies:\n"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "No name provided"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Provided name contains invalid characters"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "No name provided."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Name contains invalid characters."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "A file or folder with this name already exists."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Renaming file:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Renaming folder:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Duplicating file:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Duplicating folder:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Expand all"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Collapse all"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Rename.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Move To.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Open Scene(s)"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Instance"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Edit Dependencies.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "View Owners.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Hreyfimynd Tvöfalda Lykla"
+
+#: editor/filesystem_dock.cpp
+msgid "Previous Directory"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Next Directory"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Re-Scan Filesystem"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Toggle folder status as Favorite"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Instance the selected scene(s) as child of the selected node."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid ""
+"Scanning Files,\n"
+"Please Wait.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Move"
+msgstr ""
+
+#: editor/filesystem_dock.cpp editor/plugins/animation_tree_editor_plugin.cpp
+#: editor/project_manager.cpp
+msgid "Rename"
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Add to Group"
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Remove from Group"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import as Single Scene"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Animations"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Materials"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Objects"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Objects+Materials"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Objects+Animations"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Materials+Animations"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Objects+Materials+Animations"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import as Multiple Scenes"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import as Multiple Scenes+Materials"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+#: editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Import Scene"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Importing Scene.."
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Running Custom Script.."
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Couldn't load post-import script:"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Invalid/broken script for post-import (check console):"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Error running post-import script:"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Saving.."
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "Set as Default for '%s'"
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "Clear Default for '%s'"
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid " Files"
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "Import As:"
+msgstr ""
+
+#: editor/import_dock.cpp editor/property_editor.cpp
+msgid "Preset.."
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "Reimport"
+msgstr ""
+
+#: editor/multi_node_edit.cpp
+msgid "MultiNode Set"
+msgstr ""
+
+#: editor/node_dock.cpp
+msgid "Groups"
+msgstr ""
+
+#: editor/node_dock.cpp
+msgid "Select a Node to edit Signals and Groups."
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Create Poly"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+#: editor/plugins/collision_polygon_editor_plugin.cpp
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Edit Poly"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid "Insert Point"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+#: editor/plugins/collision_polygon_editor_plugin.cpp
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Edit Poly (Remove Point)"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid "Remove Poly And Point"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid "Create a new polygon from scratch"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid ""
+"Edit existing polygon:\n"
+"LMB: Move Point.\n"
+"Ctrl+LMB: Split Segment.\n"
+"RMB: Erase Point."
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid "Delete points"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Toggle Autoplay"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "New Animation Name:"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "New Anim"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Change Animation Name:"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Delete Animation?"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Remove Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: Invalid animation name!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: Animation name already exists!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Rename Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Blend Next Changed"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Change Blend Time"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Load Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Duplicate Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: No animation to copy!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: No animation resource on clipboard!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Pasted Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Paste Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: No animation to edit!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation backwards from current pos. (A)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation backwards from end. (Shift+A)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Stop animation playback. (S)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation from start. (Shift+D)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation from current pos. (D)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation position (in seconds)."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Scale animation playback globally for the node."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Create new animation in player."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Load animation from disk."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Load an animation from disk."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Save the current animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Display list of animations in player."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Autoplay on Load"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Edit Target Blend Times"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation Tools"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Copy Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Onion Skinning"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Enable Onion Skinning"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Directions"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Past"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Future"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Depth"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "1 step"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "2 steps"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "3 steps"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Differences Only"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Force White Modulate"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Include Gizmos (3D)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Create New Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation Name:"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
+#: editor/script_create_dialog.cpp
+msgid "Error!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Blend Times:"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Next (Auto Queue):"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Cross-Animation Blend Times"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "New name:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Edit Filters"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Scale:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Fade In (s):"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Fade Out (s):"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Mix"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Auto Restart:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Restart (s):"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Random Restart (s):"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Start!"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Amount:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend 0:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend 1:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "X-Fade Time (s):"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Current:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Add Input"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Clear Auto-Advance"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Set Auto-Advance"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Delete Input"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Animation tree is valid."
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Animation tree is invalid."
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Animation Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "OneShot Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Mix Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend2 Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend3 Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend4 Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "TimeScale Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "TimeSeek Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Transition Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Import Animations.."
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Edit Node Filters"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Filters.."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Free"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Contents:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "View Files"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Can't resolve hostname:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Connection error, please try again."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Can't connect to host:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "No response from host:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Request failed, return code:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Request failed, too many redirects"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Bad download hash, assuming file has been tampered with."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Expected:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Got:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Failed sha256 hash check"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Asset Download Error:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Fetching:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Resolving.."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Error making request"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Idle"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Retry"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Download Error"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Download for this asset is already in progress!"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "first"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "prev"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "next"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "last"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "All"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+#: editor/project_settings_editor.cpp
+msgid "Plugins"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Sort:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Reverse"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+#: editor/project_settings_editor.cpp
+msgid "Category:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Site:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Support.."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Official"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Testing"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Assets ZIP File"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
+#: editor/plugins/camera_editor_plugin.cpp
+msgid "Preview"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Configure Snap"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid Offset:"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid Step:"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotation Offset:"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotation Step:"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move Pivot"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move Action"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move vertical guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Create new vertical guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Remove vertical guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move horizontal guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Create new horizontal guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Remove horizontal guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Create new horizontal and vertical guides"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Edit IK Chain"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Edit CanvasItem"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Anchors only"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change Anchors and Margins"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change Anchors"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Paste Pose"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Select Mode"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Drag: Rotate"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Move"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+RMB: Depth list selection"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move Mode"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate Mode"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Show a list of all objects at the position clicked\n"
+"(same as Alt+RMB in select mode)."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Click to change object's rotation pivot."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Pan Mode"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Toggles snapping"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Use Snap"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snapping options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to grid"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Use Rotation Snap"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Configure Snap..."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap Relative"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Use Pixel Snap"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Smart snapping"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to parent"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to node anchor"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to node sides"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to other nodes"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to guides"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock the selected object in place (can't be moved)."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock the selected object (can be moved)."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Makes sure the object's children are not selectable."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Restores the object's children's ability to be selected."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Make Bones"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear Bones"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Show Bones"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Make IK Chain"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear IK Chain"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Show Grid"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Show helpers"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Show rulers"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Show guides"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Center Selection"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Frame Selection"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Layout"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Insert Keys"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Insert Key"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Insert Key (Existing Tracks)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Copy Pose"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear Pose"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Drag pivot from mouse position"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Set pivot at mouse position"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Multiply grid step by 2"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Divide grid step by 2"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
+#: editor/plugins/collision_polygon_editor_plugin.cpp
+msgid "Create Poly3D"
+msgstr ""
+
+#: editor/plugins/collision_shape_2d_editor_plugin.cpp
+msgid "Set Handle"
+msgstr ""
+
+#: editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Remove item %d?"
+msgstr ""
+
+#: editor/plugins/cube_grid_theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Add Item"
+msgstr ""
+
+#: editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Remove Selected Item"
+msgstr ""
+
+#: editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Import from Scene"
+msgstr ""
+
+#: editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Update from Scene"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Flat0"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Flat1"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Ease in"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Ease out"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Smoothstep"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Modify Curve Point"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Modify Curve Tangent"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Load Curve Preset"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Add point"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Remove point"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Left linear"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Right linear"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Load preset"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Remove Curve Point"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Toggle Curve Linear Tangent"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Hold Shift to edit tangents individually"
+msgstr ""
+
+#: editor/plugins/gi_probe_editor_plugin.cpp
+msgid "Bake GI Probe"
+msgstr ""
+
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Add/Remove Color Ramp Point"
+msgstr ""
+
+#: editor/plugins/gradient_editor_plugin.cpp
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Modify Color Ramp"
+msgstr ""
+
+#: editor/plugins/item_list_editor_plugin.cpp
+msgid "Item %d"
+msgstr ""
+
+#: editor/plugins/item_list_editor_plugin.cpp
+msgid "Items"
+msgstr ""
+
+#: editor/plugins/item_list_editor_plugin.cpp
+msgid "Item List Editor"
+msgstr ""
+
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid ""
+"No OccluderPolygon2D resource on this node.\n"
+"Create and assign one?"
+msgstr ""
+
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Create Occluder Polygon"
+msgstr ""
+
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Create a new polygon from scratch."
+msgstr ""
+
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Edit existing polygon:"
+msgstr ""
+
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "LMB: Move Point."
+msgstr ""
+
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Ctrl+LMB: Split Segment."
+msgstr ""
+
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "RMB: Erase Point."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh is empty!"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Static Trimesh Body"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Static Convex Body"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "This doesn't work on scene root!"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Trimesh Shape"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Convex Shape"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Navigation Mesh"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "MeshInstance lacks a Mesh!"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Could not create outline!"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Outline"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Trimesh Static Body"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Convex Static Body"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Trimesh Collision Sibling"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Convex Collision Sibling"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Outline Mesh.."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV1"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV2"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Outline Mesh"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Outline Size:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "No mesh source specified (and no MultiMesh set in node)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "No mesh source specified (and MultiMesh contains no Mesh)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh source is invalid (invalid path)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh source is invalid (not a MeshInstance)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh source is invalid (contains no Mesh resource)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "No surface source specified."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (invalid path)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (no geometry)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (no faces)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Parent has no solid faces to populate."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Couldn't map area."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Select a Source Mesh:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Select a Target Surface:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Populate Surface"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Populate MultiMesh"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Target Surface:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Source Mesh:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "X-Axis"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Y-Axis"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Z-Axis"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh Up Axis:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Random Rotation:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Random Tilt:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Random Scale:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Populate"
+msgstr ""
+
+#: editor/plugins/navigation_mesh_editor_plugin.cpp
+msgid "Bake!"
+msgstr ""
+
+#: editor/plugins/navigation_mesh_editor_plugin.cpp
+msgid "Bake the navigation mesh.\n"
+msgstr ""
+
+#: editor/plugins/navigation_mesh_editor_plugin.cpp
+msgid "Clear the navigation mesh."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Setting up Configuration..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Calculating grid size..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Creating heightfield..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Marking walkable triangles..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Constructing compact heightfield..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Eroding walkable area..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Partitioning..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Creating contours..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Creating polymesh..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Converting to native navigation mesh..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Navigation Mesh Generator Setup:"
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Parsing Geometry..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Done!"
+msgstr ""
+
+#: editor/plugins/navigation_polygon_editor_plugin.cpp
+msgid "Create Navigation Polygon"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Generating AABB"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Can only set point into a ParticlesMaterial process material"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Error loading image:"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "No pixels with transparency > 128 in image.."
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Generate Visibility Rect"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Load Emission Mask"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Particles"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Generated Point Count:"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Generation Time (sec):"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Emission Mask"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Capture from Pixel"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Emission Colors"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Node does not contain geometry."
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Node does not contain geometry (faces)."
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "A processor material of type 'ParticlesMaterial' is required."
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Faces contain no area!"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "No faces!"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Generate AABB"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Create Emission Points From Mesh"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Create Emission Points From Node"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Create Emitter"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Emission Points:"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Surface Points"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Surface Points+Normal (Directed)"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Volume"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Emission Source: "
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Generate Visibility AABB"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Remove Point from Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Remove Out-Control from Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Remove In-Control from Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Add Point to Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Move Point in Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Move In-Control in Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Move Out-Control in Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Select Points"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Shift+Drag: Select Control Points"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Click: Add Point"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Right Click: Delete Point"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Select Control Points (Shift+Drag)"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Add Point (in empty space)"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Split Segment (in curve)"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Delete Point"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Close Curve"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Curve Point #"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve Point Position"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve In Position"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve Out Position"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Split Path"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Remove Path Point"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Remove Out-Control Point"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Remove In-Control Point"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Create UV Map"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Transform UV Map"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Polygon 2D UV Editor"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Move Point"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift: Move All"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Ctrl: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Move Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Rotate Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Scale Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/project_manager.cpp
+#: editor/project_settings_editor.cpp editor/property_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Edit"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Polygon->UV"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "UV->Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Clear UV"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Enable Snap"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "ERROR: Couldn't load resource!"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Add Resource"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Rename Resource"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Delete Resource"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Resource clipboard is empty!"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Load Resource"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+msgid "Paste"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Clear Recent Files"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid ""
+"Close and save changes?\n"
+"\""
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error while saving theme"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error saving"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error importing theme"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error importing"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Import Theme"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Save Theme As.."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid " Class Reference"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Sort"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Move Up"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Move Down"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Next script"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Previous script"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "File"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "New"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Save All"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Soft Reload Script"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Copy Script Path"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "History Prev"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "History Next"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Reload Theme"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Save Theme"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Save Theme As"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Close Docs"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Close All"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Close Other Tabs"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
+msgid "Run"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Toggle Scripts Panel"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+msgid "Find.."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+msgid "Find Next"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
+msgid "Step Over"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
+msgid "Step Into"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
+msgid "Break"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
+#: editor/script_editor_debugger.cpp
+msgid "Continue"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Keep Debugger Open"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Debug with external editor"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Open Godot online documentation"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Search the class hierarchy."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Search the reference documentation."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Go to previous edited document."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Go to next edited document."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Discard"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Create Script"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid ""
+"The following files are newer on disk.\n"
+"What action should be taken?:"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Reload"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Resave"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
+msgid "Debugger"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid ""
+"Built-in scripts can only be edited when the scene they belong to is loaded"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Only resources from filesystem can be dropped."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Pick Color"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Convert Case"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Uppercase"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Lowercase"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Capitalize"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
+msgid "Cut"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+msgid "Copy"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
+msgid "Select All"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Delete Line"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Indent Left"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Indent Right"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Toggle Comment"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Clone Down"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Fold/Unfold Line"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Fold All Lines"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Unfold All Lines"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Complete Symbol"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Trim Trailing Whitespace"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Convert Indent To Spaces"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Convert Indent To Tabs"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Auto Indent"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Toggle Breakpoint"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Remove All Breakpoints"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Goto Next Breakpoint"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Goto Previous Breakpoint"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Convert To Uppercase"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Convert To Lowercase"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Find Previous"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Replace.."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Goto Function.."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Goto Line.."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Contextual Help"
+msgstr ""
+
+#: editor/plugins/shader_editor_plugin.cpp
+msgid "Shader"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Scalar Constant"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Constant"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change RGB Constant"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Scalar Operator"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Operator"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Scalar Operator"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change RGB Operator"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Toggle Rot Only"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Scalar Function"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Function"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Scalar Uniform"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Uniform"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change RGB Uniform"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Default Value"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change XForm Uniform"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Texture Uniform"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Cubemap Uniform"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Comment"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Add/Remove to Color Ramp"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Add/Remove to Curve Map"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Modify Curve Map"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Input Name"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Connect Graph Nodes"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Disconnect Graph Nodes"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Remove Shader Graph Node"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Move Shader Graph Node"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Duplicate Graph Node(s)"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Delete Shader Graph Node(s)"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Error: Cyclic Connection Link"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Error: Missing Input Connections"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Add Shader Graph Node"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Aborted."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "X-Axis Transform."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Y-Axis Transform."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Z-Axis Transform."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Plane Transform."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Scaling: "
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Translating: "
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotating %s degrees."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Keying is disabled (no key inserted)."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Animation Key Inserted."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Objects Drawn"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Material Changes"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Shader Changes"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Surface Changes"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Draw Calls"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Vertices"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "FPS"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Align with view"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Normal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Wireframe"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Overdraw"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Unshaded"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Environment"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Gizmos"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Information"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View FPS"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Half Resolution"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Audio Listener"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Doppler Enable"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Left"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Right"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Forward"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Backwards"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Up"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Down"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Speed Modifier"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "preview"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "XForm Dialog"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Select Mode (Q)\n"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Drag: Rotate\n"
+"Alt+Drag: Move\n"
+"Alt+RMB: Depth list selection"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Move Mode (W)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate Mode (E)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Scale Mode (R)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Switch Perspective/Orthogonal view"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Insert Animation Key"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Focus Origin"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Focus Selection"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Align Selection With View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Tool Select"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Tool Move"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Tool Rotate"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Tool Scale"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Toggle Freelook"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Configure Snap.."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Dialog.."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "1 Viewport"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "2 Viewports"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "2 Viewports (Alt)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "3 Viewports"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "3 Viewports (Alt)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "4 Viewports"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Origin"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Grid"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Settings"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Settings"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Translate Snap:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate Snap (deg.):"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Scale Snap (%):"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Viewport Settings"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Perspective FOV (deg.):"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Z-Near:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Z-Far:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Change"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Translate:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate (deg.):"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Scale (ratio):"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Type"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Pre"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Post"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "ERROR: Couldn't load frame resource!"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add Frame"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Resource clipboard is empty or not a texture!"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Paste Frame"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add Empty"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation FPS"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "(empty)"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Animations"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Speed (FPS):"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Loop"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Animation Frames"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Insert Empty (Before)"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Insert Empty (After)"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Move (Before)"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Move (After)"
+msgstr ""
+
+#: editor/plugins/style_box_editor_plugin.cpp
+msgid "StyleBox Preview:"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Set Region Rect"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Snap Mode:"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "<None>"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Pixel Snap"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Grid Snap"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Offset:"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Step:"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Separation:"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Can't save theme to file:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add All Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add All"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Remove Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Remove All Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Remove All"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Edit theme.."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme editing menu."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Class Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Remove Class Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Create Empty Template"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Create Empty Editor Template"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Create From Current Editor Theme"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "CheckBox Radio1"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "CheckBox Radio2"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Check Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Checked Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Has"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Many"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+msgid "Options"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Have,Many,Several,Options!"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Tab 1"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Tab 2"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Tab 3"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp
+msgid "Type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Data Type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Icon"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Style"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Font"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Color"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Erase Selection"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Paint TileMap"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Line Draw"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Bucket Fill"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Erase TileMap"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Erase selection"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Find tile"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Transpose"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Mirror X"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Mirror Y"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Paint Tile"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Pick Tile"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate 0 degrees"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate 90 degrees"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate 180 degrees"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate 270 degrees"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Could not find tile:"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Item name or ID:"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create from scene?"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Merge from scene?"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Tile Set"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create from Scene"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Merge from Scene"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp editor/script_editor_debugger.cpp
+msgid "Error"
+msgstr ""
+
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Runnable"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Delete patch '%s' from list?"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Delete preset '%s'?"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted: "
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Presets"
+msgstr ""
+
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+msgid "Add.."
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Resources"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export all resources in the project"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export selected scenes (and dependencies)"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export selected resources (and dependencies)"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export Mode:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Resources to export:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid ""
+"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid ""
+"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Patches"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Make Patch"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Features"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Custom (comma-separated):"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Feature List:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export PCK/Zip"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export templates for this platform are missing:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export With Debug"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "The path does not exist."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Please choose a 'project.godot' file."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Your project will be created in a non empty folder (you might want to create "
+"a new folder)."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Please choose a folder that does not contain a 'project.godot' file."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Imported Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "It would be a good idea to name your project."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Invalid project path (changed anything?)."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Couldn't get project.godot in project path."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Couldn't edit project.godot in project path."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Couldn't create project.godot in project path."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "The following files failed extraction from package:"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Rename Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Couldn't get project.godot in the project path."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "New Game Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Import Existing Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Create New Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Install Project:"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Project Name:"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Create folder"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Project Path:"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Browse"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "That's a BINGO!"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Unnamed Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Can't open project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Are you sure to open more than one project?"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Can't run project: no main scene defined.\n"
+"Please edit the project and set the main scene in \"Project Settings\" under "
+"the \"Application\" category."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Can't run project: Assets need to be imported.\n"
+"Please edit the project to trigger the initial import."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Are you sure to run more than one project?"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Remove project from the list? (Folder contents will not be modified)"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Language changed.\n"
+"The UI will update next time the editor or project manager starts."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"You are about the scan %s folders for existing Godot projects. Do you "
+"confirm?"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Project List"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Scan"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Select a Folder to Scan"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "New Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Templates"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Exit"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Restart Now"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Can't run project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"You don't currently have any projects.\n"
+"Would you like to explore the official example projects in the Asset Library?"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Key "
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Joy Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Joy Axis"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Mouse Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Invalid action (anything goes but '/' or ':')."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Action '%s' already exists!"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Rename Input Action Event"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add Input Action Event"
+msgstr ""
+
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
+msgid "Shift+"
+msgstr ""
+
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
+msgid "Alt+"
+msgstr ""
+
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
+msgid "Control+"
+msgstr ""
+
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
+msgid "Press a Key.."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Mouse Button Index:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Left Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Right Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Middle Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Wheel Up Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Wheel Down Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Button 6"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Button 7"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Button 8"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Button 9"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Joypad Axis Index:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Axis"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Joypad Button Index:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Erase Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Erase Input Action Event"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add Event"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Device"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Left Button."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Right Button."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Middle Button."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Wheel Up."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Wheel Down."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add Global Property"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Select a setting item first!"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "No property '%s' exists."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Setting '%s' is internal, and it can't be deleted."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Delete Item"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Can't contain '/' or ':'"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Already existing"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Error saving settings."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Settings saved OK."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Override for Feature"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add Translation"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Remove Translation"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add Remapped Path"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Resource Remap Add Remap"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Change Resource Remap Language"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Remove Resource Remap"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Remove Resource Remap Option"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Changed Locale Filter"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Changed Locale Filter Mode"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Project Settings (project.godot)"
+msgstr ""
+
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
+msgid "General"
+msgstr ""
+
+#: editor/project_settings_editor.cpp editor/property_editor.cpp
+msgid "Property:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Override For.."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Input Map"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Action:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Device:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Index:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Localization"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Translations"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Translations:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Remaps"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Resources:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Remaps by Locale:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Locale"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Locales Filter"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Show all locales"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Show only selected locales"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Filter mode:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Locales:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "AutoLoad"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Pick a Viewport"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Ease In"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Ease Out"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Zero"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Easing In-Out"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Easing Out-In"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "File.."
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Dir.."
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Assign"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Select Node"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "New Script"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Make Unique"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Show in File System"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Convert To %s"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Error loading file: Not a resource!"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Selected node is not a Viewport!"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Pick a Node"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Bit %d, val %d."
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "On"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
+#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
+msgid "Set"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Properties:"
+msgstr ""
+
+#: editor/property_selector.cpp
+msgid "Select Property"
+msgstr ""
+
+#: editor/property_selector.cpp
+msgid "Select Virtual Method"
+msgstr ""
+
+#: editor/property_selector.cpp
+msgid "Select Method"
+msgstr ""
+
+#: editor/pvrtc_compress.cpp
+msgid "Could not execute PVRTC tool:"
+msgstr ""
+
+#: editor/pvrtc_compress.cpp
+msgid "Can't load back converted image using PVRTC tool:"
+msgstr ""
+
+#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
+msgid "Reparent Node"
+msgstr ""
+
+#: editor/reparent_dialog.cpp
+msgid "Reparent Location (Select new Parent):"
+msgstr ""
+
+#: editor/reparent_dialog.cpp
+msgid "Keep Global Transform"
+msgstr ""
+
+#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
+msgid "Reparent"
+msgstr ""
+
+#: editor/run_settings_dialog.cpp
+msgid "Run Mode:"
+msgstr ""
+
+#: editor/run_settings_dialog.cpp
+msgid "Current Scene"
+msgstr ""
+
+#: editor/run_settings_dialog.cpp
+msgid "Main Scene"
+msgstr ""
+
+#: editor/run_settings_dialog.cpp
+msgid "Main Scene Arguments:"
+msgstr ""
+
+#: editor/run_settings_dialog.cpp
+msgid "Scene Run Settings"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp editor/script_create_dialog.cpp
+#: scene/gui/dialogs.cpp
+msgid "OK"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "No parent to instance the scenes at."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Error loading scene from %s"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Ok"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot instance the scene '%s' because the current scene exists within one "
+"of its nodes."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Instance Scene(s)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "This operation can't be done on the tree root."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Move Node In Parent"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Move Nodes In Parent"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Duplicate Node(s)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Delete Node(s)?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Can not perform with the root node."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "This operation can't be done on instanced scenes."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Save New Scene As.."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Editable Children"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Load As Placeholder"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Discard Instancing"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Makes Sense!"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Can't operate on nodes from a foreign scene!"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Can't operate on nodes the current scene inherits from!"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Remove Node(s)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Couldn't save new scene. Likely dependencies (instances) couldn't be "
+"satisfied."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Error saving scene."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Error duplicating scene to save it."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Sub-Resources:"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Clear Inheritance"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp
+msgid "Open in Editor"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Delete Node(s)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Add Child Node"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Instance Child Scene"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Change Type"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Attach Script"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Clear Script"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Merge From Scene"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Save Branch as Scene"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Copy Node Path"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Delete (No Confirm)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Add/Create a New Node"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Instance a scene file as a Node. Creates an inherited scene if no root node "
+"exists."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Filter nodes"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Attach a new or existing script for the selected node."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Remote"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Local"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Clear Inheritance? (No Undo!)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Clear!"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Toggle Spatial Visible"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Toggle CanvasItem Visible"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Node configuration warning:"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid ""
+"Node has connection(s) and group(s)\n"
+"Click to show signals dock."
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid ""
+"Node has connections.\n"
+"Click to show signals dock."
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid ""
+"Node is in group(s).\n"
+"Click to show groups dock."
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Instance:"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Open script"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid ""
+"Node is locked.\n"
+"Click to unlock"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid ""
+"Children are not selectable.\n"
+"Click to make selectable"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Toggle Visibility"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Invalid node name, the following characters are not allowed:"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Rename Node"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Scene Tree (Nodes):"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Node Configuration Warning!"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Select a Node"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Error loading template '%s'"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Error - Could not create script in filesystem."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "N/A"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Path is empty"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Path is not local"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid base path"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Directory of the same name exists"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "File exists, will be reused"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid extension"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Wrong extension chosen"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid Path"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid class name"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid inherited parent name or path"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Script valid"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Allowed: a-z, A-Z, 0-9 and _"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Built-in script (into scene file)"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Create new script file"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Load existing script file"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Language"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Inherits"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Class Name"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Template"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Built-in Script"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Attach Node Script"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Remote "
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Bytes:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Warning"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Error:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Source:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Function:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Pick one or more items from the list to display the graph."
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Errors"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Child Process Connected"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Inspect Previous Instance"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Inspect Next Instance"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Stack Frames"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Variable"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Errors:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Stack Trace (if applicable):"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Profiler"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Monitor"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Value"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Monitors"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "List of Video Memory Usage by Resource:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Total:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Video Mem"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Resource Path"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Type"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Format"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Usage"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Misc"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Clicked Control:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Clicked Control Type:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Live Edit Root:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Set From Tree"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+msgid "Shortcuts"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Light Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change AudioStreamPlayer3D Emission Angle"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Camera FOV"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Camera Size"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Sphere Shape Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Box Shape Extents"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Capsule Shape Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Capsule Shape Height"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Ray Shape Length"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Notifier Extents"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Particles AABB"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Remove current entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Status"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Libraries: "
+msgstr ""
+
+#: modules/gdnative/register_types.cpp
+msgid "GDNative"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+#: modules/visual_script/visual_script_builtin_funcs.cpp
+msgid "Invalid type argument to convert(), use TYPE_* constants."
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h
+#: modules/visual_script/visual_script_builtin_funcs.cpp
+msgid "Not enough bytes for decoding bytes, or invalid format."
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "step argument is zero!"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Not a script with an instance"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Not based on a script"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Not based on a resource file"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Invalid instance dictionary format (missing @path)"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Invalid instance dictionary format (can't load script at @path)"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Invalid instance dictionary format (invalid script at @path)"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Invalid instance dictionary (invalid subclasses)"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Object can't provide a length."
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Delete Selection"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Duplicate Selection"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Floor:"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Grid Map"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Snap View"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Previous Floor"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Next Floor"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Clip Disabled"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Clip Above"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Clip Below"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Edit X Axis"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Edit Y Axis"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Edit Z Axis"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Rotate X"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Rotate Y"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Rotate Z"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Back Rotate X"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Back Rotate Y"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Back Rotate Z"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Clear Rotation"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Create Area"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Create Exterior Connector"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Erase Area"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Clear Selection"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Settings"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Pick Distance:"
+msgstr ""
+
+#: modules/mono/editor/mono_bottom_panel.cpp
+msgid "Builds"
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid ""
+"A node yielded without working memory, please read the docs on how to yield "
+"properly!"
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid ""
+"Node yielded, but did not return a function state in the first working "
+"memory."
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid ""
+"Return value must be assigned to first element of node working memory! Fix "
+"your node please."
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid "Node returned an invalid sequence output: "
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid "Found sequence bit but not the node in the stack, report bug!"
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid "Stack overflow with stack depth: "
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Signal Arguments"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Argument Type"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Argument name"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Set Variable Default Value"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Set Variable Type"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Functions:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Variables:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Name is not a valid identifier:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Name already in use by another func/var/signal:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Rename Function"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Rename Variable"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Rename Signal"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Function"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Variable"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Signal"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Expression"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove VisualScript Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Duplicate VisualScript Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold %s to drop a simple reference to the node."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold Ctrl to drop a simple reference to the node."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold %s to drop a Variable Setter."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold Ctrl to drop a Variable Setter."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Preload Node"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node(s) From Tree"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Getter Property"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Setter Property"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Base Type"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Move Node(s)"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove VisualScript Node"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Connect Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Condition"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Sequence"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Switch"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Iterator"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "While"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Return"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Call"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Get"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Script already has function '%s'"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Input Value"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Can't copy the function node."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Clipboard is empty!"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Paste VisualScript Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove Function"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Edit Variable"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove Variable"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Edit Signal"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove Signal"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Editing Variable:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Editing Signal:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Base Type:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Available Nodes:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Select or create a function to edit graph"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Edit Signal Arguments:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Edit Variable:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Delete Selected"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Find Node Type"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Copy Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Cut Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Paste Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "Input type not iterable: "
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "Iterator became invalid"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "Iterator became invalid: "
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Invalid index property name."
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Base object is not a Node!"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Path does not lead Node!"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Invalid index property name '%s' in node %s."
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid ": Invalid argument of type: "
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid ": Invalid arguments: "
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "VariableGet not found in script: "
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "VariableSet not found in script: "
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Custom node has no _step() method, can't process graph."
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid ""
+"Invalid return value from _step(), must be integer (seq out), or string "
+"(error)."
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Run in Browser"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Run exported HTML in the system's default browser."
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Could not write file:\n"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Could not open template for export:\n"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Invalid export template:\n"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Could not read custom HTML shell:\n"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Could not read boot splash image file:\n"
+msgstr ""
+
+#: scene/2d/animated_sprite.cpp
+msgid ""
+"A SpriteFrames resource must be created or set in the 'Frames' property in "
+"order for AnimatedSprite to display frames."
+msgstr ""
+
+#: scene/2d/canvas_modulate.cpp
+msgid ""
+"Only one visible CanvasModulate is allowed per scene (or set of instanced "
+"scenes). The first created one will work, while the rest will be ignored."
+msgstr ""
+
+#: scene/2d/collision_polygon_2d.cpp
+msgid ""
+"CollisionPolygon2D only serves to provide a collision shape to a "
+"CollisionObject2D derived node. Please only use it as a child of Area2D, "
+"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
+msgstr ""
+
+#: scene/2d/collision_polygon_2d.cpp
+msgid "An empty CollisionPolygon2D has no effect on collision."
+msgstr ""
+
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"CollisionShape2D only serves to provide a collision shape to a "
+"CollisionObject2D derived node. Please only use it as a child of Area2D, "
+"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
+msgstr ""
+
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"A shape must be provided for CollisionShape2D to function. Please create a "
+"shape resource for it!"
+msgstr ""
+
+#: scene/2d/light_2d.cpp
+msgid ""
+"A texture with the shape of the light must be supplied to the 'texture' "
+"property."
+msgstr ""
+
+#: scene/2d/light_occluder_2d.cpp
+msgid ""
+"An occluder polygon must be set (or drawn) for this occluder to take effect."
+msgstr ""
+
+#: scene/2d/light_occluder_2d.cpp
+msgid "The occluder polygon for this occluder is empty. Please draw a polygon!"
+msgstr ""
+
+#: scene/2d/navigation_polygon.cpp
+msgid ""
+"A NavigationPolygon resource must be set or created for this node to work. "
+"Please set a property or draw a polygon."
+msgstr ""
+
+#: scene/2d/navigation_polygon.cpp
+msgid ""
+"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
+"node. It only provides navigation data."
+msgstr ""
+
+#: scene/2d/parallax_layer.cpp
+msgid ""
+"ParallaxLayer node only works when set as child of a ParallaxBackground node."
+msgstr ""
+
+#: scene/2d/particles_2d.cpp scene/3d/particles.cpp
+msgid ""
+"A material to process the particles is not assigned, so no behavior is "
+"imprinted."
+msgstr ""
+
+#: scene/2d/path_2d.cpp
+msgid "PathFollow2D only works when set as a child of a Path2D node."
+msgstr ""
+
+#: scene/2d/physics_body_2d.cpp
+msgid ""
+"Size changes to RigidBody2D (in character or rigid modes) will be overriden "
+"by the physics engine when running.\n"
+"Change the size in children collision shapes instead."
+msgstr ""
+
+#: scene/2d/remote_transform_2d.cpp
+msgid "Path property must point to a valid Node2D node to work."
+msgstr ""
+
+#: scene/2d/visibility_notifier_2d.cpp
+msgid ""
+"VisibilityEnable2D works best when used with the edited scene root directly "
+"as parent."
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid "ARVRCamera must have an ARVROrigin node as its parent"
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid "ARVRController must have an ARVROrigin node as its parent"
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid ""
+"The controller id must not be 0 or this controller will not be bound to an "
+"actual controller"
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid "ARVRAnchor must have an ARVROrigin node as its parent"
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid ""
+"The anchor id must not be 0 or this anchor will not be bound to an actual "
+"anchor"
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid "ARVROrigin requires an ARVRCamera child node"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
+#: scene/3d/collision_polygon.cpp
+msgid ""
+"CollisionPolygon only serves to provide a collision shape to a "
+"CollisionObject derived node. Please only use it as a child of Area, "
+"StaticBody, RigidBody, KinematicBody, etc. to give them a shape."
+msgstr ""
+
+#: scene/3d/collision_polygon.cpp
+msgid "An empty CollisionPolygon has no effect on collision."
+msgstr ""
+
+#: scene/3d/collision_shape.cpp
+msgid ""
+"CollisionShape only serves to provide a collision shape to a CollisionObject "
+"derived node. Please only use it as a child of Area, StaticBody, RigidBody, "
+"KinematicBody, etc. to give them a shape."
+msgstr ""
+
+#: scene/3d/collision_shape.cpp
+msgid ""
+"A shape must be provided for CollisionShape to function. Please create a "
+"shape resource for it!"
+msgstr ""
+
+#: scene/3d/gi_probe.cpp
+msgid "Plotting Meshes"
+msgstr ""
+
+#: scene/3d/navigation_mesh.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: scene/3d/navigation_mesh.cpp
+msgid ""
+"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
+"It only provides navigation data."
+msgstr ""
+
+#: scene/3d/particles.cpp
+msgid ""
+"Nothing is visible because meshes have not been assigned to draw passes."
+msgstr ""
+
+#: scene/3d/physics_body.cpp
+msgid ""
+"Size changes to RigidBody (in character or rigid modes) will be overriden by "
+"the physics engine when running.\n"
+"Change the size in children collision shapes instead."
+msgstr ""
+
+#: scene/3d/remote_transform.cpp
+msgid "Path property must point to a valid Spatial node to work."
+msgstr ""
+
+#: scene/3d/scenario_fx.cpp
+msgid ""
+"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)."
+msgstr ""
+
+#: scene/3d/sprite_3d.cpp
+msgid ""
+"A SpriteFrames resource must be created or set in the 'Frames' property in "
+"order for AnimatedSprite3D to display frames."
+msgstr ""
+
+#: scene/3d/vehicle_body.cpp
+msgid ""
+"VehicleWheel serves to provide a wheel system to a VehicleBody. Please use "
+"it as a child of a VehicleBody."
+msgstr ""
+
+#: scene/gui/color_picker.cpp
+msgid "Raw Mode"
+msgstr ""
+
+#: scene/gui/color_picker.cpp
+msgid "Add current color as a preset"
+msgstr ""
+
+#: scene/gui/dialogs.cpp
+msgid "Alert!"
+msgstr ""
+
+#: scene/gui/dialogs.cpp
+msgid "Please Confirm..."
+msgstr ""
+
+#: scene/gui/file_dialog.cpp
+msgid "Select this Folder"
+msgstr ""
+
+#: scene/gui/popup.cpp
+msgid ""
+"Popups will hide by default unless you call popup() or any of the popup*() "
+"functions. Making them visible for editing is fine though, but they will "
+"hide upon running."
+msgstr ""
+
+#: scene/gui/scroll_container.cpp
+msgid ""
+"ScrollContainer is intended to work with a single child control.\n"
+"Use a container as child (VBox,HBox,etc), or a Control and set the custom "
+"minimum size manually."
+msgstr ""
+
+#: scene/gui/tree.cpp
+msgid "(Other)"
+msgstr ""
+
+#: scene/main/scene_tree.cpp
+msgid ""
+"Default Environment as specified in Project Setings (Rendering -> Viewport -"
+"> Default Environment) could not be loaded."
+msgstr ""
+
+#: scene/main/viewport.cpp
+msgid ""
+"This viewport is not set as render target. If you intend for it to display "
+"its contents directly to the screen, make it a child of a Control so it can "
+"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
+"texture to some node for display."
+msgstr ""
+
+#: scene/resources/dynamic_font.cpp
+msgid "Error initializing FreeType."
+msgstr ""
+
+#: scene/resources/dynamic_font.cpp
+msgid "Unknown font format."
+msgstr ""
+
+#: scene/resources/dynamic_font.cpp
+msgid "Error loading font."
+msgstr ""
+
+#: scene/resources/dynamic_font.cpp
+msgid "Invalid font size."
+msgstr ""
+
+#~ msgid "Move Add Key"
+#~ msgstr "Hreyfa Viðbótar Lykil"
diff --git a/editor/translations/it.po b/editor/translations/it.po
index 5b0d9a4154..251c29c110 100644
--- a/editor/translations/it.po
+++ b/editor/translations/it.po
@@ -11,13 +11,14 @@
# Marco Melorio <m.melorio@icloud.com>, 2017.
# Myself <whatamidoing.wt@gmail.com>, 2017.
# RealAquilus <JamesHeller@live.it>, 2017.
+# Sean Bone <seanbone@zumguy.com>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2017-11-25 22:47+0000\n"
-"Last-Translator: Myself <whatamidoing.wt@gmail.com>\n"
+"PO-Revision-Date: 2017-12-14 12:48+0000\n"
+"Last-Translator: anonymous <>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/"
"godot/it/>\n"
"Language: it\n"
@@ -36,8 +37,9 @@ msgid "All Selection"
msgstr "Seleziona Tutto"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Sposta Aggiunta Key"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Anim Cambia Valore"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -48,7 +50,8 @@ msgid "Anim Change Transform"
msgstr "Anim Cambia Transform"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Anim Cambia Valore"
#: editor/animation_editor.cpp
@@ -543,8 +546,9 @@ msgid "Connecting Signal:"
msgstr "Connessione Segnali:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Crea Sottoscrizione"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Connetti '%s' a '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -560,7 +564,8 @@ msgid "Signals"
msgstr "Segnali"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Crea Nuovo"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -575,7 +580,7 @@ msgstr "Recenti:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Cerca:"
@@ -616,6 +621,7 @@ msgstr ""
"I cambiamenti avranno effetto quando sarà ricaricata."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Dipendenze"
@@ -719,9 +725,10 @@ msgid "Delete selected files?"
msgstr "Eliminare i file selezionati?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Elimina"
@@ -864,6 +871,11 @@ msgid "Rename Audio Bus"
msgstr "Rinomina Bus Audio"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Imposta Bus Audio su Solo"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Imposta Bus Audio su Solo"
@@ -911,8 +923,8 @@ msgstr "Bypassa"
msgid "Bus options"
msgstr "Opzioni bus"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "duplica"
@@ -925,6 +937,10 @@ msgid "Delete Effect"
msgstr "Elimina Effetto"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "Aggiungi Bus Audio"
@@ -1081,7 +1097,8 @@ msgstr "Percorso:"
msgid "Node Name:"
msgstr "Nome Nodo:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Nome"
@@ -1089,10 +1106,6 @@ msgstr "Nome"
msgid "Singleton"
msgstr "Singleton"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Lista:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "Aggiornamento Scena"
@@ -1105,6 +1118,15 @@ msgstr "Memorizzando i cambiamenti locali.."
msgid "Updating scene.."
msgstr "Aggiornando la scena.."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(vuoto)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "Si prega di selezionare prima una directory di base"
@@ -1151,9 +1173,24 @@ msgid "File Exists, Overwrite?"
msgstr "File Esistente, Sovrascrivere?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "Crea Cartella"
+msgstr "Seleziona Cartella Attuale"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Copia Percorso"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Mostra nel File Manager"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Nuova Cartella.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Aggiorna"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1202,10 +1239,6 @@ msgid "Go Up"
msgstr "Vai Su"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Aggiorna"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "Abilita File Nascosti"
@@ -1385,7 +1418,8 @@ msgstr "Output:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "Rimuovi"
@@ -1546,14 +1580,12 @@ msgstr ""
"scene per comprendere al meglio questa procedura."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand all properties"
-msgstr "Espandi tutto"
+msgstr "Espandi tutte le proprietà"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Collapse all properties"
-msgstr "Comprimi tutto"
+msgstr "Comprimi tutte le proprietà"
#: editor/editor_node.cpp
msgid "Copy Params"
@@ -1829,7 +1861,6 @@ msgid "%d more folders"
msgstr "%d altre cartelle"
#: editor/editor_node.cpp
-#, fuzzy
msgid "%d more files"
msgstr "%d altri file"
@@ -2327,7 +2358,7 @@ msgstr "Frame %"
#: editor/editor_profiler.cpp
#, fuzzy
msgid "Physics Frame %"
-msgstr "Frame Fisso %"
+msgstr "Frame Fisico %"
#: editor/editor_profiler.cpp editor/script_editor_debugger.cpp
msgid "Time:"
@@ -2345,6 +2376,16 @@ msgstr "Se stesso"
msgid "Frame #:"
msgstr "Frame #:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Tempo:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Chiama"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "Seleziona il dispositivo dall'elenco"
@@ -2487,7 +2528,8 @@ msgstr "Nessuna risposta."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "Rich. Fall."
#: editor/export_template_manager.cpp
@@ -2521,14 +2563,12 @@ msgid "Disconnected"
msgstr "Disconnesso"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Resolving"
-msgstr "Risolvendo.."
+msgstr "Risolvendo"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't Resolve"
-msgstr "Impossibile risolvete."
+msgstr "Impossibile risolvere"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -2537,8 +2577,8 @@ msgstr "Connettendo.."
#: editor/export_template_manager.cpp
#, fuzzy
-msgid "Can't Conect"
-msgstr "Impossibile connettersi."
+msgid "Can't Connect"
+msgstr "Impossibile connettersi"
#: editor/export_template_manager.cpp
msgid "Connected"
@@ -2550,19 +2590,17 @@ msgid "Requesting.."
msgstr "Richiedendo.."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Downloading"
-msgstr "Scarica"
+msgstr "Download in corso"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connection Error"
-msgstr "Connettendo.."
+msgstr "Errore di connessione"
#: editor/export_template_manager.cpp
#, fuzzy
msgid "SSL Handshake Error"
-msgstr "Carica Errori"
+msgstr "Errore nell'Handshake SSL"
#: editor/export_template_manager.cpp
msgid "Current Version:"
@@ -2593,9 +2631,8 @@ msgid "Download Templates"
msgstr "Scarica Templates"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Select mirror from list: "
-msgstr "Seleziona il dispositivo dall'elenco"
+msgstr "Seleziona mirror dall'elenco "
#: editor/file_type_cache.cpp
msgid "Can't open file_type_cache.cch for writing, not saving file type cache!"
@@ -2638,6 +2675,11 @@ msgid "Error moving:\n"
msgstr "Errore spostamento:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Errore in caricamento:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "Impossibile aggiornare le dipendenze:\n"
@@ -2670,6 +2712,16 @@ msgid "Renaming folder:"
msgstr "Rinomina cartella:"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "duplica"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Rinomina cartella:"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "Espandi tutto"
@@ -2678,10 +2730,6 @@ msgid "Collapse all"
msgstr "Comprimi tutto"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "Copia Percorso"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "Rinomina.."
@@ -2690,12 +2738,9 @@ msgid "Move To.."
msgstr "Sposta in.."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "Nuova Cartella.."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "Mostra nel File Manager"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Apri Scena"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2710,6 +2755,11 @@ msgid "View Owners.."
msgstr "Vedi Proprietari.."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "duplica"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "Directory Precedente"
@@ -2775,9 +2825,8 @@ msgid "Import with Separate Objects+Materials"
msgstr "Importa con Oggetti Separati+Materiali"
#: editor/import/resource_importer_scene.cpp
-#, fuzzy
msgid "Import with Separate Objects+Animations"
-msgstr "Importa con Oggetti Separati+Animazioni"
+msgstr "Importa con Oggetti Separati e Animazioni"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials+Animations"
@@ -2805,6 +2854,16 @@ msgid "Importing Scene.."
msgstr "Importando Scena.."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "Trasferisci a Lightmap:"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "Generando AABB"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "Eseguendo Script Personalizzato.."
@@ -2830,7 +2889,7 @@ msgstr "Imposta come Default per '%s'"
#: editor/import_dock.cpp
msgid "Clear Default for '%s'"
-msgstr ""
+msgstr "Elimina Default per '%s'"
#: editor/import_dock.cpp
msgid " Files"
@@ -2886,9 +2945,8 @@ msgid "Remove Poly And Point"
msgstr "Rimuovi Poligono e Punto"
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Create a new polygon from scratch"
-msgstr "Crea un nuovo poligono dal nulla."
+msgstr "Crea un nuovo poligono da zero"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid ""
@@ -3056,42 +3114,41 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Attiva Onion Skinning"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "Sezioni:"
+msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Past"
-msgstr "Incolla"
+msgstr "Passato"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Future"
-msgstr "Texture"
+msgstr "Futuro"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Profondità"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 Passo"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "2 steps"
-msgstr ""
+msgstr "2 Passi"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "3 steps"
-msgstr ""
+msgstr "3 Passi"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Solo Differenze"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
@@ -3376,6 +3433,7 @@ msgid "last"
msgstr "ultimo"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Tutti"
@@ -3417,6 +3475,28 @@ msgstr "Testing"
msgid "Assets ZIP File"
msgstr "ZIP File degli Asset"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "Trasferisci a Lightmap:"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "Anteprima"
@@ -3456,27 +3536,22 @@ msgid "Move vertical guide"
msgstr "Muovi guida verticale"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create new vertical guide"
msgstr "Crea nuova guida verticale"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove vertical guide"
msgstr "Rimuovi guida verticale"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move horizontal guide"
msgstr "Sposta guida orizzontale"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create new horizontal guide"
msgstr "Crea nuova guida orizzontale"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove horizontal guide"
msgstr "Rimuovi guida orizzontale"
@@ -3558,22 +3633,19 @@ msgstr "Modalità di Pan"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Toggles snapping"
-msgstr "Abilita Breakpoint"
+msgstr "Abilita snapping"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "Usa lo Snap"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snapping options"
msgstr "Opzioni snapping"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snap to grid"
-msgstr "Modalità Snap:"
+msgstr "Allinea alla griglia"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Rotation Snap"
@@ -3599,16 +3671,17 @@ msgstr "Snapping intelligente"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Snap to parent"
-msgstr "Espandi a Genitore"
+msgstr "Allinea a Genitore"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Snap to node anchor"
-msgstr ""
+msgstr "Allinea ad ancora nodo"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Snap to node sides"
-msgstr "Snap ai lati del nodo"
+msgstr "Allinea ai lati del nodo"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to other nodes"
@@ -3617,7 +3690,7 @@ msgstr "Snap ad altri nodi"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
msgid "Snap to guides"
-msgstr "Modalità Snap:"
+msgstr "Allinea alle guide"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -3753,16 +3826,6 @@ msgstr "Errore istanziamento scena da %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "OK :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "Nessun genitore del quale istanziare un figlio."
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr "Questa operazione richiede un solo nodo selezionato."
@@ -3873,12 +3936,13 @@ msgid "Remove Curve Point"
msgstr "Rimuovi Punto Percorso"
#: editor/plugins/curve_editor_plugin.cpp
+#, fuzzy
msgid "Toggle Curve Linear Tangent"
-msgstr ""
+msgstr "Aziona Tangente di Curva Lineare"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Hold Shift to edit tangents individually"
-msgstr ""
+msgstr "Tenere Premuto Shift per modificare le tangenti singolarmente"
#: editor/plugins/gi_probe_editor_plugin.cpp
msgid "Bake GI Probe"
@@ -3967,6 +4031,22 @@ msgid "Create Navigation Mesh"
msgstr "Crea Mesh di Navigazione"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr "MeshInstance manca di una Mesh!"
@@ -4007,6 +4087,20 @@ msgid "Create Outline Mesh.."
msgstr "Crea Mesh di Outline.."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Vista"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Vista"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr "Crea Mesh di Outline"
@@ -4177,8 +4271,9 @@ msgid "Converting to native navigation mesh..."
msgstr "Convertendo a Mesh do Navigazione nativa..."
#: editor/plugins/navigation_mesh_generator.cpp
+#, fuzzy
msgid "Navigation Mesh Generator Setup:"
-msgstr ""
+msgstr "Impostazioni Generatore Rete di Navigazione"
#: editor/plugins/navigation_mesh_generator.cpp
#, fuzzy
@@ -4194,10 +4289,6 @@ msgid "Create Navigation Polygon"
msgstr "Crea Poligono di Navigazione"
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr "Cancella Maschera Emissione"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr "Generando AABB"
@@ -4217,10 +4308,6 @@ msgid "No pixels with transparency > 128 in image.."
msgstr "Nessun pixel con trasparenza >128 nell'immagine.."
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "Imposta Maschera Emissione"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
msgstr "Genera Rect Visibilità"
@@ -4229,6 +4316,10 @@ msgid "Load Emission Mask"
msgstr "Carica Maschera Emissione"
#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "Cancella Maschera Emissione"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
msgstr "Particelle"
@@ -4287,10 +4378,6 @@ msgid "Create Emission Points From Node"
msgstr "Crea Punti Emissione Da Nodo"
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "Cancella Emitter"
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr "Crea Emitter"
@@ -4536,10 +4623,13 @@ msgid "Clear Recent Files"
msgstr "Elimina File recenti"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
msgid ""
"Close and save changes?\n"
"\""
msgstr ""
+"Chiudere e salvare i cambiamenti?\n"
+"\""
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme"
@@ -4566,8 +4656,9 @@ msgid "Save Theme As.."
msgstr "Salva Tema Come.."
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
msgid " Class Reference"
-msgstr ""
+msgstr " Riferimento di Classe"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
@@ -4576,11 +4667,13 @@ msgstr "Ordina:"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "Sposta Su"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "Sposta giù"
@@ -4596,7 +4689,7 @@ msgstr "Script Precedente"
msgid "File"
msgstr "File"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "Nuovo"
@@ -4609,6 +4702,11 @@ msgid "Soft Reload Script"
msgstr "Ricarica Script Soft"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Copia Percorso"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr "Cronologia Succ."
@@ -4637,8 +4735,9 @@ msgid "Close All"
msgstr "Chiudi Tutto"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
msgid "Close Other Tabs"
-msgstr ""
+msgstr "Chiudi le Altre Schede"
#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
msgid "Run"
@@ -4741,8 +4840,9 @@ msgstr ""
"cui appartengono è caricata"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
msgid "Only resources from filesystem can be dropped."
-msgstr ""
+msgstr "Solo le risorse del filesystem possono essere liberate."
#: editor/plugins/script_text_editor.cpp
msgid "Pick Color"
@@ -4803,20 +4903,17 @@ msgstr "Clona Sotto"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
-msgstr "Vai alla Linea"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
+msgid "Fold/Unfold Line"
+msgstr "Svolgere Linea"
#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
-msgstr ""
+msgstr "Piegare Tutte le Linee"
#: editor/plugins/script_text_editor.cpp
+#, fuzzy
msgid "Unfold All Lines"
-msgstr ""
+msgstr "Svolgere Tutte le Linee"
#: editor/plugins/script_text_editor.cpp
msgid "Complete Symbol"
@@ -5131,12 +5228,20 @@ msgstr "Vertici"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS"
-msgstr ""
+msgstr "FPS"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align with view"
msgstr "Allinea a vista"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "OK :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "Nessun genitore del quale istanziare un figlio."
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "Mostra Normale"
@@ -5247,6 +5352,20 @@ msgid "Scale Mode (R)"
msgstr "Modalità Scala (R)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "Coordinate locali"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "Modalità Scala (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Modalità Snap:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "Vista dal Basso"
@@ -5320,10 +5439,6 @@ msgid "Configure Snap.."
msgstr "Configura Snap..."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "Coordinate locali"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr "Finestra di Transform.."
@@ -5365,6 +5480,10 @@ msgid "Settings"
msgstr "Impostazioni"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr "Impostazioni Snap"
@@ -5568,11 +5687,11 @@ msgstr "Rimuovi"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Edit theme.."
-msgstr ""
+msgstr "Modifica Tema…"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme editing menu."
-msgstr ""
+msgstr "Menu di modifica dei temi."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
@@ -5757,6 +5876,11 @@ msgid "Merge from scene?"
msgstr "Unisci da scena?"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet.."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "Crea da Scena"
@@ -5768,6 +5892,10 @@ msgstr "Unisci da Scena"
msgid "Error"
msgstr "Errore"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Annulla"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Eseguibile"
@@ -5847,7 +5975,7 @@ msgstr "Texture"
#: editor/project_export.cpp
msgid "Custom (comma-separated):"
-msgstr ""
+msgstr "Personalizzato (separati da virgola):"
#: editor/project_export.cpp
#, fuzzy
@@ -5886,22 +6014,21 @@ msgid ""
"Your project will be created in a non empty folder (you might want to create "
"a new folder)."
msgstr ""
+"Il tuo progetto verrà creato in una cartella già esistente (forse vorresti "
+"creare una nuova cartella?)."
#: editor/project_manager.cpp
msgid "Please choose a folder that does not contain a 'project.godot' file."
msgstr ""
+"Per favore seleziona una cartella che non contiene un file 'project.godot'."
#: editor/project_manager.cpp
msgid "Imported Project"
msgstr "Progetto Importato"
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
-msgstr ""
+msgstr "Sarebbe una buona idea dare un nome al tuo progetto."
#: editor/project_manager.cpp
msgid "Invalid project path (changed anything?)."
@@ -6001,6 +6128,8 @@ msgid ""
"Can't run project: Assets need to be imported.\n"
"Please edit the project to trigger the initial import."
msgstr ""
+"Impossibile eseguire il progetto: le Risorse devono essere importate.\n"
+"Per favore modifica il progetto per azionare l'importo iniziale."
#: editor/project_manager.cpp
msgid "Are you sure to run more than one project?"
@@ -6017,6 +6146,9 @@ msgid ""
"Language changed.\n"
"The UI will update next time the editor or project manager starts."
msgstr ""
+"Lingua cambiata.\n"
+"L'interfaccia utente sarà aggiornata la prossima volta che l'editor o il "
+"project manager si avvia."
#: editor/project_manager.cpp
msgid ""
@@ -6059,10 +6191,13 @@ msgid "Can't run project"
msgstr "Impossibile connettersi."
#: editor/project_manager.cpp
+#, fuzzy
msgid ""
"You don't currently have any projects.\n"
"Would you like to explore the official example projects in the Asset Library?"
msgstr ""
+"Al momento non hai alcun progetto.\n"
+"Ti piacerebbe esplorare gli esempi ufficiali nella libreria delle Risorse?"
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -6170,8 +6305,9 @@ msgid "Joypad Button Index:"
msgstr "Indice Pulsante Joypad:"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "Aggiungi azione di input"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Elimina Evento di Azione Input"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6216,7 +6352,7 @@ msgstr "Aggiungi Proprietà Getter"
#: editor/project_settings_editor.cpp
msgid "Select a setting item first!"
-msgstr ""
+msgstr "Prima seleziona un oggetto di impostazione!"
#: editor/project_settings_editor.cpp
#, fuzzy
@@ -6225,7 +6361,7 @@ msgstr "Proprietà:"
#: editor/project_settings_editor.cpp
msgid "Setting '%s' is internal, and it can't be deleted."
-msgstr ""
+msgstr "L'impostazione '%s' è interna e non può essere rimossa."
#: editor/project_settings_editor.cpp
#, fuzzy
@@ -6243,6 +6379,10 @@ msgid "Already existing"
msgstr "Attiva Persistenza"
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "Aggiungi azione di input"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "Errore nel salvare le impostazioni."
@@ -6252,7 +6392,7 @@ msgstr "Impostazioni salvate OK."
#: editor/project_settings_editor.cpp
msgid "Override for Feature"
-msgstr ""
+msgstr "Sovrascrivi per Caratteristica"
#: editor/project_settings_editor.cpp
msgid "Add Translation"
@@ -6305,7 +6445,7 @@ msgstr "Proprietà:"
#: editor/project_settings_editor.cpp
msgid "Override For.."
-msgstr ""
+msgstr "Sovrascrivi Per.."
#: editor/project_settings_editor.cpp
msgid "Input Map"
@@ -6363,7 +6503,7 @@ msgstr "Mostra Ossa"
#: editor/project_settings_editor.cpp
msgid "Show only selected locales"
-msgstr ""
+msgstr "Mostra solo le lingue selezionate"
#: editor/project_settings_editor.cpp
#, fuzzy
@@ -6425,6 +6565,10 @@ msgid "New Script"
msgstr "Nuovo Script"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
#, fuzzy
msgid "Make Unique"
msgstr "Crea Ossa"
@@ -6459,6 +6603,11 @@ msgstr "Bit %d, val %d."
msgid "On"
msgstr "On"
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "Aggiungi vuoto"
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "Set"
@@ -6467,10 +6616,6 @@ msgstr "Set"
msgid "Properties:"
msgstr "Proprietà:"
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr "Sezioni:"
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "Seleziona Proprietà"
@@ -6845,7 +6990,7 @@ msgstr "Percorso di base invalido"
#: editor/script_create_dialog.cpp
msgid "Directory of the same name exists"
-msgstr ""
+msgstr "Una cartella con lo stesso nome esiste già"
#: editor/script_create_dialog.cpp
#, fuzzy
@@ -6943,7 +7088,7 @@ msgstr "Funzione:"
#: editor/script_editor_debugger.cpp
msgid "Pick one or more items from the list to display the graph."
-msgstr ""
+msgstr "Scegli uno o più oggetti dalla lista per mostrare il grafico."
#: editor/script_editor_debugger.cpp
msgid "Errors"
@@ -7045,13 +7190,17 @@ msgstr "Imposta da Tree"
msgid "Shortcuts"
msgstr "Scorciatoie"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "Cambia Raggio Luce"
#: editor/spatial_editor_gizmos.cpp
msgid "Change AudioStreamPlayer3D Emission Angle"
-msgstr ""
+msgstr "Cambia l'Angolo di Emissione AudioStreamPlayer3D"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Camera FOV"
@@ -7093,23 +7242,63 @@ msgstr "Cambia AABB Particelle"
msgid "Change Probe Extents"
msgstr "Cambia Estensione Probe"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Rimuovi Punto Percorso"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Platform"
+msgstr "Copia A Piattaforma.."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "MeshLibrary.."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "GDNative"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Library"
msgstr "MeshLibrary.."
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Status"
msgstr "Stato:"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
-msgstr ""
+msgstr "Librerie: "
#: modules/gdnative/register_types.cpp
msgid "GDNative"
-msgstr ""
+msgstr "GDNative"
#: modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -7158,7 +7347,7 @@ msgstr "Istanza invalida formato dizionario (sottoclassi invalide)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Object can't provide a length."
-msgstr ""
+msgstr "L'oggetto non può fornire una lunghezza."
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
@@ -7172,7 +7361,7 @@ msgstr "Duplica Selezione"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Floor:"
-msgstr ""
+msgstr "Piano:"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
@@ -7191,7 +7380,7 @@ msgstr "Scheda precedente"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Floor"
-msgstr ""
+msgstr "Prossimo Piano"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
@@ -7199,24 +7388,26 @@ msgid "Clip Disabled"
msgstr "Disabilitato"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Clip Above"
-msgstr ""
+msgstr "Allinea Sopra"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Clip Below"
-msgstr ""
+msgstr "Allinea Sotto"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit X Axis"
-msgstr ""
+msgstr "Modifica l'Asse X"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit Y Axis"
-msgstr ""
+msgstr "Modifica l'Asse Y"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit Z Axis"
-msgstr ""
+msgstr "Modifica l'Asse Z"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
@@ -7234,20 +7425,24 @@ msgid "Cursor Rotate Z"
msgstr "Ctrl: Ruota"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Cursor Back Rotate X"
-msgstr ""
+msgstr "Rotazione all'indietro del Cursore X"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Cursor Back Rotate Y"
-msgstr ""
+msgstr "Rotazione all'indietro del Cursore Y"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Cursor Back Rotate Z"
-msgstr ""
+msgstr "Rotazione all'indietro del Cursore Z"
#: modules/gridmap/grid_map_editor_plugin.cpp
+#, fuzzy
msgid "Cursor Clear Rotation"
-msgstr ""
+msgstr "Rimuovi Rotazione Cursore"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
@@ -7280,8 +7475,9 @@ msgid "Pick Distance:"
msgstr "Istanza:"
#: modules/mono/editor/mono_bottom_panel.cpp
+#, fuzzy
msgid "Builds"
-msgstr ""
+msgstr "Costruzioni"
#: modules/visual_script/visual_script.cpp
msgid ""
@@ -7503,7 +7699,7 @@ msgstr "Get"
#: modules/visual_script/visual_script_editor.cpp
msgid "Script already has function '%s'"
-msgstr ""
+msgstr "Lo Script ha già la funzione '%s'"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -7795,11 +7991,15 @@ msgstr ""
"Path2D."
#: scene/2d/physics_body_2d.cpp
+#, fuzzy
msgid ""
"Size changes to RigidBody2D (in character or rigid modes) will be overriden "
"by the physics engine when running.\n"
"Change the size in children collision shapes instead."
msgstr ""
+"I cambiamenti di dimensione a RigidBody2D (nel personaggio o nelle modalità "
+"rigide) saranno sovrascritti dal motore fisico quando in esecuzione.\n"
+"Modifica invece la dimensione nelle sagome di collisioni figlie."
#: scene/2d/remote_transform_2d.cpp
msgid "Path property must point to a valid Node2D node to work."
@@ -7816,31 +8016,55 @@ msgstr ""
#: scene/3d/arvr_nodes.cpp
msgid "ARVRCamera must have an ARVROrigin node as its parent"
-msgstr ""
+msgstr "ARVRCamera deve avere un nodo ARVROrigin come suo genitore."
#: scene/3d/arvr_nodes.cpp
msgid "ARVRController must have an ARVROrigin node as its parent"
-msgstr ""
+msgstr "ARVRController deve avere un nodo ARVROrigin come suo genitore"
#: scene/3d/arvr_nodes.cpp
msgid ""
"The controller id must not be 0 or this controller will not be bound to an "
"actual controller"
msgstr ""
+"L'id del controller non deve essere 0 o questo controller non sarà legato ad "
+"un vero controller"
#: scene/3d/arvr_nodes.cpp
msgid "ARVRAnchor must have an ARVROrigin node as its parent"
-msgstr ""
+msgstr "ARVRAnchor deve avere un nodo ARVROrigin come suo genitore"
#: scene/3d/arvr_nodes.cpp
msgid ""
"The anchor id must not be 0 or this anchor will not be bound to an actual "
"anchor"
msgstr ""
+"L'id dell'ancora non deve essere 0 o questa ancora non sarà legata ad una "
+"vera ancora"
#: scene/3d/arvr_nodes.cpp
msgid "ARVROrigin requires an ARVRCamera child node"
-msgstr ""
+msgstr "ARVROrigin necessita di un nodo figlio ARVRCamera"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "Bliting Immagini"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "Bliting Immagini"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+#, fuzzy
+msgid "Finishing Plot"
+msgstr "Finalizzazione del Plot"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "Bliting Immagini"
#: scene/3d/collision_polygon.cpp
msgid ""
@@ -7880,10 +8104,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr "Bliting Immagini"
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7909,6 +8129,9 @@ msgid ""
"the physics engine when running.\n"
"Change the size in children collision shapes instead."
msgstr ""
+"I cambiamenti di dimensione a RigidBody (nel personaggio o nelle modalità "
+"rigide) saranno sovrascritti dal motore fisico quando in esecuzione.\n"
+"Modifica invece la dimensione in sagome di collisione figlie."
#: scene/3d/remote_transform.cpp
msgid "Path property must point to a valid Spatial node to work."
@@ -7936,6 +8159,8 @@ msgid ""
"VehicleWheel serves to provide a wheel system to a VehicleBody. Please use "
"it as a child of a VehicleBody."
msgstr ""
+"VehicleWheel serve a provvedere un sistema di ruote a VehicleBody. Per "
+"favore usalo come figlio di VehicleBody."
#: scene/gui/color_picker.cpp
#, fuzzy
@@ -7947,10 +8172,6 @@ msgid "Add current color as a preset"
msgstr "Aggiungi colore attuale come preset"
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Annulla"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Attenzione!"
@@ -7985,7 +8206,7 @@ msgstr ""
#: scene/gui/tree.cpp
msgid "(Other)"
-msgstr ""
+msgstr "(Altro)"
#: scene/main/scene_tree.cpp
msgid ""
@@ -8023,6 +8244,31 @@ msgstr "Errore caricamento font."
msgid "Invalid font size."
msgstr "Dimensione font Invalida."
+#~ msgid "Move Add Key"
+#~ msgstr "Sposta Aggiunta Key"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Crea Sottoscrizione"
+
+#~ msgid "List:"
+#~ msgstr "Lista:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "Imposta Maschera Emissione"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "Cancella Emitter"
+
+#, fuzzy
+#~ msgid "Fold Line"
+#~ msgstr "Vai alla Linea"
+
+#~ msgid " "
+#~ msgstr " "
+
+#~ msgid "Sections:"
+#~ msgstr "Sezioni:"
+
#~ msgid "Cannot navigate to '"
#~ msgstr "Impossibile navigare a '"
@@ -8563,9 +8809,6 @@ msgstr "Dimensione font Invalida."
#~ msgid "Making BVH"
#~ msgstr "Creazione BVH"
-#~ msgid "Transfer to Lightmaps:"
-#~ msgstr "Trasferisci a Lightmap:"
-
#~ msgid "Allocating Texture #"
#~ msgstr "Allocazione Texture #"
@@ -8706,9 +8949,6 @@ msgstr "Dimensione font Invalida."
#~ msgid "Del"
#~ msgstr "Elim."
-#~ msgid "Copy To Platform.."
-#~ msgstr "Copia A Piattaforma.."
-
#~ msgid "just pressed"
#~ msgstr "appena premuto"
diff --git a/editor/translations/ja.po b/editor/translations/ja.po
index dd7f1d468b..f440ad85f4 100644
--- a/editor/translations/ja.po
+++ b/editor/translations/ja.po
@@ -6,23 +6,26 @@
# akirakido <achts.y@gmail.com>, 2016-2017.
# D_first <dntk.daisei@gmail.com>, 2017.
# Daisuke Saito <d.saito@coriginate.com>, 2017.
+# h416 <shinichiro.hirama@gmail.com>, 2017.
# hopping tappy (ãŸã£ã´ã•ã‚“) <hopping.tappy@gmail.com>, 2016-2017.
+# Jun Shiozawa <haresecret@gmail.com>, 2017.
# Lexi Grafen <shfeedly@gmail.com>, 2017.
+# NoahDigital <taku_58@hotmail.com>, 2017.
# Tetsuji Ochiai <ochiaixp@gmail.com>, 2017.
# Tohru Ike (rokujyouhitoma) <rokujyouhitomajp@gmail.com>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-26 10:47+0000\n"
-"Last-Translator: D_first <dntk.daisei@gmail.com>\n"
+"PO-Revision-Date: 2017-12-20 15:43+0000\n"
+"Last-Translator: NoahDigital <taku_58@hotmail.com>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/"
"godot/ja/>\n"
"Language: ja\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 2.18-dev\n"
+"X-Generator: Weblate 2.18\n"
#: editor/animation_editor.cpp
msgid "Disabled"
@@ -33,8 +36,9 @@ msgid "All Selection"
msgstr "ã™ã¹ã¦é¸æŠž"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "追加ã—ãŸã‚­ãƒ¼ã‚’移動"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Anim 値を変更"
#: editor/animation_editor.cpp
#, fuzzy
@@ -47,8 +51,9 @@ msgid "Anim Change Transform"
msgstr "Anim 変形(トランスフォーム)"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
-msgstr "値を変更"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
+msgstr "Anim 値を変更"
#: editor/animation_editor.cpp
#, fuzzy
@@ -90,13 +95,14 @@ msgid "Anim Track Change Interpolation"
msgstr "Anim トラック補間ã®å¤‰æ›´"
#: editor/animation_editor.cpp
+#, fuzzy
msgid "Anim Track Change Value Mode"
-msgstr "Anim トラック値モード変更"
+msgstr "Anim トラック 値モードã®å¤‰æ›´"
#: editor/animation_editor.cpp
#, fuzzy
msgid "Anim Track Change Wrap Mode"
-msgstr "Anim トラック値モード変更"
+msgstr "Anim トラック ラップモードã®å¤‰æ›´"
#: editor/animation_editor.cpp
msgid "Edit Node Curve"
@@ -167,31 +173,24 @@ msgid "Linear"
msgstr "等速"
#: editor/animation_editor.cpp editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Constant"
-msgstr "一定"
+msgstr "コンスタント"
#: editor/animation_editor.cpp
-#, fuzzy
msgid "In"
-msgstr "トランジションイン"
+msgstr "イン"
#: editor/animation_editor.cpp
msgid "Out"
-msgstr "トランジションアウト"
+msgstr "アウト"
#: editor/animation_editor.cpp
-#, fuzzy
msgid "In-Out"
-msgstr ""
-"最åˆã«æ–°ã—ã„è¦ç´ ãŒãƒˆãƒ©ãƒ³ã‚¸ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ã—ã¦ã‹ã‚‰ç¾åœ¨ã®è¦ç´ ãŒãƒˆãƒ©ãƒ³ã‚¸ã‚·ãƒ§ãƒ³ã‚¢ã‚¦ãƒˆ"
-"ã™ã‚‹"
+msgstr "イン - アウト"
#: editor/animation_editor.cpp
msgid "Out-In"
-msgstr ""
-"最åˆã«ç¾åœ¨ã®è¦ç´ ãŒãƒˆãƒ©ãƒ³ã‚¸ã‚·ãƒ§ãƒ³ã‚¢ã‚¦ãƒˆã—ã¦ã‹ã‚‰æ–°ã—ã„è¦ç´ ãŒãƒˆãƒ©ãƒ³ã‚¸ã‚·ãƒ§ãƒ³ã‚¤ãƒ³"
-"ã™ã‚‹"
+msgstr "アウト - イン"
#: editor/animation_editor.cpp
#, fuzzy
@@ -591,8 +590,8 @@ msgstr "シグナルを接続:"
#: editor/connections_dialog.cpp
#, fuzzy
-msgid "Create Subscription"
-msgstr "サブスクリプションã®ç”Ÿæˆ"
+msgid "Disconnect '%s' from '%s'"
+msgstr "'%s' ã‚’ '%s' ã«æŽ¥ç¶š"
#: editor/connections_dialog.cpp
#, fuzzy
@@ -611,7 +610,8 @@ msgid "Signals"
msgstr "シグナル"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "æ–°è¦ã«ç”Ÿæˆ"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -627,7 +627,7 @@ msgstr "最近ã®:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
#, fuzzy
msgid "Search:"
msgstr "検索:"
@@ -675,6 +675,7 @@ msgstr ""
"変更ã¯å†èª­è¾¼æ™‚ã«é©ç”¨ã•れã¾ã™"
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "ä¾å­˜é–¢ä¿‚"
@@ -794,9 +795,10 @@ msgid "Delete selected files?"
msgstr "é¸æŠžã—ãŸãƒ•ァイルを消去ã—ã¾ã™ã‹?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
#, fuzzy
msgid "Delete"
msgstr "消去"
@@ -895,6 +897,9 @@ msgid ""
"is an exhaustive list of all such thirdparty components with their "
"respective copyright statements and license terms."
msgstr ""
+"Godot Engineã¯ã€MITライセンスã¨äº’æ›æ€§ã®ã‚ã‚‹ã€å¤šæ•°ã®ã‚µãƒ¼ãƒ‰ãƒ‘ーティ製ã®ãƒ•リーãŠ"
+"よã³ã‚ªãƒ¼ãƒ—ンソースã®ãƒ©ã‚¤ãƒ–ラリã«ä¾å­˜ã—ã¦ã„ã¾ã™ã€‚ 以下ã¯ã€ã‚µãƒ¼ãƒ‰ãƒ‘ーティ製コン"
+"ãƒãƒ¼ãƒãƒ³ãƒˆã®è‘—作権ãŠã‚ˆã³ãƒ©ã‚¤ã‚»ãƒ³ã‚¹æ¡é …ã®å®Œå…¨ãªãƒªã‚¹ãƒˆã§ã™ã€‚"
#: editor/editor_about.cpp
#, fuzzy
@@ -947,37 +952,37 @@ msgid "Speakers"
msgstr "スピーカー"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add Effect"
-msgstr "イベントを追加"
+msgstr "エフェクトを追加"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Rename Audio Bus"
-msgstr "オーディオãƒã‚¹ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’é–‹ã"
+msgstr "オーディオãƒã‚¹åを変更"
#: editor/editor_audio_buses.cpp
#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "オーディオãƒã‚¹ã‚’ソロã«åˆ‡ã‚Šæ›¿ãˆ"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
-msgstr "オーディオãƒã‚¹ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’é–‹ã"
+msgstr "オーディオãƒã‚¹ã‚’ソロã«åˆ‡ã‚Šæ›¿ãˆ"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Toggle Audio Bus Mute"
-msgstr "オーディオãƒã‚¹ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’é–‹ã"
+msgstr "オーディオãƒã‚¹ã‚’ミュートã«åˆ‡ã‚Šæ›¿ãˆ"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Bypass Effects"
-msgstr ""
+msgstr "オーディオãƒã‚¹ã®ãƒã‚¤ãƒ‘スエフェクト切り替ãˆ"
#: editor/editor_audio_buses.cpp
msgid "Select Audio Bus Send"
-msgstr ""
+msgstr "オーディオãƒã‚¹ã®é€ä¿¡å…ˆã‚’é¸æŠž"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add Audio Bus Effect"
-msgstr "オーディオãƒã‚¹ã‚¨ãƒ•ェクトã®è¿½åŠ "
+msgstr "オーディオãƒã‚¹ã‚¨ãƒ•ェクトを追加"
#: editor/editor_audio_buses.cpp
#, fuzzy
@@ -985,45 +990,46 @@ msgid "Move Bus Effect"
msgstr "ãƒã‚¹ã‚¨ãƒ•ェクトã®ç§»å‹•"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Delete Bus Effect"
-msgstr "é¸æŠžç¯„å›²ã‚’æ¶ˆåŽ»"
+msgstr "ãƒã‚¹ã‚¨ãƒ•ェクトを消去"
#: editor/editor_audio_buses.cpp
msgid "Audio Bus, Drag and Drop to rearrange."
-msgstr ""
+msgstr "オーディオãƒã‚¹ã‚’ドラッグ・アンド・ドロップã§(å†)整列."
#: editor/editor_audio_buses.cpp
msgid "Solo"
-msgstr ""
+msgstr "ソロ"
#: editor/editor_audio_buses.cpp
msgid "Mute"
-msgstr ""
+msgstr "ミュート"
#: editor/editor_audio_buses.cpp
msgid "Bypass"
-msgstr ""
+msgstr "ãƒã‚¤ãƒ‘ス"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Bus options"
-msgstr "サブシーンã®ã‚ªãƒ—ション"
+msgstr "ãƒã‚¹ã‚ªãƒ—ション"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "複製"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Reset Volume"
-msgstr "ズームをリセット"
+msgstr "音é‡ã‚’リセット"
#: editor/editor_audio_buses.cpp
#, fuzzy
msgid "Delete Effect"
-msgstr "é¸æŠžç¯„å›²ã‚’æ¶ˆåŽ»"
+msgstr "エフェクトを消去"
+
+#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
#: editor/editor_audio_buses.cpp
#, fuzzy
@@ -1032,27 +1038,23 @@ msgstr "ãƒã‚¹ã‚’追加ã™ã‚‹"
#: editor/editor_audio_buses.cpp
msgid "Master bus can't be deleted!"
-msgstr ""
+msgstr "マスターãƒã‚¹ã¯å‰Šé™¤ã§ãã¾ã›ã‚“!"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Delete Audio Bus"
-msgstr "ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã®æ¶ˆåŽ»"
+msgstr "オーディオãƒã‚¹ã®æ¶ˆåŽ»"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Duplicate Audio Bus"
-msgstr "アニメーションを複製"
+msgstr "オーディオãƒã‚¹ã‚’複製"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Reset Bus Volume"
-msgstr "ズームをリセット"
+msgstr "ãƒã‚¹ãƒœãƒªãƒ¥ãƒ¼ãƒ ã‚’リセット"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Move Audio Bus"
-msgstr "移動動作"
+msgstr "オーディオãƒã‚¹ã‚’移動"
#: editor/editor_audio_buses.cpp
#, fuzzy
@@ -1060,9 +1062,8 @@ msgid "Save Audio Bus Layout As.."
msgstr "オーディオãƒã‚¹ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’別åã§ä¿å­˜"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Location for New Layout.."
-msgstr "æ–°ã—ã„レイアウトã®ãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³.."
+msgstr "æ–°ã—ã„レイアウトã®å ´æ‰€.."
#: editor/editor_audio_buses.cpp
#, fuzzy
@@ -1071,14 +1072,11 @@ msgstr "オーディオãƒã‚¹ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’é–‹ã"
#: editor/editor_audio_buses.cpp
msgid "There is no 'res://default_bus_layout.tres' file."
-msgstr ""
+msgstr "'res://default_bus_layout.tres' ファイルãŒã‚りã¾ã›ã‚“."
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Invalid file, not an audio bus layout."
-msgstr ""
-"ファイル拡張å­ãŒä¸æ­£ã§ã™.\n"
-" .fontを使ã£ã¦ãã ã•ã„."
+msgstr "䏿­£ãªãƒ•ァイルã§ã™.オーディオãƒã‚¹ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã§ã¯ã‚りã¾ã›ã‚“."
#: editor/editor_audio_buses.cpp
#, fuzzy
@@ -1086,9 +1084,8 @@ msgid "Add Bus"
msgstr "ãƒã‚¹ã‚’追加ã™ã‚‹"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Create a new Bus Layout."
-msgstr "æ–°ã—ã„リソースを生æˆ"
+msgstr "æ–°ã—ã„ãƒã‚¹ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’生æˆ."
#: editor/editor_audio_buses.cpp editor/property_editor.cpp
#: editor/script_create_dialog.cpp
@@ -1097,9 +1094,8 @@ msgid "Load"
msgstr "読ã¿è¾¼ã‚€"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Load an existing Bus Layout."
-msgstr "既存ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ディスクã‹ã‚‰èª­ã¿è¾¼ã¿ç·¨é›†ã™ã‚‹"
+msgstr "既存ã®ãƒã‚¹ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’読ã¿è¾¼ã‚€."
#: editor/editor_audio_buses.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
@@ -1118,7 +1114,7 @@ msgstr "標準(既定)"
#: editor/editor_audio_buses.cpp
msgid "Load the default Bus Layout."
-msgstr ""
+msgstr "デフォルトã®ãƒã‚¹ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’ロードã—ã¾ã™ã€‚"
#: editor/editor_autoload_settings.cpp
#, fuzzy
@@ -1209,7 +1205,8 @@ msgstr "Path:"
msgid "Node Name:"
msgstr "ノードã®åå‰:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
#, fuzzy
msgid "Name"
msgstr "åå‰"
@@ -1219,11 +1216,6 @@ msgstr "åå‰"
msgid "Singleton"
msgstr "シングルトン"
-#: editor/editor_autoload_settings.cpp
-#, fuzzy
-msgid "List:"
-msgstr "リスト:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "シーンを更新"
@@ -1237,6 +1229,15 @@ msgstr "ローカル環境ã®å¤‰æ›´ã‚’ä¿å­˜ã™ã‚‹.."
msgid "Updating scene.."
msgstr "シーンを更新ã—ã¦ã„ã¾ã™.."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(空)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
#, fuzzy
msgid "Please select a base directory first"
@@ -1293,6 +1294,23 @@ msgstr "ãƒ•ã‚¡ã‚¤ãƒ«ãŒæ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚上書ãã—ã¾ã™ã‹ï¼Ÿ"
msgid "Select Current Folder"
msgstr "フォルダを作æˆã™ã‚‹"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "パスをコピーã™ã‚‹"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "ファイルマãƒãƒ¼ã‚¸ãƒ£ãƒ¼ã§è¡¨ç¤º"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "フォルダを作æˆã™ã‚‹.."
+
+#: editor/editor_file_dialog.cpp
+#, fuzzy
+msgid "Refresh"
+msgstr "å†èª­è¾¼"
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
#, fuzzy
msgid "All Recognized"
@@ -1345,11 +1363,6 @@ msgstr "上ã«å‘ã‹ã†"
#: editor/editor_file_dialog.cpp
#, fuzzy
-msgid "Refresh"
-msgstr "å†èª­è¾¼"
-
-#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Toggle Hidden Files"
msgstr "éš ã—ファイルを切り替ãˆã‚‹"
@@ -1471,9 +1484,8 @@ msgid "Public Methods:"
msgstr "公開メソッド:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "GUI Theme Items"
-msgstr "GUIテーマã®éƒ¨å“:"
+msgstr "GUIテーマã®éƒ¨å“"
#: editor/editor_help.cpp
#, fuzzy
@@ -1486,18 +1498,16 @@ msgid "Signals:"
msgstr "シグナル:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Enumerations"
-msgstr "アニメーション"
+msgstr "列挙型"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Enumerations:"
-msgstr "アニメーション"
+msgstr "列挙型:"
#: editor/editor_help.cpp
msgid "enum "
-msgstr ""
+msgstr "列挙型 "
#: editor/editor_help.cpp
#, fuzzy
@@ -1529,6 +1539,8 @@ msgid ""
"There is currently no description for this property. Please help us by "
"[color=$color][url=$url]contributing one[/url][/color]!"
msgstr ""
+"ç¾åœ¨ã€ã“ã®ãƒ—ロパティã®èª¬æ˜Žã¯ã‚りã¾ã›ã‚“。[color=$color][url=$url]貢献[/url][/"
+"color]ã—ã¦ç§ãŸã¡ã‚’助ã‘ã¦ãã ã•ã„!"
#: editor/editor_help.cpp
#, fuzzy
@@ -1545,6 +1557,8 @@ msgid ""
"There is currently no description for this method. Please help us by [color="
"$color][url=$url]contributing one[/url][/color]!"
msgstr ""
+"ç¾åœ¨ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®èª¬æ˜Žã¯ã‚りã¾ã›ã‚“。[color=$color][url=$url]貢献[/url][/"
+"color]ã—ã¦ç§ãŸã¡ã‚’助ã‘ã¦ãã ã•ã„!"
#: editor/editor_help.cpp
#, fuzzy
@@ -1558,7 +1572,8 @@ msgstr " 出力:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "削除"
@@ -1605,7 +1620,7 @@ msgstr "ä¿å­˜ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒèµ·ãã¾ã—ãŸ."
#: editor/editor_node.cpp
msgid "Unexpected end of file '%s'."
-msgstr ""
+msgstr "予期ã—ãªã„ファイル終了 '%s'."
#: editor/editor_node.cpp
#, fuzzy
@@ -1694,18 +1709,26 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
+"ã“ã®ãƒªã‚½ãƒ¼ã‚¹ã¯ã‚¤ãƒ³ãƒãƒ¼ãƒˆã•れãŸã‚·ãƒ¼ãƒ³ã«æ‰€å±žã—ã¦ã„ã‚‹ãŸã‚ã€ç·¨é›†ã™ã‚‹ã“ã¨ãŒã§ãã¾"
+"ã›ã‚“。\n"
+"ã“ã®æ‰‹ç¶šãã«ã¤ã„ã¦ã‚ˆã‚Šè‰¯ã„ç†è§£ãŒå¿…è¦ãªã‚‰ã‚·ãƒ¼ãƒ³ã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã«é–¢ã™ã‚‹ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³"
+"トを確èªã—ã¦ä¸‹ã•ã„。"
#: editor/editor_node.cpp
msgid ""
"This resource belongs to a scene that was instanced or inherited.\n"
"Changes to it will not be kept when saving the current scene."
msgstr ""
+"ã“ã®ãƒªã‚½ãƒ¼ã‚¹ã¯ã€ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹åŒ–ã•れãŸã‹ç¶™æ‰¿ã•れãŸã‚·ãƒ¼ãƒ³ã«æ‰€å±žã—ã¦ã„ã¾ã™ã€‚\n"
+"ç¾åœ¨ã®ã‚·ãƒ¼ãƒ³ã‚’ä¿å­˜ã™ã‚‹ã¨ã€å¤‰æ›´ãŒç ´æ£„ã•れã¾ã™ã€‚"
#: editor/editor_node.cpp
msgid ""
"This resource was imported, so it's not editable. Change its settings in the "
"import panel and then re-import."
msgstr ""
+"ã“ã®ãƒªã‚½ãƒ¼ã‚¹ã¯ã‚¤ãƒ³ãƒãƒ¼ãƒˆã•れãŸã‚‚ã®ã§ã€ç·¨é›†ã§ãã¾ã›ã‚“。インãƒãƒ¼ãƒˆãƒ‘ãƒãƒ«ã®è¨­å®š"
+"を変更ã—ã€ã‚‚ã†ä¸€åº¦ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ã¦ãã ã•ã„。"
#: editor/editor_node.cpp
msgid ""
@@ -1714,6 +1737,9 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
+"ã“ã®ã‚·ãƒ¼ãƒ³ã¯ã‚¤ãƒ³ãƒãƒ¼ãƒˆã•れãŸã‚‚ã®ã§ã€å¤‰æ›´ãŒä¿å­˜ã•れã¾ã›ã‚“。\n"
+"インスタンス化ã™ã‚‹ã‹ç¶™æ‰¿ã—ã¦ãã ã•ã„。ドキュメントã®ã‚·ãƒ¼ãƒ³ã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã«é–¢ã™"
+"る部分をå‚ç…§ã—ã¦ãã ã•ã„。"
#: editor/editor_node.cpp
msgid ""
@@ -1721,6 +1747,8 @@ msgid ""
"Please read the documentation relevant to debugging to better understand "
"this workflow."
msgstr ""
+"リモートオブジェクトã®ãŸã‚ã€å¤‰æ›´ãŒä¿å­˜ã•れã¾ã›ã‚“。\n"
+"ドキュメントã®ãƒ‡ãƒãƒƒã‚°ã«é–¢ã™ã‚‹éƒ¨åˆ†ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
#: editor/editor_node.cpp
#, fuzzy
@@ -1840,7 +1868,7 @@ msgstr "ファイルをä¿å­˜"
#: editor/editor_node.cpp
msgid "Save changes to '%s' before closing?"
-msgstr ""
+msgstr "終了ã™ã‚‹å‰ã«ã€'%s' ã¸ã®å¤‰æ›´ã‚’ä¿å­˜ã—ã¾ã™ã‹ï¼Ÿ"
#: editor/editor_node.cpp
#, fuzzy
@@ -1930,17 +1958,19 @@ msgstr "ファイルをä¿å­˜"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before quitting?"
-msgstr ""
+msgstr "終了ã™ã‚‹å‰ã«ã€ä»¥ä¸‹ã®ã‚·ãƒ¼ãƒ³ã®å¤‰æ›´ã‚’ä¿å­˜ã—ã¾ã™ã‹ï¼Ÿ"
#: editor/editor_node.cpp
msgid "Save changes the following scene(s) before opening Project Manager?"
-msgstr ""
+msgstr "プロジェクトマãƒãƒ¼ã‚¸ãƒ£ãƒ¼ã‚’é–‹ãå‰ã«ã€ä»¥ä¸‹ã®ã‚·ãƒ¼ãƒ³ã®å¤‰æ›´ã‚’ä¿å­˜ã—ã¾ã™ã‹ï¼Ÿ"
#: editor/editor_node.cpp
msgid ""
"This option is deprecated. Situations where refresh must be forced are now "
"considered a bug. Please report."
msgstr ""
+"ã“ã®ã‚ªãƒ—ションã¯éžæŽ¨å¥¨ã§ã™ã€‚リフレッシュを強制ã—ãªã‘れã°ãªã‚‰ãªã„状æ³ã¯ãƒã‚°ã¨"
+"ã¿ãªã•れã¾ã™ã€‚報告ã—ã¦ãã ã•ã„。"
#: editor/editor_node.cpp
#, fuzzy
@@ -1950,10 +1980,14 @@ msgstr "メインシーンを指定"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
msgstr ""
+"アドオンプラグインを有効ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“: '%s' 設定ã®è§£æžã«å¤±æ•—ã—ã¾ã—"
+"ãŸã€‚"
#: editor/editor_node.cpp
msgid "Unable to find script field for addon plugin at: 'res://addons/%s'."
msgstr ""
+"アドオンプラグインã®ã‚¹ã‚¯ãƒªãƒ—トフィールドを見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“: 'res://"
+"addons/%s'."
#: editor/editor_node.cpp
#, fuzzy
@@ -1964,10 +1998,13 @@ msgstr "フォント読ã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼ã€‚"
msgid ""
"Unable to load addon script from path: '%s' Base type is not EditorPlugin."
msgstr ""
+"アドオンスクリプトを読ã¿è¾¼ã‚ã¾ã›ã‚“: '%s' エディタプラグインã§ã¯ã‚りã¾ã›ã‚“。"
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
msgstr ""
+"アドオンスクリプトを読ã¿è¾¼ã‚ã¾ã›ã‚“: '%s' スクリプトãŒãƒ„ールモードã§ã¯ã‚りã¾"
+"ã›ã‚“。"
#: editor/editor_node.cpp
msgid ""
@@ -2039,7 +2076,7 @@ msgstr "%d 多ã„ファイル"
#: editor/editor_node.cpp
msgid "Dock Position"
-msgstr ""
+msgstr "ドックã®ä½ç½®"
#: editor/editor_node.cpp
msgid "Distraction Free Mode"
@@ -2363,12 +2400,11 @@ msgstr "ã‚·ãƒ¼ãƒ³ã‚’ä¸€æ™‚åœæ­¢"
#: editor/editor_node.cpp
#, fuzzy
msgid "Stop the scene."
-msgstr "シーンを止ã‚ã‚‹"
+msgstr "ã‚·ãƒ¼ãƒ³ã‚’åœæ­¢"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Stop"
-msgstr "æ­¢ã‚ã‚‹"
+msgstr "åœæ­¢"
#: editor/editor_node.cpp
#, fuzzy
@@ -2468,18 +2504,16 @@ msgid "Node"
msgstr "ノード"
#: editor/editor_node.cpp
-#, fuzzy
msgid "FileSystem"
msgstr "ファイルシステム"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Output"
msgstr "出力"
#: editor/editor_node.cpp
msgid "Don't Save"
-msgstr ""
+msgstr "ä¿å­˜ã—ãªã„"
#: editor/editor_node.cpp
#, fuzzy
@@ -2519,39 +2553,33 @@ msgstr "読ã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼"
#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp
msgid "Select"
-msgstr ""
+msgstr "é¸æŠž"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open 2D Editor"
msgstr "2Dエディタを開ã"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open 3D Editor"
-msgstr "ディレクトリを開ã"
+msgstr "3Dエディタを開ã"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open Script Editor"
msgstr "スクリプトエディタを開ã"
#: editor/editor_node.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Open Asset Library"
-msgstr "アセット ライブラリを開ã"
+msgstr "アセットライブラリを開ã"
#: editor/editor_node.cpp
msgid "Open the next Editor"
msgstr "次ã®ã‚¨ãƒ‡ã‚£ã‚¿ã‚’é–‹ã"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Open the previous Editor"
msgstr "å‰ã®ã‚¨ãƒ‡ã‚£ã‚¿ã‚’é–‹ã"
#: editor/editor_plugin.cpp
-#, fuzzy
msgid "Creating Mesh Previews"
msgstr "メッシュライブラリを生æˆ"
@@ -2569,22 +2597,18 @@ msgstr "アップデート"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Version:"
msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³:"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Author:"
msgstr "作者:"
#: editor/editor_plugin_settings.cpp
-#, fuzzy
msgid "Status:"
msgstr "ステータス:"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Stop Profiling"
msgstr "ãƒ—ãƒ­ãƒ•ã‚¡ã‚¤ãƒªãƒ³ã‚°åœæ­¢"
@@ -2593,32 +2617,26 @@ msgid "Start Profiling"
msgstr "プロファイリング開始"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Measure:"
msgstr "測定:"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame Time (sec)"
msgstr "フレーム時間(秒)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Average Time (sec)"
msgstr "平凿™‚間(秒)"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Frame %"
msgstr "フレーム %"
#: editor/editor_profiler.cpp
-#, fuzzy
msgid "Physics Frame %"
msgstr "固定フレーム %"
#: editor/editor_profiler.cpp editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Time:"
msgstr "時間:"
@@ -2637,20 +2655,31 @@ msgstr "セルフ"
msgid "Frame #:"
msgstr "フレーム #:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "時間:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "呼ã³å‡ºã—"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
-msgstr ""
+msgstr "リストã‹ã‚‰ãƒ‡ãƒã‚¤ã‚¹ã‚’é¸æŠžã—ã¦ãã ã•ã„"
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the export menu."
msgstr ""
+"ã“ã®ãƒ—ラットフォームã§å®Ÿè¡Œå¯èƒ½ãªã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆãƒ—リセットãŒã‚りã¾ã›ã‚“。\n"
+"エクスãƒãƒ¼ãƒˆãƒ¡ãƒ‹ãƒ¥ãƒ¼ã«å®Ÿè¡Œå¯èƒ½ãªãƒ—リセットを追加ã—ã¦ãã ã•ã„。"
#: editor/editor_run_script.cpp
-#, fuzzy
msgid "Write your logic in the _run() method."
-msgstr "ã‚ãªãŸã®ãƒ­ã‚¸ãƒƒã‚¯ã‚’_run() メソッドã«è¨˜è¿°ã—ã¦ãã ã•ã„"
+msgstr "ã‚ãªãŸã®ãƒ­ã‚¸ãƒƒã‚¯ã‚’_run() メソッドã«è¨˜è¿°ã—ã¦ãã ã•ã„."
#: editor/editor_run_script.cpp
#, fuzzy
@@ -2658,57 +2687,46 @@ msgid "There is an edited scene already."
msgstr "æ—¢ã«ç·¨é›†ã—ãŸã‚·ãƒ¼ãƒ³ãŒã‚りã¾ã™"
#: editor/editor_run_script.cpp
-#, fuzzy
msgid "Couldn't instance script:"
msgstr "スクリプトをインスタンス化ã§ãã¾ã›ã‚“ã§ã—ãŸ:"
#: editor/editor_run_script.cpp
-#, fuzzy
msgid "Did you forget the 'tool' keyword?"
msgstr "キーワード'tool'を忘れã¦ã„ã¾ã›ã‚“ã‹ï¼Ÿ"
#: editor/editor_run_script.cpp
-#, fuzzy
msgid "Couldn't run script:"
msgstr "スクリプトを実行ã§ãã¾ã›ã‚“ã§ã—ãŸ:"
#: editor/editor_run_script.cpp
-#, fuzzy
msgid "Did you forget the '_run' method?"
msgstr "'_run'メソッドを忘れã¦ã„ã¾ã›ã‚“ã‹ï¼Ÿ"
#: editor/editor_settings.cpp
-#, fuzzy
msgid "Default (Same as Editor)"
msgstr "既定(エディタã¨åŒã˜ï¼‰"
#: editor/editor_sub_scene.cpp
-#, fuzzy
msgid "Select Node(s) to Import"
msgstr "インãƒãƒ¼ãƒˆã™ã‚‹ãƒŽãƒ¼ãƒ‰ã‚’é¸æŠžã™ã‚‹"
#: editor/editor_sub_scene.cpp
-#, fuzzy
msgid "Scene Path:"
msgstr "シーンã®ãƒ‘ス:"
#: editor/editor_sub_scene.cpp
-#, fuzzy
msgid "Import From Node:"
msgstr "ノードã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆ:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Re-Download"
msgstr "å†ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Uninstall"
msgstr "アンインストール"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "(Installed)"
msgstr "(インストール済)"
@@ -2721,17 +2739,14 @@ msgid "(Missing)"
msgstr "(見ã¤ã‹ã‚Šã¾ã›ã‚“)"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "(Current)"
msgstr "(ç¾åœ¨ã®ï¼‰"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Retrieving mirrors, please wait.."
-msgstr "接続失敗 å†è©¦è¡Œã‚’"
+msgstr "ミラーサイトをå–å¾—ã—ã¦ã„ã¾ã™ã€‚ã—ã°ã‚‰ããŠå¾…ã¡ãã ã•ã„.."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove template version '%s'?"
msgstr "テンプレート ãƒãƒ¼ã‚¸ãƒ§ãƒ³'%s'を除去ã—ã¾ã™ã‹ï¼Ÿ"
@@ -2740,12 +2755,10 @@ msgid "Can't open export templates zip."
msgstr "エクスãƒãƒ¼ãƒˆã€€ãƒ†ãƒ³ãƒ—レート(ZIP)ファイルを確èªã§ãã¾ã›ã‚“."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Invalid version.txt format inside templates."
-msgstr "テンプレート内ã®version.txt フォーマットãŒä¸æ­£ã§ã™"
+msgstr "テンプレート内ã®version.txt フォーマットãŒä¸æ­£ã§ã™."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid ""
"Invalid version.txt format inside templates. Revision is not a valid "
"identifier."
@@ -2754,12 +2767,10 @@ msgstr ""
"ã¯ã‚りã¾ã›ã‚“."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "No version.txt found inside templates."
-msgstr "テンプレート内ã«version.txtãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
+msgstr "テンプレート内ã«version.txtãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error creating path for templates:\n"
msgstr "テンプレートã®ãƒ‘ス生æˆã‚¨ãƒ©ãƒ¼\n"
@@ -2778,6 +2789,8 @@ msgid ""
"No download links found for this version. Direct download is only available "
"for official releases."
msgstr ""
+"ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。直接ダウンロードã¯å…¬å¼ãƒª"
+"リースã®ã¿å¯èƒ½ã§ã™ã€‚"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -2793,124 +2806,104 @@ msgstr "接続失敗."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "No response."
msgstr "応答ãŒã‚りã¾ã›ã‚“."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#, fuzzy
-msgid "Req. Failed."
+msgid "Request Failed."
msgstr "リクエスト失敗."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Redirect Loop."
msgstr "リダイレクトã®ãƒ«ãƒ¼ãƒ—."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Failed:"
msgstr "失敗:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't write file."
-msgstr "ãƒ•ã‚¡ã‚¤ãƒ«ã«æ›¸ãè¾¼ã¿ã§ãã¾ã›ã‚“ã§ã—ãŸ:\n"
+msgstr "ãƒ•ã‚¡ã‚¤ãƒ«ã«æ›¸ãè¾¼ã¿ã§ãã¾ã›ã‚“ã§ã—ãŸ."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download Complete."
-msgstr "ダウンロード失敗"
+msgstr "ダウンロード完了."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error requesting url: "
-msgstr "アトラスã®ä¿å­˜ã«å¤±æ•—ã—ã¾ã—ãŸ:"
+msgstr "urlã®è¦æ±‚ã«å¤±æ•—ã—ã¾ã—ãŸ: "
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connecting to Mirror.."
-msgstr "接続中.."
+msgstr "ãƒŸãƒ©ãƒ¼ã‚µã‚¤ãƒˆã«æŽ¥ç¶šä¸­.."
#: editor/export_template_manager.cpp
#, fuzzy
msgid "Disconnected"
-msgstr "切断"
+msgstr "切断ã•れã¾ã—ãŸ"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Resolving"
-msgstr "解決中.."
+msgstr "解決中"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Can't Resolve"
-msgstr "解決ã§ãã¾ã›ã‚“."
+msgstr "解決ã§ãã¾ã›ã‚“"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Connecting.."
msgstr "接続中.."
#: editor/export_template_manager.cpp
#, fuzzy
-msgid "Can't Conect"
-msgstr "接続失敗."
+msgid "Can't Connect"
+msgstr "接続失敗"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connected"
-msgstr "接続"
+msgstr "接続ã—ã¾ã—ãŸ"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Requesting.."
msgstr "リクエスト中.."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Downloading"
-msgstr "ダウンロード"
+msgstr "ダウンロード中"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Connection Error"
-msgstr "接続中.."
+msgstr "接続エラー"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "SSL Handshake Error"
-msgstr "読ã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼"
+msgstr "SSLãƒãƒ³ãƒ‰ã‚·ã‚§ã‚¤ã‚¯ã‚¨ãƒ©ãƒ¼"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Current Version:"
msgstr "ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Installed Versions:"
msgstr "インストールã•れãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Install From File"
msgstr "ファイルã‹ã‚‰ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove Template"
-msgstr "é¸æŠžã—ã¦ã„ã‚‹ã‚‚ã®ã‚’削除"
+msgstr "テンプレートを削除"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Select template file"
-msgstr "ã™ã¹ã¦é¸æŠž"
+msgstr "ãƒ†ãƒ³ãƒ—ãƒ¬ãƒ¼ãƒˆãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž"
#: editor/export_template_manager.cpp
#, fuzzy
@@ -2918,13 +2911,12 @@ msgid "Export Template Manager"
msgstr "エクスãƒãƒ¼ãƒˆã€€ãƒ†ãƒ³ãƒ—レート マãƒãƒ¼ã‚¸ãƒ£ãƒ¼"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download Templates"
-msgstr "é¸æŠžã—ã¦ã„ã‚‹ã‚‚ã®ã‚’削除"
+msgstr "テンプレートをダウンロード"
#: editor/export_template_manager.cpp
msgid "Select mirror from list: "
-msgstr ""
+msgstr "リストã‹ã‚‰ãƒŸãƒ©ãƒ¼ã‚’é¸æŠž: "
#: editor/file_type_cache.cpp
#, fuzzy
@@ -2935,21 +2927,24 @@ msgstr ""
#: editor/filesystem_dock.cpp
msgid "Cannot navigate to '%s' as it has not been found in the file system!"
-msgstr ""
+msgstr "ファイルシステムã«è¦‹ã¤ã‹ã‚‰ãªã„ãŸã‚ã€'%s' ã«ç§»å‹•ã§ãã¾ã›ã‚“!"
#: editor/filesystem_dock.cpp
msgid "View items as a grid of thumbnails"
-msgstr ""
+msgstr "サムãƒã‚¤ãƒ«è¡¨ç¤º"
#: editor/filesystem_dock.cpp
msgid "View items as a list"
-msgstr ""
+msgstr "リスト表示"
#: editor/filesystem_dock.cpp
msgid ""
"\n"
"Status: Import of file failed. Please fix file and reimport manually."
msgstr ""
+"\n"
+"状æ³: ファイルã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚ファイルを修正ã—ã¦æ‰‹å‹•ã§å†ã‚¤ãƒ³ãƒãƒ¼"
+"トã—ã¦ä¸‹ã•ã„。"
#: editor/filesystem_dock.cpp
#, fuzzy
@@ -2968,83 +2963,78 @@ msgstr "エラーをインãƒãƒ¼ãƒˆä¸­:"
#: editor/filesystem_dock.cpp
#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "読ã¿è¾¼ã¿å¤±æ•—:"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
msgid "Unable to update dependencies:\n"
msgstr "シーン'%s' ã¯ä¾å­˜é–¢ä¿‚ãŒå£Šã‚Œã¦ã„ã¾ã™:"
#: editor/filesystem_dock.cpp
msgid "No name provided"
-msgstr ""
+msgstr "åå‰ãŒã‚りã¾ã›ã‚“"
#: editor/filesystem_dock.cpp
msgid "Provided name contains invalid characters"
-msgstr ""
+msgstr "åå‰ãŒä½¿ç”¨ä¸å¯èƒ½ãªæ–‡å­—ã‚’å«ã‚“ã§ã„ã¾ã™"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "No name provided."
-msgstr "åå‰ã‚’変ãˆã‚‹ã‹ç§»å‹•ã—ã¦ãã ã•ã„.."
+msgstr "åå‰ãŒã‚りã¾ã›ã‚“."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Name contains invalid characters."
-msgstr "使用å¯èƒ½ãªæ–‡å­—:"
+msgstr "åå‰ãŒä½¿ç”¨ä¸å¯èƒ½ãªæ–‡å­—ã‚’å«ã‚“ã§ã„ã¾ã™."
#: editor/filesystem_dock.cpp
msgid "A file or folder with this name already exists."
-msgstr ""
+msgstr "åŒåã®ãƒ•ァイルã¾ãŸã¯ãƒ•ォルダãŒã‚りã¾ã™ã€‚"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Renaming file:"
-msgstr "変数ã®åå‰ã‚’変ãˆã‚‹"
+msgstr "ファイルåを変更:"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Renaming folder:"
-msgstr "ノードã®åå‰ã‚’変更"
+msgstr "フォルダåを変更:"
#: editor/filesystem_dock.cpp
#, fuzzy
+msgid "Duplicating file:"
+msgstr "複製"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "フォルダåを変更:"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "ã™ã¹ã¦å±•é–‹ã™ã‚‹"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Collapse all"
msgstr "ã™ã¹ã¦æŠ˜ã‚ŠãŸãŸã‚€"
#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Copy Path"
-msgstr "パスをコピーã™ã‚‹"
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Rename.."
-msgstr "åå‰ã‚’変更ã™ã‚‹"
+msgstr "åå‰ã‚’変更ã™ã‚‹.."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Move To.."
msgstr "~ã¸ç§»å‹•ã™ã‚‹.."
#: editor/filesystem_dock.cpp
#, fuzzy
-msgid "New Folder.."
-msgstr "フォルダを作æˆã™ã‚‹"
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
-msgid "Show In File Manager"
-msgstr "ファイルマãƒãƒ¼ã‚¸ãƒ£ãƒ¼ã§è¡¨ç¤º"
+msgid "Open Scene(s)"
+msgstr "シーンを開ã"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Instance"
msgstr "インスタンス"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Edit Dependencies.."
msgstr "ä¾å­˜é–¢ä¿‚を編集.."
@@ -3054,16 +3044,19 @@ msgid "View Owners.."
msgstr "オーナーを見る.."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "複製"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
-msgstr "最後ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª"
+msgstr "å‰ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Next Directory"
msgstr "次ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Re-Scan Filesystem"
msgstr "ファイルシステムをå†èµ°æŸ»"
@@ -3082,6 +3075,8 @@ msgid ""
"Scanning Files,\n"
"Please Wait.."
msgstr ""
+"ファイルをスキャンã—ã¦ã„ã¾ã™\n"
+"ã—ã°ã‚‰ããŠå¾…ã¡ä¸‹ã•ã„..."
#: editor/filesystem_dock.cpp
#, fuzzy
@@ -3115,27 +3110,27 @@ msgstr "アニメーションをインãƒãƒ¼ãƒˆ.."
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials"
-msgstr ""
+msgstr "別ã®ãƒžãƒ†ãƒªã‚¢ãƒ«ã¨ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects"
-msgstr ""
+msgstr "別ã®ã‚ªãƒ–ジェクトã¨ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials"
-msgstr ""
+msgstr "別ã®ã‚ªãƒ–ジェクトã€ãƒžãƒ†ãƒªã‚¢ãƒ«ã¨ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Animations"
-msgstr ""
+msgstr "別ã®ã‚ªãƒ–ジェクトã€ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã¨ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials+Animations"
-msgstr ""
+msgstr "別ã®ãƒžãƒ†ãƒªã‚¢ãƒ«ã€ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã¨ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials+Animations"
-msgstr ""
+msgstr "別ã®ã‚ªãƒ–ジェクトã€ãƒžãƒ†ãƒªã‚¢ãƒ«ã€ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã¨ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
#: editor/import/resource_importer_scene.cpp
#, fuzzy
@@ -3144,7 +3139,7 @@ msgstr "3Dシーンをインãƒãƒ¼ãƒˆ"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes+Materials"
-msgstr ""
+msgstr "複数ã®ã‚·ãƒ¼ãƒ³ã€ãƒžãƒ†ãƒªã‚¢ãƒ«ã¨ã—ã¦ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"
#: editor/import/resource_importer_scene.cpp
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
@@ -3159,6 +3154,16 @@ msgstr "シーンをインãƒãƒ¼ãƒˆä¸­.."
#: editor/import/resource_importer_scene.cpp
#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "ライトマップã¸ã®è»¢å†™:"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "軸平行境界ボックス(AABB)を生æˆ"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
msgid "Running Custom Script.."
msgstr "カスタムスクリプトを実行中"
@@ -3185,11 +3190,11 @@ msgstr "ä¿å­˜ä¸­.."
#: editor/import_dock.cpp
msgid "Set as Default for '%s'"
-msgstr ""
+msgstr "'%s'ã®ãƒ‡ãƒ•ォルトã¨ã—ã¦è¨­å®š"
#: editor/import_dock.cpp
msgid "Clear Default for '%s'"
-msgstr ""
+msgstr "'%s'ã®ãƒ‡ãƒ•ォルトを消去"
#: editor/import_dock.cpp
#, fuzzy
@@ -3262,6 +3267,10 @@ msgid ""
"Ctrl+LMB: Split Segment.\n"
"RMB: Erase Point."
msgstr ""
+"ãƒãƒªã‚´ãƒ³ã‚’編集:\n"
+"LMB: ãƒã‚¤ãƒ³ãƒˆã‚’移動.\n"
+"Ctrl+LMB: セグメント分割.\n"
+"RMB: ãƒã‚¤ãƒ³ãƒˆé™¤åŽ»."
#: editor/plugins/abstract_polygon_2d_editor.cpp
#, fuzzy
@@ -3444,11 +3453,11 @@ msgstr "アニメーションを複製ã™ã‚‹"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "オニオンスキン"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "オニオンスキンを有効ã«ã™ã‚‹"
#: editor/plugins/animation_player_editor_plugin.cpp
#, fuzzy
@@ -3467,31 +3476,31 @@ msgstr "テクスãƒãƒ£"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "奥行ã"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1ステップ"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2ステップ"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3ステップ"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "差分ã®ã¿"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
-msgstr ""
+msgstr "白色調整"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "ギズモ(3D)ã‚’å«ã‚€"
#: editor/plugins/animation_player_editor_plugin.cpp
#, fuzzy
@@ -3784,184 +3793,175 @@ msgid "Idle"
msgstr "待機中"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Retry"
msgstr "å†è©¦è¡Œ"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Download Error"
-msgstr "ダウンロード失敗"
+msgstr "ダウンロードエラー"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Download for this asset is already in progress!"
msgstr "ã“ã®ã‚¢ã‚»ãƒƒãƒˆã®ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã¯æ—¢ã«é€²è¡Œä¸­ï¼"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "first"
-msgstr "最åˆã®"
+msgstr "最åˆ"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "prev"
-msgstr "å‰ã®"
+msgstr "å‰"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "next"
-msgstr "次ã®"
+msgstr "次"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "last"
-msgstr "最後ã®"
+msgstr "最後"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
-msgstr "ã™ã¹ã¦ã®"
+msgstr "ã™ã¹ã¦"
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Plugins"
msgstr "プラグイン"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Sort:"
msgstr "ä¸¦ã¹æ›¿ãˆ:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Reverse"
msgstr "逆"
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Category:"
msgstr "カテゴリー:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Site:"
msgstr "サイト:"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Support.."
msgstr "サãƒãƒ¼ãƒˆ.."
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Official"
msgstr "å…¬å¼"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Testing"
msgstr "テスト中"
#: editor/plugins/asset_library_editor_plugin.cpp
-#, fuzzy
msgid "Assets ZIP File"
msgstr "アセットã®zipファイル"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "ライトマップã¸ã®è»¢å†™:"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "プレビュー"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Configure Snap"
-msgstr "スナップ機能ã®è¨­å®š"
+msgstr "スナップã®è¨­å®š"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Grid Offset:"
msgstr "グリッドã®ã‚ªãƒ•セット:"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Grid Step:"
msgstr "グリッドã®ã‚¹ãƒ†ãƒƒãƒ—:"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Rotation Offset:"
msgstr "回転ã®ã‚ªãƒ•セット:"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Rotation Step:"
msgstr "回転ã®ã‚¹ãƒ†ãƒƒãƒ—:"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move Pivot"
msgstr "ピボット移動"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move Action"
msgstr "移動動作"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move vertical guide"
-msgstr ""
+msgstr "垂直ガイドを移動"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create new vertical guide"
-msgstr "フォルダを作æˆ"
+msgstr "垂直ガイドを作æˆ"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove vertical guide"
-msgstr "無効ãªã‚­ãƒ¼ã‚’削除"
+msgstr "垂直ガイドを削除"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Move horizontal guide"
-msgstr "曲線ã®ãƒã‚¤ãƒ³ãƒˆã‚’移動"
+msgstr "水平ガイドを移動"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Create new horizontal guide"
-msgstr "フォルダを作æˆ"
+msgstr "水平ガイドを作æˆ"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove horizontal guide"
-msgstr "無効ãªã‚­ãƒ¼ã‚’削除"
+msgstr "水平ガイドを削除"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create new horizontal and vertical guides"
-msgstr ""
+msgstr "水平垂直ガイドを作æˆ"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Edit IK Chain"
msgstr "IK(インãƒãƒ¼ã‚¹ ã‚­ãƒãƒžãƒ†ã‚£ã‚¯ã‚¹ï¼‰ãƒã‚§ãƒ¼ãƒ³ã®ç·¨é›†"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Edit CanvasItem"
msgstr "キャンãƒã‚¹ã‚¢ã‚¤ãƒ†ãƒ ã®ç·¨é›†"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Anchors only"
-msgstr "アンカー"
+msgstr "アンカーã®ã¿"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Change Anchors and Margins"
-msgstr "アンカーを変更ã™ã‚‹"
+msgstr "アンカーã¨ãƒžãƒ¼ã‚¸ãƒ³ã‚’変更ã™ã‚‹"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -4033,7 +4033,6 @@ msgid "Toggles snapping"
msgstr "ブレークãƒã‚¤ãƒ³ãƒˆã‚’切替"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Use Snap"
msgstr "スナップ機能を使ã†"
@@ -4070,24 +4069,23 @@ msgstr "ピクセルå˜ä½ã‚¹ãƒŠãƒƒãƒ—"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Smart snapping"
-msgstr ""
+msgstr "スマートスナップ"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Snap to parent"
-msgstr "親ã¾ã§å±•é–‹ã™ã‚‹"
+msgstr "親ã«ã‚¹ãƒŠãƒƒãƒ—"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to node anchor"
-msgstr ""
+msgstr "ノードアンカーã«ã‚¹ãƒŠãƒƒãƒ—"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to node sides"
-msgstr ""
+msgstr "ノードå´é¢ã«ã‚¹ãƒŠãƒƒãƒ—"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to other nodes"
-msgstr ""
+msgstr "ä»–ã®ãƒŽãƒ¼ãƒ‰ã«ã‚¹ãƒŠãƒƒãƒ—"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -4207,7 +4205,7 @@ msgstr "ãƒãƒ¼ã‚ºã‚’クリアã™ã‚‹"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Drag pivot from mouse position"
-msgstr ""
+msgstr "マウスä½ç½®ã‹ã‚‰ãƒ”ボットをドラッグ"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -4216,11 +4214,11 @@ msgstr "曲線ã®Out-ãƒãƒ³ãƒ‰ãƒ«ã®ä½ç½®ã‚’指定"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
-msgstr ""
+msgstr "グリッドステップを2å€ã«ã™ã‚‹"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Divide grid step by 2"
-msgstr ""
+msgstr "グリッドステップをåŠåˆ†ã«ã™ã‚‹"
#: editor/plugins/canvas_item_editor_plugin.cpp
#, fuzzy
@@ -4246,17 +4244,6 @@ msgstr "%sシーンã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹åŒ–エラー"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "ãŠãƒ¼ã‘ー :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "No parent to instance a child at."
-msgstr "å­ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’生æˆã™ã‚‹ãŸã‚ã®è¦ªãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
#, fuzzy
msgid "This operation requires a single selected node."
msgstr "一ã¤ãƒŽãƒ¼ãƒ‰ã‚’指定ã—ãªã„ã¨ã€ã“ã®æ“作ã¯ã§ãã¾ã›ã‚“"
@@ -4307,11 +4294,11 @@ msgstr "シーンã‹ã‚‰ã‚¢ãƒƒãƒ—デート"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Flat0"
-msgstr ""
+msgstr "フラット0"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Flat1"
-msgstr ""
+msgstr "フラット1"
#: editor/plugins/curve_editor_plugin.cpp
#, fuzzy
@@ -4325,7 +4312,7 @@ msgstr "イージング(Ease Out)"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Smoothstep"
-msgstr ""
+msgstr "スムーズステップ"
#: editor/plugins/curve_editor_plugin.cpp
#, fuzzy
@@ -4371,15 +4358,15 @@ msgstr "パスã®ãƒã‚¤ãƒ³ãƒˆã‚’除去"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Toggle Curve Linear Tangent"
-msgstr ""
+msgstr "直線曲線を切り替ãˆã‚‹"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Hold Shift to edit tangents individually"
-msgstr ""
+msgstr "接線を個別ã«ç·¨é›†ã™ã‚‹ã«ã¯ã‚·ãƒ•トを押ã™"
#: editor/plugins/gi_probe_editor_plugin.cpp
msgid "Bake GI Probe"
-msgstr ""
+msgstr "グローãƒãƒ«ã‚¤ãƒ«ãƒŸãƒãƒ¼ã‚·ãƒ§ãƒ³ã®äº‹å‰è¨ˆç®—"
#: editor/plugins/gradient_editor_plugin.cpp
msgid "Add/Remove Color Ramp Point"
@@ -4407,6 +4394,8 @@ msgid ""
"No OccluderPolygon2D resource on this node.\n"
"Create and assign one?"
msgstr ""
+"ã“ã®ãƒŽãƒ¼ãƒ‰ã«OccluderPolygon2DリソースãŒã‚りã¾ã›ã‚“。\n"
+"作æˆã—ã¦ã€å‰²ã‚Šå½“ã¦ã¾ã™ã‹ ?"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
#, fuzzy
@@ -4469,6 +4458,22 @@ msgid "Create Navigation Mesh"
msgstr "ナビメッシュ(ナビゲーションメッシュ)ã®ç”Ÿæˆ"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
#, fuzzy
msgid "MeshInstance lacks a Mesh!"
msgstr "メッシュインスタンスã®ãƒ¡ãƒƒã‚·ãƒ¥ãŒå­˜åœ¨ã—ã¾ã›ã‚“"
@@ -4515,6 +4520,20 @@ msgid "Create Outline Mesh.."
msgstr "アウトラインメッシュを生æˆ.."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "ビュー"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "ビュー"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr "アウトラインメッシュを生æˆ"
@@ -4658,35 +4677,32 @@ msgid "Bake the navigation mesh.\n"
msgstr "ナビメッシュ(ナビゲーションメッシュ)ã®ç”Ÿæˆ"
#: editor/plugins/navigation_mesh_editor_plugin.cpp
-#, fuzzy
msgid "Clear the navigation mesh."
-msgstr "ナビメッシュ(ナビゲーションメッシュ)ã®ç”Ÿæˆ"
+msgstr "ãƒŠãƒ“ãƒ¡ãƒƒã‚·ãƒ¥ï¼ˆãƒŠãƒ“ã‚²ãƒ¼ã‚·ãƒ§ãƒ³ãƒ¡ãƒƒã‚·ãƒ¥ï¼‰ã®æ¶ˆåŽ»."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
-msgstr ""
+msgstr "設定中..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
-msgstr ""
+msgstr "グリッドサイズ計算中..."
#: editor/plugins/navigation_mesh_generator.cpp
-#, fuzzy
msgid "Creating heightfield..."
-msgstr "照明ã®å…«åˆ†æœ¨ã‚’生æˆ"
+msgstr "ãƒã‚¤ãƒˆãƒ•ィールド生æˆä¸­..."
#: editor/plugins/navigation_mesh_generator.cpp
-#, fuzzy
msgid "Marking walkable triangles..."
-msgstr "ローカル環境ã®å¤‰æ›´ã‚’ä¿å­˜ã™ã‚‹.."
+msgstr "移動å¯èƒ½ãªãƒãƒªã‚´ãƒ³ã‚’記録中..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
-msgstr ""
+msgstr "ãƒã‚¤ãƒˆãƒ•ィールド圧縮中..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
-msgstr ""
+msgstr "移動å¯èƒ½ãªé ˜åŸŸã‚’作æˆä¸­..."
#: editor/plugins/navigation_mesh_generator.cpp
#, fuzzy
@@ -4710,7 +4726,7 @@ msgstr "ナビメッシュ(ナビゲーションメッシュ)ã®ç”Ÿæˆ"
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
-msgstr ""
+msgstr "ナビメッシュ(ナビゲーションメッシュ)生æˆè¨­å®š:"
#: editor/plugins/navigation_mesh_generator.cpp
#, fuzzy
@@ -4719,18 +4735,13 @@ msgstr "ジオメトリーをパース"
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Done!"
-msgstr ""
+msgstr "完了!"
#: editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "Create Navigation Polygon"
msgstr "ナビゲーションãƒãƒªã‚´ãƒ³ã‚’生æˆ"
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
-msgid "Clear Emission Mask"
-msgstr "発光(Emission)マスクをクリア"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
#, fuzzy
msgid "Generating AABB"
@@ -4752,11 +4763,6 @@ msgstr "イメージ内ã«é€æ˜Žåº¦>128ã®ãƒ”クセルãŒã‚りã¾ã›ã‚“.."
#: editor/plugins/particles_2d_editor_plugin.cpp
#, fuzzy
-msgid "Set Emission Mask"
-msgstr "発光(Emission)マスクを設定"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
msgid "Generate Visibility Rect"
msgstr "å¯è¦–性ã®çŸ©å½¢ã‚’生æˆ"
@@ -4766,6 +4772,11 @@ msgid "Load Emission Mask"
msgstr "発光(Emission)マスクを読ã¿è¾¼ã‚€"
#: editor/plugins/particles_2d_editor_plugin.cpp
+#, fuzzy
+msgid "Clear Emission Mask"
+msgstr "発光(Emission)マスクをクリア"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
#, fuzzy
msgid "Particles"
@@ -4807,7 +4818,7 @@ msgstr "ノードã¯ã‚¸ã‚ªãƒ¡ãƒˆãƒªãƒ¼(é¢ï¼‰ã‚’å«ã‚“ã§ã„ã¾ã›ã‚“."
#: editor/plugins/particles_editor_plugin.cpp
msgid "A processor material of type 'ParticlesMaterial' is required."
-msgstr ""
+msgstr "パーティクルマテリアルãŒå¿…è¦ã§ã™."
#: editor/plugins/particles_editor_plugin.cpp
#, fuzzy
@@ -4835,11 +4846,6 @@ msgstr "ノードã‹ã‚‰ã®ç™ºå…‰ç‚¹ã‚’生æˆ"
#: editor/plugins/particles_editor_plugin.cpp
#, fuzzy
-msgid "Clear Emitter"
-msgstr "発光物をクリア"
-
-#: editor/plugins/particles_editor_plugin.cpp
-#, fuzzy
msgid "Create Emitter"
msgstr "発光物を生æˆ"
@@ -4983,7 +4989,6 @@ msgid "Split Path"
msgstr "パスを分割"
#: editor/plugins/path_editor_plugin.cpp
-#, fuzzy
msgid "Remove Path Point"
msgstr "パスã®ãƒã‚¤ãƒ³ãƒˆã‚’除去"
@@ -4996,7 +5001,6 @@ msgid "Remove In-Control Point"
msgstr "曲線ã®In-ãƒãƒ³ãƒ‰ãƒ«ã‚’除去"
#: editor/plugins/polygon_2d_editor_plugin.cpp
-#, fuzzy
msgid "Create UV Map"
msgstr "UVマップを生æˆ"
@@ -5128,6 +5132,8 @@ msgid ""
"Close and save changes?\n"
"\""
msgstr ""
+"変更をä¿å­˜ã—ã¦é–‰ã˜ã¾ã™ã‹?\n"
+"\""
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
@@ -5157,7 +5163,7 @@ msgstr "テーマをåå‰ã‚’ã¤ã‘ã¦ä¿å­˜.."
#: editor/plugins/script_editor_plugin.cpp
msgid " Class Reference"
-msgstr ""
+msgstr " クラスリファレンス"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
@@ -5166,11 +5172,13 @@ msgstr "ä¸¦ã¹æ›¿ãˆ:"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "上ã«ç§»å‹•"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "下ã«ç§»å‹•"
@@ -5187,7 +5195,7 @@ msgstr "ç›´å‰ã®ã‚¹ã‚¯ãƒªãƒ—ト"
msgid "File"
msgstr "ファイル"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "æ–°ã—ã„"
@@ -5197,7 +5205,12 @@ msgstr "ã™ã¹ã¦ä¿å­˜"
#: editor/plugins/script_editor_plugin.cpp
msgid "Soft Reload Script"
-msgstr ""
+msgstr "スクリプトをソフトリロード"
+
+#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "パスをコピーã™ã‚‹"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
@@ -5229,11 +5242,11 @@ msgstr "é–‰ã˜ã‚‹"
#: editor/plugins/script_editor_plugin.cpp
#, fuzzy
msgid "Close All"
-msgstr "é–‰ã˜ã‚‹"
+msgstr "ã™ã¹ã¦é–‰ã˜ã‚‹"
#: editor/plugins/script_editor_plugin.cpp
msgid "Close Other Tabs"
-msgstr ""
+msgstr "ã»ã‹ã®ã‚¿ãƒ–ã‚’é–‰ã˜ã‚‹"
#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
msgid "Run"
@@ -5343,7 +5356,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
msgid "Only resources from filesystem can be dropped."
-msgstr ""
+msgstr "ファイルシステムã®ãƒªã‚½ãƒ¼ã‚¹ã®ã¿ãƒ‰ãƒ­ãƒƒãƒ—ã§ãã¾ã™."
#: editor/plugins/script_text_editor.cpp
msgid "Pick Color"
@@ -5406,14 +5419,10 @@ msgstr "複製ã—ã¦ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
+msgid "Fold/Unfold Line"
msgstr "行ã«ç§»å‹•"
#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
msgstr ""
@@ -5532,7 +5541,7 @@ msgstr "RGB演算å­ã‚’変更"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Toggle Rot Only"
-msgstr ""
+msgstr "回転ã®ã¿å¤‰æ›´"
#: editor/plugins/shader_graph_editor_plugin.cpp
#, fuzzy
@@ -5546,15 +5555,15 @@ msgstr "ベクトル関数を変更"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Uniform"
-msgstr ""
+msgstr "スカラUniformを変更"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Uniform"
-msgstr ""
+msgstr "ベクトルUniformを変更"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change RGB Uniform"
-msgstr ""
+msgstr "RGB Uniformを変更"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Default Value"
@@ -5562,15 +5571,15 @@ msgstr "è¦å®šå€¤ã‚’変更"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change XForm Uniform"
-msgstr ""
+msgstr "XForm Uniformを変更"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Texture Uniform"
-msgstr ""
+msgstr "テクスãƒãƒ£Uniformを変更"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Cubemap Uniform"
-msgstr ""
+msgstr "キューブマップUniformを変更"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Comment"
@@ -5757,12 +5766,21 @@ msgstr "頂点"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS"
-msgstr ""
+msgstr "フレームレート"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align with view"
msgstr "シーンビューã«ã‚«ãƒ¡ãƒ©ã‚’åˆã‚ã›ã‚‹ï¼ˆAlign With View)"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "ãŠãƒ¼ã‘ー :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "No parent to instance a child at."
+msgstr "å­ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’生æˆã™ã‚‹ãŸã‚ã®è¦ªãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "通常表示"
@@ -5784,7 +5802,7 @@ msgstr "シェーディングãªã—ã§è¡¨ç¤º"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Environment"
-msgstr ""
+msgstr "環境表示"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
@@ -5808,7 +5826,7 @@ msgstr "縮尺(Scale)ã®é¸æŠž"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Audio Listener"
-msgstr ""
+msgstr "オーディオリスナー"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
@@ -5879,6 +5897,20 @@ msgid "Scale Mode (R)"
msgstr "スケール(拡大縮å°ï¼‰ãƒ¢ãƒ¼ãƒ‰(R)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "ローカル座標系"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "スケール(拡大縮å°ï¼‰ãƒ¢ãƒ¼ãƒ‰(R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Snapモード:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "底é¢å›³"
@@ -5914,15 +5946,15 @@ msgstr "アニメーションキーを挿入"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Origin"
-msgstr ""
+msgstr "原点ã«ãƒ•ォーカス"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Selection"
-msgstr ""
+msgstr "é¸æŠžã«ãƒ•ォーカス"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Selection With View"
-msgstr ""
+msgstr "é¸æŠžã‚’ãƒ“ãƒ¥ãƒ¼ã«æ•´åˆ—"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Tool Select"
@@ -5959,10 +5991,6 @@ msgid "Configure Snap.."
msgstr "スナップ機能ã®è¨­å®š"
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "ローカル座標系"
-
-#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Transform Dialog.."
msgstr "トランスフォームã®ãƒ€ã‚¤ã‚¢ãƒ­ã‚°.."
@@ -5993,7 +6021,7 @@ msgstr "4 ビューãƒãƒ¼ãƒˆ"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Origin"
-msgstr ""
+msgstr "原点を見る"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Grid"
@@ -6006,18 +6034,20 @@ msgid "Settings"
msgstr "設定"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
-msgstr "Snapã®è¨­å®š"
+msgstr "スナップã®è¨­å®š"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translate Snap:"
-msgstr "Snapを移動:"
+msgstr "スナップを移動:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Snap (deg.):"
-msgstr "Snapã®å›žè»¢ï¼ˆåº¦ï¼‰:"
+msgstr "スナップã®å›žè»¢ï¼ˆåº¦ï¼‰:"
#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
@@ -6030,7 +6060,7 @@ msgstr "ビューãƒãƒ¼ãƒˆã®è¨­å®š"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Perspective FOV (deg.):"
-msgstr ""
+msgstr "視野角(度):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Near:"
@@ -6092,7 +6122,7 @@ msgstr "フレームを張り付ã‘"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Empty"
-msgstr ""
+msgstr "空を追加"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
@@ -6220,19 +6250,19 @@ msgstr "削除"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Edit theme.."
-msgstr ""
+msgstr "テーマを編集..."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme editing menu."
-msgstr ""
+msgstr "テーマ編集メニュー."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
-msgstr ""
+msgstr "クラスアイテム追加"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
-msgstr ""
+msgstr "クラスアイテム削除"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create Empty Template"
@@ -6331,7 +6361,7 @@ msgstr "é¸æŠžã‚’æ¶ˆåŽ»"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint TileMap"
-msgstr ""
+msgstr "タイルマップを塗る"
#: editor/plugins/tile_map_editor_plugin.cpp
#, fuzzy
@@ -6344,7 +6374,7 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Bucket Fill"
-msgstr ""
+msgstr "塗りã¤ã¶ã—"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase TileMap"
@@ -6374,14 +6404,13 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint Tile"
-msgstr ""
+msgstr "タイルを塗る"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Pick Tile"
-msgstr ""
+msgstr "ã‚¿ã‚¤ãƒ«ã‚’é¸æŠž"
#: editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Rotate 0 degrees"
msgstr "0度回転"
@@ -6418,6 +6447,11 @@ msgid "Merge from scene?"
msgstr "シーンã‹ã‚‰ãƒžãƒ¼ã‚¸ã—ã¾ã™ã‹ï¼Ÿ"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "タイルセット.."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "シーンã‹ã‚‰ç”Ÿæˆ"
@@ -6429,6 +6463,10 @@ msgstr "シーンã‹ã‚‰ãƒžãƒ¼ã‚¸"
msgid "Error"
msgstr "エラー"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "キャンセル"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "実行å¯èƒ½"
@@ -6515,7 +6553,7 @@ msgstr "テクスãƒãƒ£"
#: editor/project_export.cpp
msgid "Custom (comma-separated):"
-msgstr ""
+msgstr "カスタム(コンマ区切り):"
#: editor/project_export.cpp
#, fuzzy
@@ -6550,29 +6588,27 @@ msgstr "ファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“."
#: editor/project_manager.cpp
msgid "Please choose a 'project.godot' file."
-msgstr ""
+msgstr "'project.godot' ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„."
#: editor/project_manager.cpp
msgid ""
"Your project will be created in a non empty folder (you might want to create "
"a new folder)."
msgstr ""
+"空ã§ãªã„フォルダã«ãƒ—ロジェクトãŒä½œæˆã•れã¾ã™(æ–°ã—ã„フォルダを作æˆã™ã‚‹ã“ã¨ãŒã§"
+"ãã¾ã™)."
#: editor/project_manager.cpp
msgid "Please choose a folder that does not contain a 'project.godot' file."
-msgstr ""
+msgstr "'project.godot'ãŒãªã„ãƒ•ã‚©ãƒ«ãƒ€ã‚’é¸æŠžã—ã¦ãã ã•ã„."
#: editor/project_manager.cpp
msgid "Imported Project"
msgstr "インãƒãƒ¼ãƒˆã•れãŸãƒ—ロジェクト"
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
-msgstr ""
+msgstr "プロジェクトã«åå‰ã‚’付ã‘ã¦ãã ã•ã„."
#: editor/project_manager.cpp
#, fuzzy
@@ -6641,7 +6677,7 @@ msgstr "プロジェクトパス:"
#: editor/project_manager.cpp
msgid "Browse"
-msgstr ""
+msgstr "ブラウズ"
#: editor/project_manager.cpp
msgid "That's a BINGO!"
@@ -6693,6 +6729,8 @@ msgid ""
"Language changed.\n"
"The UI will update next time the editor or project manager starts."
msgstr ""
+"言語ãŒå¤‰æ›´ã•れã¾ã—ãŸ.\n"
+"エディタã¾ãŸã¯ãƒ—ロジェクトマãƒã‚¸ãƒ£ãƒ¼å†é–‹æ™‚ã«UIãŒæ›´æ–°ã•れã¾ã™."
#: editor/project_manager.cpp
msgid ""
@@ -6796,7 +6834,7 @@ msgstr "キーを押ã—ã¦ãã ã•ã„.."
#: editor/project_settings_editor.cpp
msgid "Mouse Button Index:"
-msgstr ""
+msgstr "マウスボタンインデックス:"
#: editor/project_settings_editor.cpp
msgid "Left Button"
@@ -6858,8 +6896,8 @@ msgstr "ジョイパッドã®ãƒœã‚¿ãƒ³ã®Index:"
#: editor/project_settings_editor.cpp
#, fuzzy
-msgid "Add Input Action"
-msgstr "入力アクションを追加"
+msgid "Erase Input Action"
+msgstr "入力アクションイベントを消去"
#: editor/project_settings_editor.cpp
#, fuzzy
@@ -6906,7 +6944,7 @@ msgstr "プロパティã«getter(get method)を作る"
#: editor/project_settings_editor.cpp
msgid "Select a setting item first!"
-msgstr ""
+msgstr "設定項目を設定ã—ã¦ãã ã•ã„!"
#: editor/project_settings_editor.cpp
#, fuzzy
@@ -6934,6 +6972,10 @@ msgstr "アクション'%s'ã¯æ—¢ã«ã‚りã¾ã™!"
#: editor/project_settings_editor.cpp
#, fuzzy
+msgid "Add Input Action"
+msgstr "入力アクションを追加"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "設定をä¿å­˜ã§ãã¾ã›ã‚“ã§ã—ãŸ."
@@ -6994,7 +7036,7 @@ msgstr "プロジェクト設定 (project.godot)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "General"
-msgstr ""
+msgstr "一般"
#: editor/project_settings_editor.cpp editor/property_editor.cpp
msgid "Property:"
@@ -7053,16 +7095,15 @@ msgstr "ロケール"
#: editor/project_settings_editor.cpp
#, fuzzy
msgid "Locales Filter"
-msgstr "ロケール"
+msgstr "ロケールフィルタ"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Show all locales"
-msgstr "ボーンを表示ã™ã‚‹"
+msgstr "ã™ã¹ã¦ã®ãƒ­ã‚±ãƒ¼ãƒ«ã‚’表示ã™ã‚‹"
#: editor/project_settings_editor.cpp
msgid "Show only selected locales"
-msgstr ""
+msgstr "é¸æŠžã—ãŸãƒ­ã‚±ãƒ¼ãƒ«ã®ã¿è¡¨ç¤º"
#: editor/project_settings_editor.cpp
#, fuzzy
@@ -7126,13 +7167,17 @@ msgid "New Script"
msgstr "æ–°è¦ã‚¹ã‚¯ãƒªãƒ—ト"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
#, fuzzy
msgid "Make Unique"
msgstr "ボーンを生æˆ"
#: editor/property_editor.cpp
msgid "Show in File System"
-msgstr ""
+msgstr "ファイルシステム上ã§è¡¨ç¤º"
#: editor/property_editor.cpp
#, fuzzy
@@ -7156,26 +7201,26 @@ msgstr "ノードã¸ã®ãƒ‘ス:"
#: editor/property_editor.cpp
msgid "Bit %d, val %d."
-msgstr ""
+msgstr "ビット %d, 値 %d."
#: editor/property_editor.cpp
msgid "On"
-msgstr ""
+msgstr "オン"
+
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "空を追加"
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
-msgstr ""
+msgstr "設定"
#: editor/property_editor.cpp
#, fuzzy
msgid "Properties:"
msgstr "プロパティ:"
-#: editor/property_editor.cpp
-#, fuzzy
-msgid "Sections:"
-msgstr "セクション:"
-
#: editor/property_selector.cpp
#, fuzzy
msgid "Select Property"
@@ -7193,7 +7238,7 @@ msgstr "ã™ã¹ã¦é¸æŠž"
#: editor/pvrtc_compress.cpp
msgid "Could not execute PVRTC tool:"
-msgstr ""
+msgstr "PVRTCツールを実行ã§ãã¾ã›ã‚“ã§ã—ãŸ:"
#: editor/pvrtc_compress.cpp
msgid "Can't load back converted image using PVRTC tool:"
@@ -7217,7 +7262,7 @@ msgstr ""
#: editor/run_settings_dialog.cpp
msgid "Run Mode:"
-msgstr ""
+msgstr "実行モード:"
#: editor/run_settings_dialog.cpp
msgid "Current Scene"
@@ -7241,7 +7286,7 @@ msgstr "シーン実行ã®è¨­å®š"
#: editor/scene_tree_dock.cpp editor/script_create_dialog.cpp
#: scene/gui/dialogs.cpp
msgid "OK"
-msgstr "決定"
+msgstr "OK"
#: editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
@@ -7592,7 +7637,7 @@ msgstr "䏿­£ãªãƒ™ãƒ¼ã‚¹ï¼ˆbase)パス"
#: editor/script_create_dialog.cpp
msgid "Directory of the same name exists"
-msgstr ""
+msgstr "åŒã˜åå‰ã®ãƒ•ォルダãŒã‚りã¾ã™"
#: editor/script_create_dialog.cpp
#, fuzzy
@@ -7601,11 +7646,11 @@ msgstr "ãƒ•ã‚¡ã‚¤ãƒ«ãŒæ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚上書ãã—ã¾ã™ã‹ï¼Ÿ"
#: editor/script_create_dialog.cpp
msgid "Invalid extension"
-msgstr ""
+msgstr "ç„¡åŠ¹ãªæ‹¡å¼µå­ã§ã™"
#: editor/script_create_dialog.cpp
msgid "Wrong extension chosen"
-msgstr ""
+msgstr "æ‹¡å¼µå­ãŒèª¤ã£ã¦ã„ã¾ã™"
#: editor/script_create_dialog.cpp
#, fuzzy
@@ -7697,7 +7742,7 @@ msgstr "関数:"
#: editor/script_editor_debugger.cpp
msgid "Pick one or more items from the list to display the graph."
-msgstr ""
+msgstr "グラフ表示ã™ã‚‹ã«ã¯ãƒªã‚¹ãƒˆã‹ã‚‰ã‚¢ã‚¤ãƒ†ãƒ ã‚’é¸ã‚“ã§ãã ã•ã„."
#: editor/script_editor_debugger.cpp
msgid "Errors"
@@ -7803,6 +7848,10 @@ msgstr ""
msgid "Shortcuts"
msgstr "ショートカット"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "å…‰æºã®åŠå¾„を変更"
@@ -7855,19 +7904,59 @@ msgstr "パーティクルã®è»¸å¹³è¡Œå¢ƒç•Œãƒœãƒƒã‚¯ã‚¹ã‚’変更"
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "パスã®ãƒã‚¤ãƒ³ãƒˆã‚’除去"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Platform"
+msgstr "プラットフォームã¸ã‚³ãƒ”ー.."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "メッシュライブラリ.."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "メッシュライブラリ.."
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Library"
msgstr "メッシュライブラリ.."
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Status"
msgstr "ステータス:"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
-msgstr ""
+msgstr "ライブラリ: "
#: modules/gdnative/register_types.cpp
msgid "GDNative"
@@ -7923,7 +8012,7 @@ msgstr "無効ãªã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹è¾žæ›¸ã§ã™ (無効ãªã‚µãƒ–クラス)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Object can't provide a length."
-msgstr ""
+msgstr "オブジェクトã«é•·ã•ãŒã‚りã¾ã›ã‚“."
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
@@ -7937,7 +8026,7 @@ msgstr "é¸æŠžç¯„å›²ã‚’è¤‡è£½"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Floor:"
-msgstr ""
+msgstr "床é¢:"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
@@ -7950,13 +8039,12 @@ msgid "Snap View"
msgstr "上é¢å›³"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Previous Floor"
-msgstr "以å‰ã®ã‚¿ãƒ–"
+msgstr "å‰ã®åºŠé¢"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Floor"
-msgstr ""
+msgstr "次ã®åºŠé¢"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
@@ -7973,15 +8061,15 @@ msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit X Axis"
-msgstr ""
+msgstr "X軸を編集"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit Y Axis"
-msgstr ""
+msgstr "Y軸を編集"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit Z Axis"
-msgstr ""
+msgstr "Z軸を編集"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
@@ -8046,7 +8134,7 @@ msgstr "インスタンス:"
#: modules/mono/editor/mono_bottom_panel.cpp
msgid "Builds"
-msgstr ""
+msgstr "ビルド"
#: modules/visual_script/visual_script.cpp
#, fuzzy
@@ -8291,7 +8379,7 @@ msgstr "Getメソッド"
#: modules/visual_script/visual_script_editor.cpp
msgid "Script already has function '%s'"
-msgstr ""
+msgstr "スクリプトã«é–¢æ•° '%s'ãŒæ—¢ã«ã‚りã¾ã™"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -8378,7 +8466,7 @@ msgstr "é¸æŠžç¯„å›²ã‚’æ¶ˆåŽ»"
#: modules/visual_script/visual_script_editor.cpp
msgid "Find Node Type"
-msgstr ""
+msgstr "ノードタイプを探ã™"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -8625,11 +8713,11 @@ msgstr ""
#: scene/3d/arvr_nodes.cpp
msgid "ARVRCamera must have an ARVROrigin node as its parent"
-msgstr ""
+msgstr "ARVRCameraã¯ARVROriginãƒŽãƒ¼ãƒ‰ã‚’è¦ªã«æŒã¤å¿…è¦ãŒã‚りã¾ã™"
#: scene/3d/arvr_nodes.cpp
msgid "ARVRController must have an ARVROrigin node as its parent"
-msgstr ""
+msgstr "ARVRControllerã¯ARVROriginãƒŽãƒ¼ãƒ‰ã‚’è¦ªã«æŒã¤å¿…è¦ãŒã‚りã¾ã™"
#: scene/3d/arvr_nodes.cpp
msgid ""
@@ -8639,7 +8727,7 @@ msgstr ""
#: scene/3d/arvr_nodes.cpp
msgid "ARVRAnchor must have an ARVROrigin node as its parent"
-msgstr ""
+msgstr "ARVRAnchorã¯ARVROriginã‚’è¦ªã«æŒã¤å¿…è¦ãŒã‚りã¾ã™"
#: scene/3d/arvr_nodes.cpp
msgid ""
@@ -8649,7 +8737,26 @@ msgstr ""
#: scene/3d/arvr_nodes.cpp
msgid "ARVROrigin requires an ARVRCamera child node"
-msgstr ""
+msgstr "ARVROriginã¯ARVRCameraå­ãƒŽãƒ¼ãƒ‰ãŒå¿…è¦ã§ã™"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "イメージをé…ç½®(Blit)"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "イメージをé…ç½®(Blit)"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr "プロット完了"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "イメージをé…ç½®(Blit)"
#: scene/3d/collision_polygon.cpp
#, fuzzy
@@ -8689,10 +8796,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr "イメージをé…ç½®(Blit)"
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -8760,10 +8863,6 @@ msgid "Add current color as a preset"
msgstr "ã“ã®è‰²ã‚’åˆæœŸè¨­å®šå€¤ã¨ã—ã¦è¿½åŠ ã™ã‚‹"
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "キャンセル"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "警告!"
@@ -8839,6 +8938,32 @@ msgstr "フォント読ã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼ã€‚"
msgid "Invalid font size."
msgstr "無効ãªãƒ•ォント サイズã§ã™ã€‚"
+#~ msgid "Move Add Key"
+#~ msgstr "追加ã—ãŸã‚­ãƒ¼ã‚’移動"
+
+#, fuzzy
+#~ msgid "Create Subscription"
+#~ msgstr "サブスクリプションã®ç”Ÿæˆ"
+
+#, fuzzy
+#~ msgid "List:"
+#~ msgstr "リスト:"
+
+#, fuzzy
+#~ msgid "Set Emission Mask"
+#~ msgstr "発光(Emission)マスクを設定"
+
+#, fuzzy
+#~ msgid "Clear Emitter"
+#~ msgstr "発光物をクリア"
+
+#~ msgid " "
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Sections:"
+#~ msgstr "セクション:"
+
#, fuzzy
#~ msgid "Cannot navigate to '"
#~ msgstr "~ã«ç§»å‹•ã§ãã¾ã›ã‚“"
@@ -9482,10 +9607,6 @@ msgstr "無効ãªãƒ•ォント サイズã§ã™ã€‚"
#~ msgstr "BVHデータを生æˆ"
#, fuzzy
-#~ msgid "Transfer to Lightmaps:"
-#~ msgstr "ライトマップã¸ã®è»¢å†™:"
-
-#, fuzzy
#~ msgid "Allocating Texture #"
#~ msgstr "テクスãƒãƒ£ã‚’(メモリ上ã§ï¼‰ç¢ºä¿#"
@@ -9642,10 +9763,6 @@ msgstr "無効ãªãƒ•ォント サイズã§ã™ã€‚"
#~ msgstr "deleteキー"
#, fuzzy
-#~ msgid "Copy To Platform.."
-#~ msgstr "プラットフォームã¸ã‚³ãƒ”ー.."
-
-#, fuzzy
#~ msgid "just pressed"
#~ msgstr "押ã—ãŸ"
diff --git a/editor/translations/ko.po b/editor/translations/ko.po
index 01f8f2823d..249f8bff9e 100644
--- a/editor/translations/ko.po
+++ b/editor/translations/ko.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2017-11-27 12:48+0000\n"
+"PO-Revision-Date: 2017-12-11 00:48+0000\n"
"Last-Translator: 박한얼 <volzhs@gmail.com>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/"
"godot/ko/>\n"
@@ -30,8 +30,9 @@ msgid "All Selection"
msgstr "모든 ì„ íƒ"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "키 ì´ë™"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "값 변경"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -42,7 +43,8 @@ msgid "Anim Change Transform"
msgstr "ì†ì„± 변경"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "값 변경"
#: editor/animation_editor.cpp
@@ -536,8 +538,9 @@ msgid "Connecting Signal:"
msgstr "ì‹œê·¸ë„ ì—°ê²°:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "연결 해제"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "'%s'를 '%s'ì— ì—°ê²°"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -553,7 +556,8 @@ msgid "Signals"
msgstr "시그ë„"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "새로 만들기"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -568,7 +572,7 @@ msgstr "최근:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "검색:"
@@ -609,6 +613,7 @@ msgstr ""
"다시 로드 í•  때 변경 ì‚¬í•­ì´ ì ìš©ë©ë‹ˆë‹¤."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "ì¢…ì† ê´€ê³„"
@@ -711,9 +716,10 @@ msgid "Delete selected files?"
msgstr "ì„ íƒëœ 파ì¼ë“¤ì„ 삭제하시겠습니까?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "삭제"
@@ -771,19 +777,19 @@ msgstr "미니 스í°ì„œ"
#: editor/editor_about.cpp
msgid "Gold Donors"
-msgstr "골드 기ì¦ìž"
+msgstr "골드 기부ìž"
#: editor/editor_about.cpp
msgid "Silver Donors"
-msgstr "브론즈 기ì¦ìž"
+msgstr "실버 기부ìž"
#: editor/editor_about.cpp
msgid "Bronze Donors"
-msgstr "브론즈 기ì¦ìž"
+msgstr "브론즈 기부ìž"
#: editor/editor_about.cpp
msgid "Donors"
-msgstr "기ì¦ìž"
+msgstr "기부ìž"
#: editor/editor_about.cpp
msgid "License"
@@ -855,6 +861,11 @@ msgid "Rename Audio Bus"
msgstr "오디오 버스 ì´ë¦„ 변경"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "오디오 버스 솔로 토글"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "오디오 버스 솔로 토글"
@@ -902,8 +913,8 @@ msgstr "ë°”ì´íŒ¨ìФ"
msgid "Bus options"
msgstr "버스 옵션"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "복제"
@@ -916,6 +927,10 @@ msgid "Delete Effect"
msgstr "ì´íŽ™íŠ¸ ì‚­ì œ"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "오디오 버스 추가"
@@ -1037,7 +1052,7 @@ msgstr "ìžë™ë¡œë“œì— '%s'ì´(ê°€) ì´ë¯¸ 존재합니다!"
#: editor/editor_autoload_settings.cpp
msgid "Rename Autoload"
-msgstr "ìžë™ 로드 ì´ë¦„ 변경"
+msgstr "오토로드 ì´ë¦„ 변경"
#: editor/editor_autoload_settings.cpp
msgid "Toggle AutoLoad Globals"
@@ -1045,11 +1060,11 @@ msgstr "ìžë™ë¡œë“œ 글로벌 토글"
#: editor/editor_autoload_settings.cpp
msgid "Move Autoload"
-msgstr "ìžë™ 로드 ì´ë™"
+msgstr "오토로드 ì´ë™"
#: editor/editor_autoload_settings.cpp
msgid "Remove Autoload"
-msgstr "ìžë™ 로드 ì‚­ì œ"
+msgstr "오토로드 삭제"
#: editor/editor_autoload_settings.cpp
msgid "Enable"
@@ -1057,7 +1072,7 @@ msgstr "활성화"
#: editor/editor_autoload_settings.cpp
msgid "Rearrange Autoloads"
-msgstr "ìžë™ 로드 위치 변경"
+msgstr "오토로드 재정렬"
#: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp
#: scene/gui/file_dialog.cpp
@@ -1068,7 +1083,8 @@ msgstr "경로:"
msgid "Node Name:"
msgstr "노드 ì´ë¦„:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "ì´ë¦„"
@@ -1076,10 +1092,6 @@ msgstr "ì´ë¦„"
msgid "Singleton"
msgstr "싱글톤"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "목ë¡:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "씬 ì—…ë°ì´íЏ 중"
@@ -1092,6 +1104,15 @@ msgstr "로컬 ë³€ê²½ì‚¬í•­ì„ ì €ìž¥ 중.."
msgid "Updating scene.."
msgstr "씬 ì—…ë°ì´íЏ 중.."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(비었ìŒ)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "먼저 기본 디렉토리를 ì„ íƒí•´ì£¼ì„¸ìš”"
@@ -1138,9 +1159,24 @@ msgid "File Exists, Overwrite?"
msgstr "파ì¼ì´ 존재합니다. ë®ì–´ì“°ì‹œê² ìŠµë‹ˆê¹Œ?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "í´ë” ìƒì„±"
+msgstr "현재 í´ë” ì„ íƒ"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "경로 복사"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "íŒŒì¼ ë§¤ë‹ˆì €ì—서 보기"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "새 í´ë”.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "새로고침"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1189,10 +1225,6 @@ msgid "Go Up"
msgstr "위로 가기"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "새로고침"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "숨김 íŒŒì¼ í† ê¸€"
@@ -1372,7 +1404,8 @@ msgstr "출력:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "지우기"
@@ -1528,14 +1561,12 @@ msgstr ""
"ëžë‹ˆë‹¤."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand all properties"
-msgstr "ëª¨ë‘ í™•ìž¥"
+msgstr "모든 ì†ì„± 펼치기"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Collapse all properties"
-msgstr "ëª¨ë‘ ì ‘ê¸°"
+msgstr "모든 ì†ì„± 접기"
#: editor/editor_node.cpp
msgid "Copy Params"
@@ -1923,7 +1954,7 @@ msgstr "ë„구"
#: editor/editor_node.cpp
msgid "Quit to Project List"
-msgstr "종료하고 프로ì íЏ 목ë¡ìœ¼ë¡œ ëŒì•„가기"
+msgstr "종료 후 프로ì íЏ ëª©ë¡ ì—´ê¸°"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Debug"
@@ -2315,6 +2346,16 @@ msgstr "ìžì‹ "
msgid "Frame #:"
msgstr "프레임 #:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "시간:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "호출"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "목ë¡ì—서 기기를 ì„ íƒí•˜ì„¸ìš”"
@@ -2456,7 +2497,8 @@ msgstr "ì‘답 ì—†ìŒ."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "요청 실패."
#: editor/export_template_manager.cpp
@@ -2503,7 +2545,8 @@ msgid "Connecting.."
msgstr "연결중.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "ì—°ê²°í•  수 ì—†ìŒ"
#: editor/export_template_manager.cpp
@@ -2596,6 +2639,11 @@ msgid "Error moving:\n"
msgstr "ì´ë™ ì—러:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "로드 중 ì—러:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "종ì†í•­ëª©ì„ ì—…ë°ì´íЏ í•  수 없습니다:\n"
@@ -2628,6 +2676,16 @@ msgid "Renaming folder:"
msgstr "í´ë”명 변경:"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "복제"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "í´ë”명 변경:"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "ëª¨ë‘ í™•ìž¥"
@@ -2636,10 +2694,6 @@ msgid "Collapse all"
msgstr "ëª¨ë‘ ì ‘ê¸°"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "경로 복사"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "ì´ë¦„ 변경.."
@@ -2648,12 +2702,9 @@ msgid "Move To.."
msgstr "ì´ë™.."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "새 í´ë”.."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "íŒŒì¼ ë§¤ë‹ˆì €ì—서 보기"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "씬 열기"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2668,6 +2719,11 @@ msgid "View Owners.."
msgstr "ì†Œìœ ìž ë³´ê¸°.."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "복제"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "ì´ì „ 디렉토리"
@@ -2762,6 +2818,16 @@ msgid "Importing Scene.."
msgstr "씬 가져오는 중.."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "ë¼ì´íŠ¸ë§µìœ¼ë¡œ 전송:"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "AABB ìƒì„± 중"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "ì‚¬ìš©ìž ì •ì˜ ìŠ¤í¬ë¦½íЏ 실행중.."
@@ -2992,7 +3058,7 @@ msgstr "애니메ì´ì…˜ ëª©ë¡ í‘œì‹œ."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Autoplay on Load"
-msgstr "로드 시 ìžë™ 시작"
+msgstr "로드 시 ìžë™ 플레ì´"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Edit Target Blend Times"
@@ -3008,46 +3074,43 @@ msgstr "애니메ì´ì…˜ 복사"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "어니언 스키ë‹"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "어니언 ìŠ¤í‚¤ë‹ í™œì„±í™”"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "부문:"
+msgstr "ë°©í–¥"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Past"
-msgstr "붙여넣기"
+msgstr "과거"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Future"
-msgstr "기능"
+msgstr "미래"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "깊ì´"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 단계"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 단계"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 단계"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "변경사항만"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
@@ -3055,7 +3118,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "기즈모 í¬í•¨ (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -3332,6 +3395,7 @@ msgid "last"
msgstr "마지막"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "모ë‘"
@@ -3373,6 +3437,28 @@ msgstr "테스팅"
msgid "Assets ZIP File"
msgstr "ì—ì…‹ ZIP 파ì¼"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "ë¼ì´íŠ¸ë§µìœ¼ë¡œ 전송:"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "미리보기"
@@ -3509,7 +3595,6 @@ msgid "Toggles snapping"
msgstr "스냅 토글"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "스냅 사용"
@@ -3519,7 +3604,7 @@ msgstr "스냅 옵션"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to grid"
-msgstr "ê·¸ë¦¬ë“œì— ë§žì¶¤"
+msgstr "ê·¸ë¦¬ë“œì— ìŠ¤ëƒ…"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Rotation Snap"
@@ -3543,7 +3628,7 @@ msgstr "스마트 스냅"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to parent"
-msgstr "ë¶€ëª¨ì— ë§žì¶¤"
+msgstr "ë¶€ëª¨ì— ìŠ¤ëƒ…"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to node anchor"
@@ -3559,7 +3644,7 @@ msgstr "다른 ë…¸ë“œì— ìŠ¤ëƒ…"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to guides"
-msgstr "ê°€ì´ë“œì— 맞춤"
+msgstr "ê°€ì´ë“œì— 스냅"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -3607,7 +3692,7 @@ msgstr "보기"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Show Grid"
-msgstr "그리드 ë³´ì´ê¸°"
+msgstr "그리드 보기"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show helpers"
@@ -3689,16 +3774,6 @@ msgstr "'%s' 로부터 씬 ì¸ìŠ¤í„´ìŠ¤ 중 ì—러"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "넹 :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "ì„ íƒëœ 부모 노드가 없어서 ìžì‹ë…¸ë“œë¥¼ ì¸ìŠ¤í„´ìŠ¤í•  수 없습니다."
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr "ì´ ìž‘ì—…ì€ í•˜ë‚˜ì˜ ì„ íƒëœ 노드를 필요로 합니다."
@@ -3810,7 +3885,7 @@ msgstr "쉬프트키를 누르고 있으면 탄젠트를 개별ì ìœ¼ë¡œ 편집
#: editor/plugins/gi_probe_editor_plugin.cpp
msgid "Bake GI Probe"
-msgstr ""
+msgstr "GI Probe 굽기"
#: editor/plugins/gradient_editor_plugin.cpp
msgid "Add/Remove Color Ramp Point"
@@ -3894,6 +3969,22 @@ msgid "Create Navigation Mesh"
msgstr "네비게ì´ì…˜ 메쉬 만들기"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr "MeshInstanceì— ë©”ì‰¬ê°€ 없습니다!"
@@ -3934,6 +4025,20 @@ msgid "Create Outline Mesh.."
msgstr "외곽선 메쉬 만들기.."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "보기"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "보기"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr "외곽선 메쉬 만들기"
@@ -4110,10 +4215,6 @@ msgid "Create Navigation Polygon"
msgstr "네비게ì´ì…˜ í´ë¦¬ê³¤ 만들기"
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr "ì—미션 ë§ˆìŠ¤í¬ ì •ë¦¬"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr "AABB ìƒì„± 중"
@@ -4131,10 +4232,6 @@ msgid "No pixels with transparency > 128 in image.."
msgstr "ì´ë¯¸ì§€ì— 투명ë„ê°€ 128보다 í° í”½ì…€ì´ ì—†ìŠµë‹ˆë‹¤.."
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "ì—미션 ë§ˆìŠ¤í¬ ì„¤ì •"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
msgstr ""
@@ -4143,6 +4240,10 @@ msgid "Load Emission Mask"
msgstr "ì—미션 ë§ˆìŠ¤í¬ ë¡œë“œ"
#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "ì—미션 ë§ˆìŠ¤í¬ ì •ë¦¬"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
msgstr "파티í´"
@@ -4201,10 +4302,6 @@ msgid "Create Emission Points From Node"
msgstr "노드로부터 ì—미터 í¬ì¸íЏ 만들기"
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "ì—미터 정리"
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr "ì—미터 만들기"
@@ -4489,11 +4586,13 @@ msgstr "ì •ë ¬"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "위로 ì´ë™"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "아래로 ì´ë™"
@@ -4509,7 +4608,7 @@ msgstr "ì´ì „ 스í¬ë¦½íЏ"
msgid "File"
msgstr "파ì¼"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "새로운"
@@ -4522,6 +4621,11 @@ msgid "Soft Reload Script"
msgstr "스í¬ë¦½íЏ 다시 로드"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "경로 복사"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr "ì´ì „ 히스토리"
@@ -4710,11 +4814,8 @@ msgid "Clone Down"
msgstr "아래로 복제"
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr "ë¼ì¸ ì ‘ìŒ"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+#, fuzzy
+msgid "Fold/Unfold Line"
msgstr "ë¼ì¸ 펼치기"
#: editor/plugins/script_text_editor.cpp
@@ -5042,6 +5143,14 @@ msgstr "초당 프레임"
msgid "Align with view"
msgstr "ë·°ì— ì •ë ¬"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "넹 :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "ì„ íƒëœ 부모 노드가 없어서 ìžì‹ë…¸ë“œë¥¼ ì¸ìŠ¤í„´ìŠ¤í•  수 없습니다."
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "Normal 표시"
@@ -5149,6 +5258,20 @@ msgid "Scale Mode (R)"
msgstr "í¬ê¸°ì¡°ì ˆ 모드 (R)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "로컬 좌표"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "í¬ê¸°ì¡°ì ˆ 모드 (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "스냅 모드:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "하단 뷰"
@@ -5221,10 +5344,6 @@ msgid "Configure Snap.."
msgstr "스냅 설정.."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "로컬 좌표"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr "변환 다ì´ì–¼ë¡œê·¸.."
@@ -5266,6 +5385,10 @@ msgid "Settings"
msgstr "설정"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr "스냅 설정"
@@ -5291,11 +5414,11 @@ msgstr "ì›ê·¼ 시야 (ë„):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Near:"
-msgstr "Zì¶• ê°€ê¹Œì´ ë³´ê¸°:"
+msgstr "Z-근경 보기:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Far:"
-msgstr "Z축 멀리 보기:"
+msgstr "Z-ì›ê²½ 보기:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Change"
@@ -5648,6 +5771,11 @@ msgid "Merge from scene?"
msgstr "씬으로부터 병합하시겠습니까?"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "íƒ€ì¼ ì…‹.."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "씬으로부터 만들기"
@@ -5659,6 +5787,10 @@ msgstr "씬으로부터 병합하기"
msgid "Error"
msgstr "ì—러"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "취소"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "실행가능"
@@ -5731,7 +5863,7 @@ msgstr "기능"
#: editor/project_export.cpp
msgid "Custom (comma-separated):"
-msgstr ""
+msgstr "커스텀 (콤마로 구분):"
#: editor/project_export.cpp
msgid "Feature List:"
@@ -5743,11 +5875,11 @@ msgstr "PCK/Zip 내보내기"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing:"
-msgstr ""
+msgstr "ì´ í”Œëž«í¼ì— 대한 내보내기 í…œí”Œë¦¿ì´ ì—†ìŒ:"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing/corrupted:"
-msgstr ""
+msgstr "ì´ í”Œëž«í¼ì— 대한 내보내기 í…œí”Œë¦¿ì´ ì—†ê±°ë‚˜ ì†ìƒë¨:"
#: editor/project_export.cpp
msgid "Export With Debug"
@@ -5766,22 +5898,19 @@ msgid ""
"Your project will be created in a non empty folder (you might want to create "
"a new folder)."
msgstr ""
+"비어있지 ì•Šì€ í´ë”ì— í”„ë¡œì íŠ¸ê°€ ìƒì„±ë©ë‹ˆë‹¤ (새 í´ë”를 만드는 ê²ƒì„ ê¶Œí•©ë‹ˆë‹¤)."
#: editor/project_manager.cpp
msgid "Please choose a folder that does not contain a 'project.godot' file."
-msgstr ""
+msgstr "'project.godot' 파ì¼ì´ 없는 í´ë”를 ì„ íƒ í•˜ì‹­ì‹œì˜¤."
#: editor/project_manager.cpp
msgid "Imported Project"
msgstr "가져온 프로ì íЏ"
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
-msgstr ""
+msgstr "프로ì íЏ ì´ë¦„ì„ ì •í•˜ëŠ” ê²ƒì„ ê¶Œí•©ë‹ˆë‹¤."
#: editor/project_manager.cpp
msgid "Invalid project path (changed anything?)."
@@ -5874,6 +6003,8 @@ msgid ""
"Can't run project: Assets need to be imported.\n"
"Please edit the project to trigger the initial import."
msgstr ""
+"프로ì íЏ 실행 불가: ì–´ì…‹ë“¤ì„ ê°€ì ¸ì™€ì•¼ 합니다.\n"
+"프로ì íŠ¸ë¥¼ 편집하여 최초 가져오기가 실행ë˜ë„ë¡ í•˜ì„¸ìš”."
#: editor/project_manager.cpp
msgid "Are you sure to run more than one project?"
@@ -5889,6 +6020,8 @@ msgid ""
"Language changed.\n"
"The UI will update next time the editor or project manager starts."
msgstr ""
+"언어가 변경ë˜ì—ˆìŠµë‹ˆë‹¤.\n"
+"UI는 ì—디터나 프로ì íЏ 매니저가 ë‹¤ìŒ ë²ˆì— ì‹¤í–‰ë  ë•Œ ì—…ë°ì´íЏ ë©ë‹ˆë‹¤."
#: editor/project_manager.cpp
msgid ""
@@ -5933,6 +6066,8 @@ msgid ""
"You don't currently have any projects.\n"
"Would you like to explore the official example projects in the Asset Library?"
msgstr ""
+"프로ì íŠ¸ê°€ 현재 í•˜ë‚˜ë„ ì—†ìŠµë‹ˆë‹¤.\n"
+"어쎗 ë¼ì´ë¸ŒëŸ¬ë¦¬ì—서 ê³µì‹ ì˜ˆì œ 프로ì íŠ¸ë¥¼ 찾아보시겠습니까?"
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -6040,8 +6175,9 @@ msgid "Joypad Button Index:"
msgstr "ì¡°ì´íŒ¨ë“œ 버튼 ì¸ë±ìФ:"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "입력 액션 추가"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "ìž…ë ¥ ì•¡ì…˜ ì´ë²¤íЏ ì‚­ì œ"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6081,11 +6217,11 @@ msgstr "휠 아래로."
#: editor/project_settings_editor.cpp
msgid "Add Global Property"
-msgstr ""
+msgstr "글로벌 ì†ì„± 추가"
#: editor/project_settings_editor.cpp
msgid "Select a setting item first!"
-msgstr ""
+msgstr "먼저 설정 í•­ëª©ì„ ì„ íƒí•˜ì„¸ìš”!"
#: editor/project_settings_editor.cpp
msgid "No property '%s' exists."
@@ -6093,7 +6229,7 @@ msgstr "'%s' ì†ì„±ì´ 존재하지 않습니다."
#: editor/project_settings_editor.cpp
msgid "Setting '%s' is internal, and it can't be deleted."
-msgstr ""
+msgstr "'%s' ì„¤ì •ì€ ë‚´ë¶€ì ì¸ 것입니다, 삭제가 불가합니다."
#: editor/project_settings_editor.cpp
msgid "Delete Item"
@@ -6108,6 +6244,10 @@ msgid "Already existing"
msgstr "ì´ë¯¸ 존재함"
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "입력 액션 추가"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "설정 저장 중 ì—러."
@@ -6153,7 +6293,7 @@ msgstr "ë¡œì¼€ì¼ í•„í„° 변경ë¨"
#: editor/project_settings_editor.cpp
msgid "Changed Locale Filter Mode"
-msgstr ""
+msgstr "ë¡œì¼€ì¼ í•„í„° 모드 변경"
#: editor/project_settings_editor.cpp
msgid "Project Settings (project.godot)"
@@ -6225,7 +6365,7 @@ msgstr "모든 ë¡œì¼€ì¼ ë³´ê¸°"
#: editor/project_settings_editor.cpp
msgid "Show only selected locales"
-msgstr ""
+msgstr "ì„ íƒí•œ 로케ì¼ë§Œ 표시"
#: editor/project_settings_editor.cpp
msgid "Filter mode:"
@@ -6237,7 +6377,7 @@ msgstr "로케ì¼:"
#: editor/project_settings_editor.cpp
msgid "AutoLoad"
-msgstr "ìžë™ 로드"
+msgstr "오토로드"
#: editor/property_editor.cpp
msgid "Pick a Viewport"
@@ -6284,6 +6424,10 @@ msgid "New Script"
msgstr "새 스í¬ë¦½íЏ"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr "고유하게 만들기"
@@ -6315,6 +6459,11 @@ msgstr "비트 %d, 값 %d."
msgid "On"
msgstr "사용"
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "빈 프레임 추가"
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "설정"
@@ -6323,10 +6472,6 @@ msgstr "설정"
msgid "Properties:"
msgstr "ì†ì„±:"
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr "부문:"
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "ì†ì„± ì„ íƒ"
@@ -6523,7 +6668,7 @@ msgstr "스í¬ë¦½íЏ 제거"
#: editor/scene_tree_dock.cpp
msgid "Merge From Scene"
-msgstr "다른 씬과 병합"
+msgstr "다른 씬ì—서 가져오기"
#: editor/scene_tree_dock.cpp
msgid "Save Branch as Scene"
@@ -6878,6 +7023,10 @@ msgstr "트리로부터 설정"
msgid "Shortcuts"
msgstr "단축키"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "Light 반경 변경"
@@ -6926,15 +7075,55 @@ msgstr ""
msgid "Change Probe Extents"
msgstr "프로브 범위 변경"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "커프 í¬ì¸íЏ ì‚­ì œ"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Platform"
+msgstr "플랫í¼ìœ¼ë¡œ 복사.."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "ë¼ì´ë¸ŒëŸ¬ë¦¬"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "ë¼ì´ë¸ŒëŸ¬ë¦¬"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr "ë¼ì´ë¸ŒëŸ¬ë¦¬"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr "ìƒíƒœ"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7608,6 +7797,25 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "ì´ë¯¸ì§€ 병합 중"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "ì´ë¯¸ì§€ 병합 중"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "ì´ë¯¸ì§€ 병합 중"
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7645,10 +7853,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr "ì´ë¯¸ì§€ 병합 중"
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7708,10 +7912,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "취소"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "경고!"
@@ -7778,6 +7978,27 @@ msgstr "í°íЏ 로딩 ì—러."
msgid "Invalid font size."
msgstr "유요하지 ì•Šì€ í°íЏ 사ì´ì¦ˆ."
+#~ msgid "Move Add Key"
+#~ msgstr "키 ì´ë™"
+
+#~ msgid "Create Subscription"
+#~ msgstr "연결 해제"
+
+#~ msgid "List:"
+#~ msgstr "목ë¡:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "ì—미션 ë§ˆìŠ¤í¬ ì„¤ì •"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "ì—미터 정리"
+
+#~ msgid "Fold Line"
+#~ msgstr "ë¼ì¸ ì ‘ìŒ"
+
+#~ msgid "Sections:"
+#~ msgstr "부문:"
+
#~ msgid ""
#~ "\n"
#~ "Source: "
@@ -8298,9 +8519,6 @@ msgstr "유요하지 ì•Šì€ í°íЏ 사ì´ì¦ˆ."
#~ msgid "Making BVH"
#~ msgstr "BVH 만드는 중"
-#~ msgid "Transfer to Lightmaps:"
-#~ msgstr "ë¼ì´íŠ¸ë§µìœ¼ë¡œ 전송:"
-
#~ msgid "Allocating Texture #"
#~ msgstr "í…ìŠ¤ì³ í• ë‹¹ 중 #"
@@ -8443,9 +8661,6 @@ msgstr "유요하지 ì•Šì€ í°íЏ 사ì´ì¦ˆ."
#~ msgid "Del"
#~ msgstr "삭제"
-#~ msgid "Copy To Platform.."
-#~ msgstr "플랫í¼ìœ¼ë¡œ 복사.."
-
#, fuzzy
#~ msgid ""
#~ "Couldn't read the certificate file. Are the path and password both "
diff --git a/editor/translations/lt.po b/editor/translations/lt.po
index af752e728f..f51aeb7e23 100644
--- a/editor/translations/lt.po
+++ b/editor/translations/lt.po
@@ -29,8 +29,9 @@ msgid "All Selection"
msgstr "Visas Pasirinkimas"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr ""
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Animacija: Pakeisti Reikšmę"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -41,7 +42,8 @@ msgid "Anim Change Transform"
msgstr "Animacija: Pakeisti TransformacijÄ…"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Animacija: Pakeisti Reikšmę"
#: editor/animation_editor.cpp
@@ -537,8 +539,9 @@ msgid "Connecting Signal:"
msgstr ""
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr ""
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Prijungti '%s' prie '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -554,7 +557,8 @@ msgid "Signals"
msgstr "Signalai"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Sukurti NaujÄ…"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -569,7 +573,7 @@ msgstr "Naujausi:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr ""
@@ -606,6 +610,7 @@ msgid ""
msgstr ""
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr ""
@@ -706,9 +711,10 @@ msgid "Delete selected files?"
msgstr ""
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr ""
@@ -847,6 +853,10 @@ msgid "Rename Audio Bus"
msgstr ""
#: editor/editor_audio_buses.cpp
+msgid "Change Audio Bus Volume"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr ""
@@ -894,8 +904,8 @@ msgstr ""
msgid "Bus options"
msgstr ""
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Duplikuoti"
@@ -908,6 +918,10 @@ msgid "Delete Effect"
msgstr "Ištrinti Efektą"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr ""
@@ -1058,7 +1072,8 @@ msgstr ""
msgid "Node Name:"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr ""
@@ -1066,10 +1081,6 @@ msgstr ""
msgid "Singleton"
msgstr ""
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr ""
@@ -1082,6 +1093,14 @@ msgstr ""
msgid "Updating scene.."
msgstr ""
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr ""
@@ -1131,6 +1150,22 @@ msgstr ""
msgid "Select Current Folder"
msgstr ""
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr ""
@@ -1178,10 +1213,6 @@ msgid "Go Up"
msgstr ""
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr ""
@@ -1357,7 +1388,8 @@ msgstr ""
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr ""
@@ -2247,6 +2279,15 @@ msgstr ""
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "TrukmÄ—:"
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr ""
@@ -2382,7 +2423,7 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+msgid "Request Failed."
msgstr ""
#: editor/export_template_manager.cpp
@@ -2429,7 +2470,7 @@ msgid "Connecting.."
msgstr ""
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+msgid "Can't Connect"
msgstr ""
#: editor/export_template_manager.cpp
@@ -2520,6 +2561,10 @@ msgid "Error moving:\n"
msgstr ""
#: editor/filesystem_dock.cpp
+msgid "Error duplicating:\n"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr ""
@@ -2552,15 +2597,21 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Duplikuoti"
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Duplikuoti"
+
+#: editor/filesystem_dock.cpp
+msgid "Expand all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
@@ -2572,11 +2623,7 @@ msgid "Move To.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr ""
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
+msgid "Open Scene(s)"
msgstr ""
#: editor/filesystem_dock.cpp
@@ -2592,6 +2639,11 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Duplikuoti"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2684,6 +2736,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3249,6 +3309,7 @@ msgid "last"
msgstr "paskutinis"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Visi"
@@ -3290,6 +3351,27 @@ msgstr ""
msgid "Assets ZIP File"
msgstr ""
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3424,7 +3506,6 @@ msgid "Toggles snapping"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3604,16 +3685,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3805,6 +3876,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3845,6 +3932,18 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV1"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV2"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4021,10 +4120,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4042,15 +4137,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4112,10 +4207,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4398,11 +4489,13 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4418,7 +4511,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4431,6 +4524,10 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+msgid "Copy Script Path"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4617,11 +4714,7 @@ msgid "Clone Down"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+msgid "Fold/Unfold Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -4949,6 +5042,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5053,6 +5154,18 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5125,10 +5238,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5170,6 +5279,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5552,6 +5665,10 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Tile Set"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5563,6 +5680,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Atšaukti"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5680,10 +5801,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -5940,7 +6057,7 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
+msgid "Erase Input Action"
msgstr ""
#: editor/project_settings_editor.cpp
@@ -6008,6 +6125,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6184,6 +6305,10 @@ msgid "New Script"
msgstr ""
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6215,6 +6340,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6223,10 +6352,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6776,6 +6901,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6824,15 +6953,51 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Remove current entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7481,6 +7646,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7509,10 +7690,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7567,10 +7744,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Atšaukti"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Įspėjimas!"
diff --git a/editor/translations/nb.po b/editor/translations/nb.po
index ff238a5a85..b64f7bcf09 100644
--- a/editor/translations/nb.po
+++ b/editor/translations/nb.po
@@ -7,13 +7,14 @@
# Anonymous <GentleSaucepan@protonmail.com>, 2017.
# flesk <eivindkn@gmail.com>, 2017.
# Jørgen Aarmo Lund <jorgen.aarmo@gmail.com>, 2016.
+# NicolaiF <nico-fre@hotmail.com>, 2017.
# Norwegian Disaster <stian.furu.overbye@gmail.com>, 2017.
# passeride <lukas@passeride.com>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-29 08:12+0000\n"
+"PO-Revision-Date: 2017-12-05 23:48+0000\n"
"Last-Translator: flesk <eivindkn@gmail.com>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/godot-"
"engine/godot/nb/>\n"
@@ -29,11 +30,12 @@ msgstr "Deaktivert"
#: editor/animation_editor.cpp
msgid "All Selection"
-msgstr "Hele utvalget"
+msgstr "Alle valg"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Flytt Legg til Nøkkel"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Anim Forandre Verdi"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -41,10 +43,11 @@ msgstr "Anim Forandre Overgang"
#: editor/animation_editor.cpp
msgid "Anim Change Transform"
-msgstr "Anim Endre Transformering"
+msgstr "Anim Forandre Omforming"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Anim Forandre Verdi"
#: editor/animation_editor.cpp
@@ -96,8 +99,9 @@ msgid "Edit Node Curve"
msgstr "Forandre Nodekurve"
#: editor/animation_editor.cpp
+#, fuzzy
msgid "Edit Selection Curve"
-msgstr "Forandre Utvalgskurve"
+msgstr "Forandre utvalgskurve"
#: editor/animation_editor.cpp
msgid "Anim Delete Keys"
@@ -150,7 +154,7 @@ msgstr "GÃ¥ til Neste Steg"
#: editor/animation_editor.cpp
msgid "Goto Prev Step"
-msgstr "GÃ¥til Forrige Steg"
+msgstr "GÃ¥ til Forrige Steg"
#: editor/animation_editor.cpp editor/plugins/curve_editor_plugin.cpp
#: editor/property_editor.cpp
@@ -187,7 +191,7 @@ msgstr "Optimaliser Animasjon"
#: editor/animation_editor.cpp
msgid "Clean-Up Animation"
-msgstr "Rengjør Animasjon"
+msgstr "Rydd-Opp-Animasjon"
#: editor/animation_editor.cpp
msgid "Create NEW track for %s and insert key?"
@@ -212,7 +216,7 @@ msgstr "Anim Lag og Sett Inn"
#: editor/animation_editor.cpp
msgid "Anim Insert Track & Key"
-msgstr "Anim Sett inn Spor og Nøkkel"
+msgstr "Anim Sett Inn Spor & Nøkkel"
#: editor/animation_editor.cpp
msgid "Anim Insert Key"
@@ -243,7 +247,6 @@ msgid "Anim Add Call Track"
msgstr "Anim Legg Til Call Track"
#: editor/animation_editor.cpp
-#, fuzzy
msgid "Animation zoom."
msgstr "Animasjons-zoom."
@@ -265,7 +268,7 @@ msgstr "Pekersteghopp (i sekunder)."
#: editor/animation_editor.cpp
msgid "Enable/Disable looping in animation."
-msgstr "Aktiver/Deaktiver løkke i animasjon."
+msgstr "Aktiver/Deaktiver animasjonsløkke."
#: editor/animation_editor.cpp
msgid "Add new tracks."
@@ -285,7 +288,7 @@ msgstr "Fjern valgt spor."
#: editor/animation_editor.cpp
msgid "Track tools"
-msgstr "Sporverktøy"
+msgstr "Spoor verktøy"
#: editor/animation_editor.cpp
msgid "Enable editing of individual keys by clicking them."
@@ -312,9 +315,8 @@ msgid "Optimize"
msgstr "Optimaliser"
#: editor/animation_editor.cpp
-#, fuzzy
msgid "Select an AnimationPlayer from the Scene Tree to edit animations."
-msgstr "Marker en AnimationPlayer fra scenetreet for å endre animasjoner."
+msgstr "Velg en AnimationPlayer fra scenetreet for å endre animasjoner."
#: editor/animation_editor.cpp
msgid "Key"
@@ -536,13 +538,13 @@ msgid "Connect '%s' to '%s'"
msgstr "Koble '%s' til '%s'"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Connecting Signal:"
msgstr "Kobler Til Signal:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Lag Abonnement"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Koble '%s' til '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -558,7 +560,8 @@ msgid "Signals"
msgstr "Signaler"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Lag Ny"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -573,7 +576,7 @@ msgstr "Nylige:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Søk:"
@@ -614,6 +617,7 @@ msgstr ""
"Endringer vil tre i kraft når den lastes inn på nytt."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Avhengigheter"
@@ -678,7 +682,7 @@ msgstr "Feil ved innlasting:"
#: editor/dependency_editor.cpp
msgid "Scene failed to load due to missing dependencies:"
-msgstr "Scenen kunne ikke lastes, på grunn av manglende avhengigheter:"
+msgstr "Scenen kunne ikke lastes på grunn av manglende avhengigheter:"
#: editor/dependency_editor.cpp editor/editor_node.cpp
msgid "Open Anyway"
@@ -698,7 +702,7 @@ msgstr "Feil ved lasting!"
#: editor/dependency_editor.cpp
msgid "Permanently delete %d item(s)? (No undo!)"
-msgstr "Slett %d ting for godt? (kan ikke angres)"
+msgstr "Slett %d elementer for godt? (kan ikke angres)"
#: editor/dependency_editor.cpp
msgid "Owns"
@@ -717,22 +721,24 @@ msgid "Delete selected files?"
msgstr "Slett valgte filer?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Slett"
#: editor/dictionary_property_edit.cpp
+#, fuzzy
msgid "Change Dictionary Key"
msgstr "Endre Ordboksnøkkel"
#: editor/dictionary_property_edit.cpp
+#, fuzzy
msgid "Change Dictionary Value"
msgstr "Endre Ordboksverdi"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Thanks from the Godot community!"
msgstr "Takk fra Godot-samfunnet!"
@@ -742,7 +748,7 @@ msgstr "Takk!"
#: editor/editor_about.cpp
msgid "Godot Engine contributors"
-msgstr "Godot Engines bidragsytere"
+msgstr "Godot Engine sine bidragsytere"
#: editor/editor_about.cpp
msgid "Project Founders"
@@ -863,6 +869,11 @@ msgid "Rename Audio Bus"
msgstr "Gi nytt navn til Audio Bus"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Veksle Audio Bus Solo"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Veksle Audio Bus Solo"
@@ -900,7 +911,7 @@ msgstr "Solo"
#: editor/editor_audio_buses.cpp
msgid "Mute"
-msgstr "Mute"
+msgstr "Demp"
#: editor/editor_audio_buses.cpp
#, fuzzy
@@ -911,8 +922,8 @@ msgstr "Omgå"
msgid "Bus options"
msgstr "Bus valg"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Duplisér"
@@ -925,6 +936,10 @@ msgid "Delete Effect"
msgstr "Fjern Effekt"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "Legg til Audio Bus"
@@ -1059,160 +1074,176 @@ msgstr "Flytt Autoload"
#: editor/editor_autoload_settings.cpp
msgid "Remove Autoload"
-msgstr ""
+msgstr "Fjern Autoload"
#: editor/editor_autoload_settings.cpp
msgid "Enable"
-msgstr ""
+msgstr "Aktiver"
#: editor/editor_autoload_settings.cpp
msgid "Rearrange Autoloads"
-msgstr ""
+msgstr "Omorganiser Autoloads"
#: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp
#: scene/gui/file_dialog.cpp
msgid "Path:"
-msgstr ""
+msgstr "Bane:"
#: editor/editor_autoload_settings.cpp
msgid "Node Name:"
-msgstr ""
+msgstr "Nodenavn:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
-msgstr ""
+msgstr "Navn"
#: editor/editor_autoload_settings.cpp
msgid "Singleton"
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
+msgstr "Singleton"
#: editor/editor_data.cpp
msgid "Updating Scene"
-msgstr ""
+msgstr "Oppdaterer Scene"
#: editor/editor_data.cpp
msgid "Storing local changes.."
-msgstr ""
+msgstr "Lagrer lokale endringer.."
#: editor/editor_data.cpp
msgid "Updating scene.."
+msgstr "Oppdaterer scene.."
+
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
msgstr ""
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
-msgstr ""
+msgstr "Venligst velg en basemappe først"
#: editor/editor_dir_dialog.cpp
msgid "Choose a Directory"
-msgstr ""
+msgstr "Velg en Mappe"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
msgid "Create Folder"
-msgstr ""
+msgstr "Lag mappe"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
#: scene/gui/file_dialog.cpp
msgid "Name:"
-msgstr ""
+msgstr "Navn:"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
msgid "Could not create folder."
-msgstr ""
+msgstr "Kunne ikke opprette mappe."
#: editor/editor_dir_dialog.cpp
msgid "Choose"
-msgstr ""
+msgstr "Velg"
#: editor/editor_export.cpp
msgid "Storing File:"
-msgstr ""
+msgstr "Lagrer Fil:"
#: editor/editor_export.cpp
msgid "Packing"
-msgstr ""
+msgstr "Pakking"
#: editor/editor_export.cpp platform/javascript/export/export.cpp
msgid "Template file not found:\n"
-msgstr ""
+msgstr "Malfil ble ikke funnet:\n"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File Exists, Overwrite?"
-msgstr ""
+msgstr "Filen finnes, overskriv?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "Kutt Noder"
+msgstr "Velg Gjeldende Mappe"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Kopier Sti"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Vis I Filutforsker"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Ny Mappe.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Oppdater"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
-msgstr ""
+msgstr "Alle gjenkjente"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Files (*)"
-msgstr ""
+msgstr "Alle filer (*)"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a File"
-msgstr ""
+msgstr "Ã…pne en fil"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open File(s)"
-msgstr ""
+msgstr "Ã…pne fil(er)"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a Directory"
-msgstr ""
+msgstr "Ã…pne ei mappe"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a File or Directory"
-msgstr ""
+msgstr "Ã…pne ei fil eller mappe"
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp scene/gui/file_dialog.cpp
msgid "Save"
-msgstr ""
+msgstr "Lagre"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Save a File"
-msgstr ""
+msgstr "Lagre ei fil"
#: editor/editor_file_dialog.cpp
msgid "Go Back"
-msgstr ""
+msgstr "GÃ¥ tilbake"
#: editor/editor_file_dialog.cpp
msgid "Go Forward"
-msgstr ""
+msgstr "GÃ¥ framover"
#: editor/editor_file_dialog.cpp
msgid "Go Up"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
+msgstr "GÃ¥ oppover"
#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
-msgstr ""
+msgstr "Veksle visning av skjulte filer"
#: editor/editor_file_dialog.cpp
msgid "Toggle Favorite"
-msgstr ""
+msgstr "Veksle favorittmerkering"
#: editor/editor_file_dialog.cpp
msgid "Toggle Mode"
-msgstr ""
+msgstr "Veksle modus"
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
@@ -1220,32 +1251,32 @@ msgstr ""
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
-msgstr ""
+msgstr "Flytt favoritt oppover"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Down"
-msgstr ""
+msgstr "Flytt favoritt nedover"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Go to parent folder"
-msgstr ""
+msgstr "GÃ¥ til overnevnt mappe"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Directories & Files:"
-msgstr ""
+msgstr "Mapper og filer:"
#: editor/editor_file_dialog.cpp
msgid "Preview:"
-msgstr ""
+msgstr "Forhåndsvisning:"
#: editor/editor_file_dialog.cpp editor/script_editor_debugger.cpp
#: scene/gui/file_dialog.cpp
msgid "File:"
-msgstr ""
+msgstr "Fil:"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Must use a valid extension."
-msgstr ""
+msgstr "MÃ¥ ha en gyldig filutvidelse."
#: editor/editor_file_system.cpp
msgid "ScanSources"
@@ -1258,35 +1289,35 @@ msgstr ""
#: editor/editor_help.cpp editor/editor_node.cpp
#: editor/plugins/script_editor_plugin.cpp
msgid "Search Help"
-msgstr ""
+msgstr "Søk hjelp"
#: editor/editor_help.cpp
msgid "Class List:"
-msgstr ""
+msgstr "Klasseliste:"
#: editor/editor_help.cpp
msgid "Search Classes"
-msgstr ""
+msgstr "Søk i klasser"
#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
msgid "Top"
-msgstr ""
+msgstr "Topp"
#: editor/editor_help.cpp editor/property_editor.cpp
msgid "Class:"
-msgstr ""
+msgstr "Klasse:"
#: editor/editor_help.cpp editor/scene_tree_editor.cpp
msgid "Inherits:"
-msgstr ""
+msgstr "Arver:"
#: editor/editor_help.cpp
msgid "Inherited by:"
-msgstr ""
+msgstr "Arvet av:"
#: editor/editor_help.cpp
msgid "Brief Description:"
-msgstr ""
+msgstr "Kort beskrivelse:"
#: editor/editor_help.cpp
msgid "Members"
@@ -1298,193 +1329,200 @@ msgstr "Medlemmer:"
#: editor/editor_help.cpp
msgid "Public Methods"
-msgstr ""
+msgstr "Offentlige metoder"
#: editor/editor_help.cpp
msgid "Public Methods:"
-msgstr ""
+msgstr "Offentlige metoder:"
#: editor/editor_help.cpp
msgid "GUI Theme Items"
-msgstr ""
+msgstr "GUI Tema Elementer"
#: editor/editor_help.cpp
msgid "GUI Theme Items:"
-msgstr ""
+msgstr "GUI Tema Elementer:"
#: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp
msgid "Signals:"
msgstr "Signaler:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Enumerations"
-msgstr "Funksjoner:"
+msgstr "Nummereringer"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Enumerations:"
-msgstr "Funksjoner:"
+msgstr "Nummereringer:"
#: editor/editor_help.cpp
msgid "enum "
-msgstr ""
+msgstr "num "
#: editor/editor_help.cpp
msgid "Constants"
-msgstr ""
+msgstr "Konstanter"
#: editor/editor_help.cpp
msgid "Constants:"
-msgstr ""
+msgstr "Konstanter:"
#: editor/editor_help.cpp
msgid "Description"
-msgstr ""
+msgstr "Beskrivelse"
#: editor/editor_help.cpp
msgid "Properties"
-msgstr ""
+msgstr "Egenskaper"
#: editor/editor_help.cpp
msgid "Property Description:"
-msgstr ""
+msgstr "Egenskapsbeskrivelse:"
#: editor/editor_help.cpp
msgid ""
"There is currently no description for this property. Please help us by "
"[color=$color][url=$url]contributing one[/url][/color]!"
msgstr ""
+"Det finnes i øyeblikket ingen beskrivelse av denne egenskapen. Hjelp til ved "
+"Ã¥ [colour=$color][url=$url]bidra med en[/url][/color]!"
#: editor/editor_help.cpp
msgid "Methods"
-msgstr ""
+msgstr "Metoder"
#: editor/editor_help.cpp
msgid "Method Description:"
-msgstr ""
+msgstr "Metodebeskrivelse:"
#: editor/editor_help.cpp
msgid ""
"There is currently no description for this method. Please help us by [color="
"$color][url=$url]contributing one[/url][/color]!"
msgstr ""
+"Det finnes i øyeblikket ingen beskrivelse av denne metoden. Hjelp til ved å "
+"[colour=$color][url=$url]bidra med en[/url][/color]!"
#: editor/editor_help.cpp
msgid "Search Text"
-msgstr ""
+msgstr "Søk Tekst"
#: editor/editor_log.cpp
msgid "Output:"
-msgstr ""
+msgstr "Output:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
-msgstr ""
+msgstr "Tøm"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Error saving resource!"
-msgstr ""
+msgstr "Feil ved lagring av ressurs!"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Save Resource As.."
-msgstr ""
+msgstr "Lagre Ressurs Som.."
#: editor/editor_node.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+#, fuzzy
msgid "I see.."
-msgstr ""
+msgstr "Jeg ser.."
#: editor/editor_node.cpp
msgid "Can't open file for writing:"
-msgstr ""
+msgstr "Kan ikke åpne fil for skriving:"
#: editor/editor_node.cpp
msgid "Requested file format unknown:"
-msgstr ""
+msgstr "Forespurte filformat ukjent:"
#: editor/editor_node.cpp
msgid "Error while saving."
-msgstr ""
+msgstr "Feil under lagring."
#: editor/editor_node.cpp
msgid "Can't open '%s'."
-msgstr ""
+msgstr "Kan ikke åpne '%s'."
#: editor/editor_node.cpp
msgid "Error while parsing '%s'."
-msgstr ""
+msgstr "Error ved parsing av '%s'."
#: editor/editor_node.cpp
+#, fuzzy
msgid "Unexpected end of file '%s'."
-msgstr ""
+msgstr "Uventet ende av fil '%s'."
#: editor/editor_node.cpp
msgid "Missing '%s' or its dependencies."
-msgstr ""
+msgstr "Mangler '%s' eller dens avhengigheter."
#: editor/editor_node.cpp
msgid "Error while loading '%s'."
-msgstr ""
+msgstr "Feil ved lasting av '%s'."
#: editor/editor_node.cpp
msgid "Saving Scene"
-msgstr ""
+msgstr "Lagrer Scene"
#: editor/editor_node.cpp
msgid "Analyzing"
-msgstr ""
+msgstr "Analyserer"
#: editor/editor_node.cpp
msgid "Creating Thumbnail"
-msgstr ""
+msgstr "Lager Thumbnail"
#: editor/editor_node.cpp
msgid "This operation can't be done without a tree root."
-msgstr ""
+msgstr "Denne operasjonen kan ikke gjennomføres uten en trerot."
#: editor/editor_node.cpp
msgid ""
"Couldn't save scene. Likely dependencies (instances) couldn't be satisfied."
msgstr ""
+"Kunne ikke lagre scene. Sannsynligvis avhengigheter (instanser) ikke kunne "
+"oppfylles."
#: editor/editor_node.cpp
msgid "Failed to load resource."
-msgstr ""
+msgstr "Kunne ikke laste ressurs."
#: editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
-msgstr ""
+msgstr "Kan ikke laste MeshLibrary for sammenslåing!"
#: editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
-msgstr ""
+msgstr "Error ved lagring av MeshLibrary!"
#: editor/editor_node.cpp
msgid "Can't load TileSet for merging!"
-msgstr ""
+msgstr "Kan ikke laste TileSet for sammenslåing!"
#: editor/editor_node.cpp
msgid "Error saving TileSet!"
-msgstr ""
+msgstr "Error ved lagring av TileSet!"
#: editor/editor_node.cpp
msgid "Error trying to save layout!"
-msgstr ""
+msgstr "Error ved lagring av layout!"
#: editor/editor_node.cpp
msgid "Default editor layout overridden."
-msgstr ""
+msgstr "Standard editor layout overskrevet."
#: editor/editor_node.cpp
msgid "Layout name not found!"
-msgstr ""
+msgstr "Layoutnavn ikke funnet!"
#: editor/editor_node.cpp
msgid "Restored default layout to base settings."
-msgstr ""
+msgstr "Gjenoppretter standard layout til grunninnstillinger."
#: editor/editor_node.cpp
msgid ""
@@ -1492,18 +1530,26 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
+"Denne ressursen tilhører en scene som ble importert, så den er ikke "
+"redigerbar.\n"
+"Les dokumentasjonen om import av scener for å bedre forstå denne "
+"arbeidsflyten."
#: editor/editor_node.cpp
msgid ""
"This resource belongs to a scene that was instanced or inherited.\n"
"Changes to it will not be kept when saving the current scene."
msgstr ""
+"Denne ressursen tilhører en scene som ble instansert eller arvet.\n"
+"Endringer vil ikke bli beholdt ved lagring av scenen."
#: editor/editor_node.cpp
msgid ""
"This resource was imported, so it's not editable. Change its settings in the "
"import panel and then re-import."
msgstr ""
+"Denne ressursen ble importert, så det ikke er redigerbar. Endre "
+"innstillingene i import-panelet og importer deretter på nytt."
#: editor/editor_node.cpp
msgid ""
@@ -1512,6 +1558,10 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
+"Denne scenen er importert, så endringer vil ikke bli lagret.\n"
+"Instansere eller arving vil tillate endringer i den.\n"
+"Vennligst les dokumentasjonen når det gjelder import av scener for å bedre "
+"forstå denne arbeidsflyten."
#: editor/editor_node.cpp
msgid ""
@@ -1519,46 +1569,51 @@ msgid ""
"Please read the documentation relevant to debugging to better understand "
"this workflow."
msgstr ""
+"Dette er et eksternt objekt så endringer vil ikke beholdes.\n"
+"Vennligst les dokumentasjonen relevant til debugging for å forstå denne "
+"arbeidsflyten."
#: editor/editor_node.cpp
msgid "Expand all properties"
-msgstr ""
+msgstr "Utvid alle egenskaper"
#: editor/editor_node.cpp
msgid "Collapse all properties"
-msgstr ""
+msgstr "Kollaps alle egenskaper"
#: editor/editor_node.cpp
msgid "Copy Params"
-msgstr ""
+msgstr "Kopier Parametre"
#: editor/editor_node.cpp
msgid "Paste Params"
-msgstr ""
+msgstr "Lim inn Parametre"
#: editor/editor_node.cpp editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Paste Resource"
-msgstr ""
+msgstr "Lim inn Ressurs"
#: editor/editor_node.cpp
msgid "Copy Resource"
-msgstr ""
+msgstr "Kopier Ressurs"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Make Built-In"
-msgstr ""
+msgstr "Lag Innebygd"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Make Sub-Resources Unique"
-msgstr ""
+msgstr "Gjør Underressurs Unik"
#: editor/editor_node.cpp
msgid "Open in Help"
-msgstr ""
+msgstr "Ã…pne i Hjelp"
#: editor/editor_node.cpp
msgid "There is no defined scene to run."
-msgstr ""
+msgstr "Det er ingen definert scene å kjøre."
#: editor/editor_node.cpp
msgid ""
@@ -1566,13 +1621,20 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
+"Ingen hovedscene har blitt definert, velg en?\n"
+"Du kan endre dette senere under \"Prosjekt Innstilliner\" i kategorien "
+"'applikasjon'."
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
"Selected scene '%s' does not exist, select a valid one?\n"
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
+"Valgte scene '%s' finnes ikke, velg en gyldig en?\n"
+"Du kan endre dette senere under \"Prosjekt Innstillinger\" under kategorien "
+"'applikasjon'."
#: editor/editor_node.cpp
msgid ""
@@ -1583,15 +1645,15 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
+msgstr "Gjeldende scene ble aldri lagret, vennligst lagre før kjøring."
#: editor/editor_node.cpp
msgid "Could not start subprocess!"
-msgstr ""
+msgstr "Kunne ikke starta subprosess!"
#: editor/editor_node.cpp
msgid "Open Scene"
-msgstr ""
+msgstr "Ã…pne Scene"
#: editor/editor_node.cpp
msgid "Open Base Scene"
@@ -1599,121 +1661,124 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Quick Open Scene.."
-msgstr ""
+msgstr "Hurtigåpne Scene.."
#: editor/editor_node.cpp
msgid "Quick Open Script.."
-msgstr ""
+msgstr "Hurtigåpne Skript.."
#: editor/editor_node.cpp
msgid "Save & Close"
-msgstr ""
+msgstr "Lagre og Lukk"
#: editor/editor_node.cpp
msgid "Save changes to '%s' before closing?"
-msgstr ""
+msgstr "Lagre endringer til '%s' før lukking?"
#: editor/editor_node.cpp
msgid "Save Scene As.."
-msgstr ""
+msgstr "Lagre Scene Som.."
#: editor/editor_node.cpp
msgid "No"
-msgstr ""
+msgstr "Nei"
#: editor/editor_node.cpp
msgid "Yes"
-msgstr ""
+msgstr "Ja"
#: editor/editor_node.cpp
msgid "This scene has never been saved. Save before running?"
-msgstr ""
+msgstr "Denne scene har aldri blitt lagret. Lagre før kjøring?"
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "This operation can't be done without a scene."
-msgstr ""
+msgstr "Denne operasjonen kan ikke gjøres uten en scene."
#: editor/editor_node.cpp
msgid "Export Mesh Library"
-msgstr ""
+msgstr "Eksporter MeshBibliotek"
#: editor/editor_node.cpp
msgid "This operation can't be done without a root node."
-msgstr ""
+msgstr "Denne operasjonen kan ikke gjennomføres uten en rotnode."
#: editor/editor_node.cpp
msgid "Export Tile Set"
-msgstr ""
+msgstr "Eksporter Tile Set"
#: editor/editor_node.cpp
msgid "This operation can't be done without a selected node."
-msgstr ""
+msgstr "Denne operasjonen kan ikke gjøres uten en valgt node."
#: editor/editor_node.cpp
msgid "Current scene not saved. Open anyway?"
-msgstr ""
+msgstr "Gjeldende scene er ikke lagret. Ã…pne likevel?"
#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
-msgstr ""
+msgstr "Kan ikke laste en scene som aldri ble lagret."
#: editor/editor_node.cpp
msgid "Revert"
-msgstr ""
+msgstr "GÃ¥ tilbake"
#: editor/editor_node.cpp
msgid "This action cannot be undone. Revert anyway?"
-msgstr ""
+msgstr "Denne handlingen kan ikke angres. GÃ¥ tilbake likevel?"
#: editor/editor_node.cpp
msgid "Quick Run Scene.."
-msgstr ""
+msgstr "Hurtigkjør Scene.."
#: editor/editor_node.cpp
msgid "Quit"
-msgstr ""
+msgstr "Avslutt"
#: editor/editor_node.cpp
msgid "Exit the editor?"
-msgstr ""
+msgstr "Avslutt editoren?"
#: editor/editor_node.cpp
msgid "Open Project Manager?"
-msgstr ""
+msgstr "Ã…pne ProsjektManager?"
#: editor/editor_node.cpp
msgid "Save & Quit"
-msgstr ""
+msgstr "Lagre & Avslutt"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before quitting?"
-msgstr ""
+msgstr "Lagre endring til følgende scene(r) før avslutting?"
#: editor/editor_node.cpp
msgid "Save changes the following scene(s) before opening Project Manager?"
-msgstr ""
+msgstr "Lagre endringer til følgende scene(r) før åpning av Prosjekt-Manager?"
#: editor/editor_node.cpp
msgid ""
"This option is deprecated. Situations where refresh must be forced are now "
"considered a bug. Please report."
msgstr ""
+"Dette alternativet er foreldet. Situasjoner der oppdatering må bli tvunget "
+"regnes nå som en feil. Vennligst rapporter."
#: editor/editor_node.cpp
msgid "Pick a Main Scene"
-msgstr ""
+msgstr "Velg en HovedScene"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
-msgstr ""
+msgstr "Kan ikke aktivere addon-plugin på: '%s' parsing av konfig feilet."
#: editor/editor_node.cpp
msgid "Unable to find script field for addon plugin at: 'res://addons/%s'."
-msgstr ""
+msgstr "Kunne ikke finne skriptfelt for addon-plugin i: 'res://addons/%s'."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s'."
-msgstr ""
+msgstr "Kan ikke laste addon-skript fra bane: '%s'."
#: editor/editor_node.cpp
msgid ""
@@ -1729,194 +1794,205 @@ msgid ""
"Scene '%s' was automatically imported, so it can't be modified.\n"
"To make changes to it, a new inherited scene can be created."
msgstr ""
+"Scene '%s' var automatisk importert, så den kan ikke modifiseres.\n"
+"For å gjøre endringer i den, kan du opprette en ny arvet scene."
#: editor/editor_node.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Ugh"
-msgstr ""
+msgstr "Æsj"
#: editor/editor_node.cpp
msgid ""
"Error loading scene, it must be inside the project path. Use 'Import' to "
"open the scene, then save it inside the project path."
msgstr ""
+"Feil ved lasting av scene, den må være i prosjektbanen. Bruk \"Importer\" "
+"for å åpne scenen, så lagre den i prosjektbanen."
#: editor/editor_node.cpp
msgid "Scene '%s' has broken dependencies:"
-msgstr ""
+msgstr "Scene '%s' har ødelagte avhengigheter:"
#: editor/editor_node.cpp
msgid "Clear Recent Scenes"
-msgstr ""
+msgstr "Fjern Nylige Scener"
#: editor/editor_node.cpp
msgid "Save Layout"
-msgstr ""
+msgstr "Lagre Layout"
#: editor/editor_node.cpp
msgid "Delete Layout"
-msgstr ""
+msgstr "Slett Layout"
#: editor/editor_node.cpp editor/import_dock.cpp
#: editor/script_create_dialog.cpp
msgid "Default"
-msgstr ""
+msgstr "Standard"
#: editor/editor_node.cpp
msgid "Switch Scene Tab"
-msgstr ""
+msgstr "Bytt Scenefane"
#: editor/editor_node.cpp
msgid "%d more files or folders"
-msgstr ""
+msgstr "%d flere filer eller mapper"
#: editor/editor_node.cpp
msgid "%d more folders"
-msgstr ""
+msgstr "%d flere mapper"
#: editor/editor_node.cpp
msgid "%d more files"
-msgstr ""
+msgstr "%d flere filer"
#: editor/editor_node.cpp
msgid "Dock Position"
-msgstr ""
+msgstr "Dock-posisjon"
#: editor/editor_node.cpp
msgid "Distraction Free Mode"
-msgstr ""
+msgstr "Distraksjonsfri Modus"
#: editor/editor_node.cpp
msgid "Toggle distraction-free mode."
-msgstr ""
+msgstr "Vis/skjul distraksjonsfri modus."
#: editor/editor_node.cpp
msgid "Add a new scene."
-msgstr ""
+msgstr "Legg til ny scene."
#: editor/editor_node.cpp
msgid "Scene"
-msgstr ""
+msgstr "Scene"
#: editor/editor_node.cpp
msgid "Go to previously opened scene."
-msgstr ""
+msgstr "Gå til forrige åpne scene."
#: editor/editor_node.cpp
msgid "Next tab"
-msgstr ""
+msgstr "Neste fane"
#: editor/editor_node.cpp
msgid "Previous tab"
-msgstr ""
+msgstr "Forrige fane"
#: editor/editor_node.cpp
msgid "Filter Files.."
-msgstr ""
+msgstr "Filtrer Filer.."
#: editor/editor_node.cpp
msgid "Operations with scene files."
-msgstr ""
+msgstr "Operasjoner med scene-filer."
#: editor/editor_node.cpp
msgid "New Scene"
-msgstr ""
+msgstr "Ny Scene"
#: editor/editor_node.cpp
msgid "New Inherited Scene.."
-msgstr ""
+msgstr "Ny Arvet Scene.."
#: editor/editor_node.cpp
msgid "Open Scene.."
-msgstr ""
+msgstr "Ã…pne Scene.."
#: editor/editor_node.cpp
msgid "Save Scene"
-msgstr ""
+msgstr "Lagre Scene"
#: editor/editor_node.cpp
msgid "Save all Scenes"
-msgstr ""
+msgstr "Lagre alle Scener"
#: editor/editor_node.cpp
msgid "Close Scene"
-msgstr ""
+msgstr "Lukk Scene"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Open Recent"
-msgstr ""
+msgstr "Ã…pne Nylig"
#: editor/editor_node.cpp
msgid "Convert To.."
-msgstr ""
+msgstr "Konverter Til.."
#: editor/editor_node.cpp
msgid "MeshLibrary.."
-msgstr ""
+msgstr "MeshBibliotek.."
#: editor/editor_node.cpp
+#, fuzzy
msgid "TileSet.."
-msgstr ""
+msgstr "TileSet.."
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Undo"
-msgstr ""
+msgstr "Angre"
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp
msgid "Redo"
-msgstr ""
+msgstr "Gjenta"
#: editor/editor_node.cpp
msgid "Revert Scene"
-msgstr ""
+msgstr "Tilbakestille Scene"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Miscellaneous project or scene-wide tools."
-msgstr ""
+msgstr "Diverse prosjekt- eller scene-relaterte verktøy"
#: editor/editor_node.cpp
msgid "Project"
-msgstr ""
+msgstr "Prosjekt"
#: editor/editor_node.cpp
msgid "Project Settings"
-msgstr ""
+msgstr "Prosjektinnstillinger"
#: editor/editor_node.cpp
msgid "Run Script"
-msgstr ""
+msgstr "Kjør Skript"
#: editor/editor_node.cpp editor/project_export.cpp
msgid "Export"
-msgstr ""
+msgstr "Eksporter"
#: editor/editor_node.cpp
msgid "Tools"
-msgstr ""
+msgstr "Verktøy"
#: editor/editor_node.cpp
msgid "Quit to Project List"
-msgstr ""
+msgstr "Avslutt til Prosjektliste"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Debug"
-msgstr ""
+msgstr "Debug"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Deploy with Remote Debug"
-msgstr ""
+msgstr "Deploy med Ekstern Debug"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
"When exporting or deploying, the resulting executable will attempt to "
"connect to the IP of this computer in order to be debugged."
msgstr ""
+"Ved eksportering eller deploying, den følgende kjørbare filen vil prøve å "
+"koble til IP'en til denne datamaskinen for å bli debugget."
#: editor/editor_node.cpp
+#, fuzzy
msgid "Small Deploy with Network FS"
-msgstr ""
+msgstr "Liten Deploy med Network FS"
#: editor/editor_node.cpp
msgid ""
@@ -1929,28 +2005,33 @@ msgid ""
msgstr ""
#: editor/editor_node.cpp
+#, fuzzy
msgid "Visible Collision Shapes"
-msgstr ""
+msgstr "Synlige Kollisjons-Former"
#: editor/editor_node.cpp
msgid ""
"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
"running game if this option is turned on."
msgstr ""
+"Kollisjons-former eller raycast-noder (for 2D og 3D) vil være synlige under "
+"kjøring av spill om denne innstillingen er aktivert."
#: editor/editor_node.cpp
msgid "Visible Navigation"
-msgstr ""
+msgstr "Synlig Navigasjon"
#: editor/editor_node.cpp
msgid ""
"Navigation meshes and polygons will be visible on the running game if this "
"option is turned on."
msgstr ""
+"Navigasjons-maske og polygoner vil være synlig under kjøring av spill om "
+"denne innstillingen er aktivert."
#: editor/editor_node.cpp
msgid "Sync Scene Changes"
-msgstr ""
+msgstr "Synkroniser Sceneforandringer"
#: editor/editor_node.cpp
msgid ""
@@ -1959,18 +2040,27 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
+"NÃ¥r denne innstillingen er aktivert, alle endringer gjort til scenen i "
+"editoren vil bli replikert i det kjørende spillet.\n"
+"Når det brukes eksternt på en enhet, dette er mer effektivt med et "
+"nettverksfilsystem."
#: editor/editor_node.cpp
msgid "Sync Script Changes"
-msgstr ""
+msgstr "Synkroniser Skriptforandringer"
#: editor/editor_node.cpp
+#, fuzzy
msgid ""
"When this option is turned on, any script that is saved will be reloaded on "
"the running game.\n"
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
+"NÃ¥r denne innstillingen er aktivert, alle skript som er lagret vil lastes "
+"inn på nytt i det kjørende spillet.\n"
+"Når det brukes ekstert på en enhet, dette er mer effektivt med et "
+"nettverksfilsystem."
#: editor/editor_node.cpp
#, fuzzy
@@ -1987,23 +2077,24 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr ""
+msgstr "Skru av/på Fullskjerm"
#: editor/editor_node.cpp editor/project_export.cpp
+#, fuzzy
msgid "Manage Export Templates"
-msgstr ""
+msgstr "HÃ¥ndter Eksportmaler"
#: editor/editor_node.cpp
msgid "Help"
-msgstr ""
+msgstr "Hjelp"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Classes"
-msgstr ""
+msgstr "Klasser"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Online Docs"
-msgstr ""
+msgstr "Online Dokumentasjon"
#: editor/editor_node.cpp
msgid "Q&A"
@@ -2011,83 +2102,84 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Issue Tracker"
-msgstr ""
+msgstr "Problemtracker"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
-msgstr ""
+msgstr "Fellesskap"
#: editor/editor_node.cpp
msgid "About"
-msgstr ""
+msgstr "Om"
#: editor/editor_node.cpp
msgid "Play the project."
-msgstr ""
+msgstr "Spill prosjektet."
#: editor/editor_node.cpp
msgid "Play"
-msgstr ""
+msgstr "Spill"
#: editor/editor_node.cpp
msgid "Pause the scene"
-msgstr ""
+msgstr "Pause scenen"
#: editor/editor_node.cpp
msgid "Pause Scene"
-msgstr ""
+msgstr "Pause Scene"
#: editor/editor_node.cpp
msgid "Stop the scene."
-msgstr ""
+msgstr "Stopp scenen."
#: editor/editor_node.cpp
msgid "Stop"
-msgstr ""
+msgstr "Stopp"
#: editor/editor_node.cpp
msgid "Play the edited scene."
-msgstr ""
+msgstr "Spill den redigerte scenen."
#: editor/editor_node.cpp
msgid "Play Scene"
-msgstr ""
+msgstr "Spill Scene"
#: editor/editor_node.cpp
msgid "Play custom scene"
-msgstr ""
+msgstr "Spill tilpasset scene"
#: editor/editor_node.cpp
msgid "Play Custom Scene"
-msgstr ""
+msgstr "Spill av Tilpasset Scene"
#: editor/editor_node.cpp
+#, fuzzy
msgid "Spins when the editor window repaints!"
-msgstr ""
+msgstr "Snurrer når editorvinduet rendrer om!"
#: editor/editor_node.cpp
msgid "Update Always"
-msgstr ""
+msgstr "Oppdater Alltid"
#: editor/editor_node.cpp
msgid "Update Changes"
-msgstr ""
+msgstr "Oppdater Endringer"
#: editor/editor_node.cpp
msgid "Disable Update Spinner"
-msgstr ""
+msgstr "Deaktiver Oppdateringsspinner"
#: editor/editor_node.cpp
msgid "Inspector"
-msgstr ""
+msgstr "Inspektør"
#: editor/editor_node.cpp
msgid "Create a new resource in memory and edit it."
-msgstr ""
+msgstr "Lag en ny ressurs i minnet og endre den."
#: editor/editor_node.cpp
msgid "Load an existing resource from disk and edit it."
-msgstr ""
+msgstr "Last inn en eksisterende ressurs fra disk og rediger den."
#: editor/editor_node.cpp
msgid "Save the currently edited resource."
@@ -2095,285 +2187,303 @@ msgstr ""
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Save As.."
-msgstr ""
+msgstr "Lagre Som.."
#: editor/editor_node.cpp
msgid "Go to the previous edited object in history."
-msgstr ""
+msgstr "GÃ¥ til det forrige redigerte objektet i historikken."
#: editor/editor_node.cpp
msgid "Go to the next edited object in history."
-msgstr ""
+msgstr "GÃ¥ til det neste redigerte objektet i historikken."
#: editor/editor_node.cpp
msgid "History of recently edited objects."
-msgstr ""
+msgstr "Historikk av nylige redigerte objekter."
#: editor/editor_node.cpp
msgid "Object properties."
-msgstr ""
+msgstr "Objektegenskaper."
#: editor/editor_node.cpp
msgid "Changes may be lost!"
-msgstr ""
+msgstr "Endringer kan bli tapt!"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
#: editor/project_manager.cpp
msgid "Import"
-msgstr ""
+msgstr "Importer"
#: editor/editor_node.cpp
msgid "Node"
-msgstr ""
+msgstr "Node"
#: editor/editor_node.cpp
msgid "FileSystem"
-msgstr ""
+msgstr "FilSystem"
#: editor/editor_node.cpp
msgid "Output"
-msgstr ""
+msgstr "Output"
#: editor/editor_node.cpp
msgid "Don't Save"
-msgstr ""
+msgstr "Ikke Lagre"
#: editor/editor_node.cpp
msgid "Import Templates From ZIP File"
-msgstr ""
+msgstr "Importer Mal Fra ZIP-Fil"
#: editor/editor_node.cpp editor/project_export.cpp
msgid "Export Project"
-msgstr ""
+msgstr "Eksporter Prosjekt"
#: editor/editor_node.cpp
msgid "Export Library"
-msgstr ""
+msgstr "Eksporter Bibliotek"
#: editor/editor_node.cpp
msgid "Merge With Existing"
-msgstr ""
+msgstr "Slå sammen Med Eksisterende"
#: editor/editor_node.cpp
msgid "Password:"
-msgstr ""
+msgstr "Passord:"
#: editor/editor_node.cpp
msgid "Open & Run a Script"
-msgstr ""
+msgstr "Åpne & Kjør et Skript"
#: editor/editor_node.cpp
+#, fuzzy
msgid "New Inherited"
-msgstr ""
+msgstr "Ny Arvet"
#: editor/editor_node.cpp
msgid "Load Errors"
-msgstr ""
+msgstr "Last Errors"
#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp
msgid "Select"
-msgstr ""
+msgstr "Velg"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
-msgstr ""
+msgstr "Ã…pne 2D Editor"
#: editor/editor_node.cpp
msgid "Open 3D Editor"
-msgstr ""
+msgstr "Ã…pne 3D Editor"
#: editor/editor_node.cpp
msgid "Open Script Editor"
-msgstr ""
+msgstr "Ã…pne SkriptEditor"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
-msgstr ""
+msgstr "Ã…pne Assets-Bibliotek"
#: editor/editor_node.cpp
msgid "Open the next Editor"
-msgstr ""
+msgstr "Ã…pne den neste Editoren"
#: editor/editor_node.cpp
msgid "Open the previous Editor"
-msgstr ""
+msgstr "Ã…pne den forrige Editoren"
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
-msgstr ""
+msgstr "Lager Forhåndsvisning av Mesh"
#: editor/editor_plugin.cpp
msgid "Thumbnail.."
-msgstr ""
+msgstr "Miniatyrbilde.."
#: editor/editor_plugin_settings.cpp
msgid "Installed Plugins:"
-msgstr ""
+msgstr "Installerte Plugins:"
#: editor/editor_plugin_settings.cpp
msgid "Update"
-msgstr ""
+msgstr "Oppdater"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Version:"
-msgstr ""
+msgstr "Versjon:"
#: editor/editor_plugin_settings.cpp
msgid "Author:"
-msgstr ""
+msgstr "Forfatter:"
#: editor/editor_plugin_settings.cpp
msgid "Status:"
-msgstr ""
+msgstr "Status:"
#: editor/editor_profiler.cpp
msgid "Stop Profiling"
-msgstr ""
+msgstr "Stopp Profilering"
#: editor/editor_profiler.cpp
msgid "Start Profiling"
-msgstr ""
+msgstr "Start Profilering"
#: editor/editor_profiler.cpp
msgid "Measure:"
-msgstr ""
+msgstr "MÃ¥l:"
#: editor/editor_profiler.cpp
msgid "Frame Time (sec)"
-msgstr ""
+msgstr "Frame Tid (sek)"
#: editor/editor_profiler.cpp
msgid "Average Time (sec)"
-msgstr ""
+msgstr "Gjennomsnittstid (sek)"
#: editor/editor_profiler.cpp
+#, fuzzy
msgid "Frame %"
-msgstr ""
+msgstr "Frame %"
#: editor/editor_profiler.cpp
msgid "Physics Frame %"
-msgstr ""
+msgstr "Fysikk-Frame %"
#: editor/editor_profiler.cpp editor/script_editor_debugger.cpp
msgid "Time:"
-msgstr ""
+msgstr "Tid:"
#: editor/editor_profiler.cpp
msgid "Inclusive"
-msgstr ""
+msgstr "Inklusiv"
#: editor/editor_profiler.cpp
+#, fuzzy
msgid "Self"
-msgstr ""
+msgstr "Selv"
#: editor/editor_profiler.cpp
+#, fuzzy
msgid "Frame #:"
-msgstr ""
+msgstr "Frame #:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Tid:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Ring"
#: editor/editor_run_native.cpp
msgid "Select device from the list"
-msgstr ""
+msgstr "Velg enhet fra listen"
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the export menu."
msgstr ""
+"Ingen kjørbar eksport-preset funnet for denne plattformen.\n"
+"Vennligst legg til en kjørbar preset i eksportmenyen."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
-msgstr ""
+msgstr "Skriv logikken din i _run() metoden."
#: editor/editor_run_script.cpp
msgid "There is an edited scene already."
-msgstr ""
+msgstr "Det er en redigert scene allerede."
#: editor/editor_run_script.cpp
msgid "Couldn't instance script:"
-msgstr ""
+msgstr "Kunne ikke innstansiere skript:"
#: editor/editor_run_script.cpp
msgid "Did you forget the 'tool' keyword?"
-msgstr ""
+msgstr "Glemte du nøkkelordet 'tool'?"
#: editor/editor_run_script.cpp
msgid "Couldn't run script:"
-msgstr ""
+msgstr "Kunne ikke kjøre skript:"
#: editor/editor_run_script.cpp
msgid "Did you forget the '_run' method?"
-msgstr ""
+msgstr "Glemte du '_run'-metoden?"
#: editor/editor_settings.cpp
msgid "Default (Same as Editor)"
-msgstr ""
+msgstr "Standard (Samme som Editor)"
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
-msgstr ""
+msgstr "Velg Node(r) for Importering"
#: editor/editor_sub_scene.cpp
msgid "Scene Path:"
-msgstr ""
+msgstr "Scene-Sti:"
#: editor/editor_sub_scene.cpp
msgid "Import From Node:"
-msgstr ""
+msgstr "Importer Fra Node:"
#: editor/export_template_manager.cpp
msgid "Re-Download"
-msgstr ""
+msgstr "Last Ned PÃ¥ Nytt"
#: editor/export_template_manager.cpp
msgid "Uninstall"
-msgstr ""
+msgstr "Avinstaller"
#: editor/export_template_manager.cpp
msgid "(Installed)"
-msgstr ""
+msgstr "(Installert)"
#: editor/export_template_manager.cpp
msgid "Download"
-msgstr ""
+msgstr "Last ned"
#: editor/export_template_manager.cpp
msgid "(Missing)"
-msgstr ""
+msgstr "(Mangler)"
#: editor/export_template_manager.cpp
msgid "(Current)"
-msgstr ""
+msgstr "(Gjeldende)"
#: editor/export_template_manager.cpp
msgid "Retrieving mirrors, please wait.."
-msgstr ""
+msgstr "Henter fillager, vennligst vent.."
#: editor/export_template_manager.cpp
+#, fuzzy
msgid "Remove template version '%s'?"
-msgstr ""
+msgstr "Fjern mal versjon '%s'?"
#: editor/export_template_manager.cpp
msgid "Can't open export templates zip."
-msgstr ""
+msgstr "Kan ikke åpne eksportmalzip."
#: editor/export_template_manager.cpp
msgid "Invalid version.txt format inside templates."
-msgstr ""
+msgstr "Ugyldig version.txt format i mal."
#: editor/export_template_manager.cpp
msgid ""
"Invalid version.txt format inside templates. Revision is not a valid "
"identifier."
msgstr ""
+"Ugyldig version.txt format i mal. Revisjon er ikke en gyldig identifikator."
#: editor/export_template_manager.cpp
msgid "No version.txt found inside templates."
-msgstr ""
+msgstr "Ingen version.txt funnet i mal."
#: editor/export_template_manager.cpp
msgid "Error creating path for templates:\n"
-msgstr ""
+msgstr "Feil ved laging av sti for mal:\n"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
@@ -2381,59 +2491,64 @@ msgstr ""
#: editor/export_template_manager.cpp
msgid "Importing:"
-msgstr ""
+msgstr "Importerer:"
#: editor/export_template_manager.cpp
msgid ""
"No download links found for this version. Direct download is only available "
"for official releases."
msgstr ""
+"Ingen nedlastningslink funnet for denne versjonen. Direkte nedlastning er "
+"kun mulig for offisielle utvigelser."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
msgid "Can't resolve."
-msgstr ""
+msgstr "Kan ikke løse."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't connect."
-msgstr ""
+msgstr "Kan ikke koble til."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No response."
-msgstr ""
+msgstr "Ingen respons."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
-msgstr ""
+#, fuzzy
+msgid "Request Failed."
+msgstr "Forespørsel Feilet."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
msgid "Redirect Loop."
-msgstr ""
+msgstr "Omdirigerings-Loop."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Failed:"
-msgstr ""
+msgstr "Feilet:"
#: editor/export_template_manager.cpp
msgid "Can't write file."
-msgstr ""
+msgstr "Kan ikke skrive fil."
#: editor/export_template_manager.cpp
msgid "Download Complete."
-msgstr ""
+msgstr "Nedlastning fullført."
#: editor/export_template_manager.cpp
msgid "Error requesting url: "
-msgstr ""
+msgstr "Error ved forespørsel av url: "
#: editor/export_template_manager.cpp
msgid "Connecting to Mirror.."
-msgstr ""
+msgstr "Kobler til Fillager.."
#: editor/export_template_manager.cpp
msgid "Disconnected"
@@ -2441,20 +2556,21 @@ msgstr "Frakoblet"
#: editor/export_template_manager.cpp
msgid "Resolving"
-msgstr ""
+msgstr "Løser"
#: editor/export_template_manager.cpp
msgid "Can't Resolve"
-msgstr ""
+msgstr "Kan ikke Løses"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Connecting.."
-msgstr ""
+msgstr "Kobler til.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
-msgstr ""
+#, fuzzy
+msgid "Can't Connect"
+msgstr "Kan ikke koble til"
#: editor/export_template_manager.cpp
msgid "Connected"
@@ -2462,335 +2578,370 @@ msgstr "Tilkoblet"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
msgid "Requesting.."
-msgstr ""
+msgstr "Ber om.."
#: editor/export_template_manager.cpp
msgid "Downloading"
-msgstr ""
+msgstr "Laster ned"
#: editor/export_template_manager.cpp
msgid "Connection Error"
msgstr "Tilkoblingsfeil"
#: editor/export_template_manager.cpp
+#, fuzzy
msgid "SSL Handshake Error"
-msgstr ""
+msgstr "SSL Handshake Error"
#: editor/export_template_manager.cpp
msgid "Current Version:"
-msgstr ""
+msgstr "Gjeldende Versjon:"
#: editor/export_template_manager.cpp
msgid "Installed Versions:"
-msgstr ""
+msgstr "Installerte Versjoner:"
#: editor/export_template_manager.cpp
msgid "Install From File"
-msgstr ""
+msgstr "Installer Fra Fil"
#: editor/export_template_manager.cpp
msgid "Remove Template"
-msgstr ""
+msgstr "Fjern Mal"
#: editor/export_template_manager.cpp
msgid "Select template file"
-msgstr ""
+msgstr "Velg malfil"
#: editor/export_template_manager.cpp
+#, fuzzy
msgid "Export Template Manager"
-msgstr ""
+msgstr "Eksporter Mal-Manager"
#: editor/export_template_manager.cpp
msgid "Download Templates"
-msgstr ""
+msgstr "Last ned Mal"
#: editor/export_template_manager.cpp
msgid "Select mirror from list: "
-msgstr ""
+msgstr "Velg fillager fra liste: "
#: editor/file_type_cache.cpp
msgid "Can't open file_type_cache.cch for writing, not saving file type cache!"
msgstr ""
+"Kan ikke åpne fyle_type_cache.cch for skriving, lagrer ikke file type cache!"
#: editor/filesystem_dock.cpp
msgid "Cannot navigate to '%s' as it has not been found in the file system!"
-msgstr ""
+msgstr "Kan ikke navigere til '%s' for den ble ikke funnet på filsystemet!"
#: editor/filesystem_dock.cpp
msgid "View items as a grid of thumbnails"
-msgstr ""
+msgstr "Vis elementer som et rutenett av miniatyrbilder"
#: editor/filesystem_dock.cpp
msgid "View items as a list"
-msgstr ""
+msgstr "Vis elementer som liste"
#: editor/filesystem_dock.cpp
msgid ""
"\n"
"Status: Import of file failed. Please fix file and reimport manually."
msgstr ""
+"\n"
+"Status: Import av fil feilet. Vennligst reparer filen eller reimporter "
+"manuelt."
#: editor/filesystem_dock.cpp
+#, fuzzy
msgid "Cannot move/rename resources root."
-msgstr ""
+msgstr "Kan ikke flytte/endre navn ressursrot"
#: editor/filesystem_dock.cpp
msgid "Cannot move a folder into itself.\n"
-msgstr ""
+msgstr "Kan ikke flytte mappe inn i seg selv.\n"
#: editor/filesystem_dock.cpp
msgid "Error moving:\n"
-msgstr ""
+msgstr "Error ved flytting:\n"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Feil ved innlasting:"
#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
-msgstr ""
+msgstr "Kan ikke oppdatere av avhengigheter:\n"
#: editor/filesystem_dock.cpp
msgid "No name provided"
-msgstr ""
+msgstr "Ingen navn gitt"
#: editor/filesystem_dock.cpp
msgid "Provided name contains invalid characters"
-msgstr ""
+msgstr "Gitt navn inneholder ugyldige tegn"
#: editor/filesystem_dock.cpp
msgid "No name provided."
-msgstr ""
+msgstr "Ingen navn gitt."
#: editor/filesystem_dock.cpp
msgid "Name contains invalid characters."
-msgstr ""
+msgstr "Navn inneholder ugyldige tegn."
#: editor/filesystem_dock.cpp
msgid "A file or folder with this name already exists."
-msgstr ""
+msgstr "En fil eller mappe med dette navnet eksisterer allerede."
#: editor/filesystem_dock.cpp
msgid "Renaming file:"
-msgstr ""
+msgstr "Endrer filnavn:"
#: editor/filesystem_dock.cpp
msgid "Renaming folder:"
-msgstr ""
+msgstr "Ender mappenavn:"
#: editor/filesystem_dock.cpp
-msgid "Expand all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Duplisér"
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Ender mappenavn:"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr ""
+msgid "Expand all"
+msgstr "Utvid alle"
#: editor/filesystem_dock.cpp
-msgid "Rename.."
-msgstr ""
+msgid "Collapse all"
+msgstr "Kollaps alle"
#: editor/filesystem_dock.cpp
-msgid "Move To.."
-msgstr ""
+msgid "Rename.."
+msgstr "Endre Navn.."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr ""
+msgid "Move To.."
+msgstr "Flytt Til.."
#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr ""
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Ã…pne Scene"
#: editor/filesystem_dock.cpp
msgid "Instance"
-msgstr ""
+msgstr "Instans"
#: editor/filesystem_dock.cpp
msgid "Edit Dependencies.."
-msgstr ""
+msgstr "Endre Avhengigheter.."
#: editor/filesystem_dock.cpp
msgid "View Owners.."
-msgstr ""
+msgstr "Vis Eiere.."
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Duplisér"
#: editor/filesystem_dock.cpp
msgid "Previous Directory"
-msgstr ""
+msgstr "Forrige Katalog"
#: editor/filesystem_dock.cpp
msgid "Next Directory"
-msgstr ""
+msgstr "Neste Katalog"
#: editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
-msgstr ""
+msgstr "Re-Skann Filsystem"
#: editor/filesystem_dock.cpp
msgid "Toggle folder status as Favorite"
-msgstr ""
+msgstr "Vis/skjul mappestatus som Favoritt"
#: editor/filesystem_dock.cpp
+#, fuzzy
msgid "Instance the selected scene(s) as child of the selected node."
-msgstr ""
+msgstr "Instanser den valgte scene(r) som barn av den valgte noden."
#: editor/filesystem_dock.cpp
msgid ""
"Scanning Files,\n"
"Please Wait.."
msgstr ""
+"Skanner Filer,\n"
+"Vennligst Vent.."
#: editor/filesystem_dock.cpp
msgid "Move"
-msgstr ""
+msgstr "Flytt"
#: editor/filesystem_dock.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/project_manager.cpp
msgid "Rename"
-msgstr ""
+msgstr "Endre navn"
#: editor/groups_editor.cpp
msgid "Add to Group"
-msgstr ""
+msgstr "Legg til i Gruppe"
#: editor/groups_editor.cpp
msgid "Remove from Group"
-msgstr ""
+msgstr "Fjern fra Gruppe"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Single Scene"
-msgstr ""
+msgstr "Importer som Enkel Scene"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Animations"
-msgstr ""
+msgstr "Importer med Separerte Animasjoner"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials"
-msgstr ""
+msgstr "Importer med Separerte Materialer"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects"
-msgstr ""
+msgstr "Importer med Separerte Objekter"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials"
-msgstr ""
+msgstr "Importer med Separerte Objekter+Materialer"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Animations"
-msgstr ""
+msgstr "Importer med Separerte Objekter+Animasjoner"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials+Animations"
-msgstr ""
+msgstr "Importer med Separerte Materialer+Animasjoner"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials+Animations"
-msgstr ""
+msgstr "Importer med Separerte Objekter+Materialer+Animasjoner"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes"
-msgstr ""
+msgstr "Importer som Flere Scener"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes+Materials"
-msgstr ""
+msgstr "Importer som Flere Scener+Materialer"
#: editor/import/resource_importer_scene.cpp
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Import Scene"
-msgstr ""
+msgstr "Importer Scene"
#: editor/import/resource_importer_scene.cpp
msgid "Importing Scene.."
+msgstr "Importerer Scene.."
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
msgstr ""
#: editor/import/resource_importer_scene.cpp
-msgid "Running Custom Script.."
+msgid "Generating for Mesh: "
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Running Custom Script.."
+msgstr "Kjører Tilpasser Skript.."
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
msgid "Couldn't load post-import script:"
-msgstr ""
+msgstr "Kunne ikke laste post-importert skript:"
#: editor/import/resource_importer_scene.cpp
msgid "Invalid/broken script for post-import (check console):"
-msgstr ""
+msgstr "Ugyldig/ødelagt skript for post-import (sjekk konsoll):"
#: editor/import/resource_importer_scene.cpp
msgid "Error running post-import script:"
-msgstr ""
+msgstr "Error ved kjøring av post-import script:"
#: editor/import/resource_importer_scene.cpp
msgid "Saving.."
-msgstr ""
+msgstr "Lagrer.."
#: editor/import_dock.cpp
msgid "Set as Default for '%s'"
-msgstr ""
+msgstr "Sett som Standard for '%s'"
#: editor/import_dock.cpp
msgid "Clear Default for '%s'"
-msgstr ""
+msgstr "Fjern Standard for '%s'"
#: editor/import_dock.cpp
msgid " Files"
-msgstr ""
+msgstr " Filer"
#: editor/import_dock.cpp
msgid "Import As:"
-msgstr ""
+msgstr "Importer Som:"
#: editor/import_dock.cpp editor/property_editor.cpp
+#, fuzzy
msgid "Preset.."
-msgstr ""
+msgstr "Preset.."
#: editor/import_dock.cpp
msgid "Reimport"
-msgstr ""
+msgstr "Reimporter"
#: editor/multi_node_edit.cpp
+#, fuzzy
msgid "MultiNode Set"
-msgstr ""
+msgstr "MultiNode Set"
#: editor/node_dock.cpp
msgid "Groups"
-msgstr ""
+msgstr "Grupper"
#: editor/node_dock.cpp
msgid "Select a Node to edit Signals and Groups."
-msgstr ""
+msgstr "Velg en Node for å endre Signaler og Grupper."
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create Poly"
-msgstr ""
+msgstr "Lag Poly"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/collision_polygon_editor_plugin.cpp
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Edit Poly"
-msgstr ""
+msgstr "Rediger Poly"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Insert Point"
-msgstr ""
+msgstr "Sett inn Punkt"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/collision_polygon_editor_plugin.cpp
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Edit Poly (Remove Point)"
-msgstr ""
+msgstr "Rediger Poly (Fjern Punkt)"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Remove Poly And Point"
-msgstr ""
+msgstr "Fjern Poly Og Punkt"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Create a new polygon from scratch"
-msgstr ""
+msgstr "Lag en ny polygon fra bunnen"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid ""
@@ -2799,238 +2950,246 @@ msgid ""
"Ctrl+LMB: Split Segment.\n"
"RMB: Erase Point."
msgstr ""
+"Endre eksisterende polygon:\n"
+"Venstreklikk: Flytt Punkt.\n"
+"Ctrl+Venstreklikk: Splitt Segment.\n"
+"Høyreklikk: Fjern Punkt."
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Delete points"
msgstr "Slett punkter"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Toggle Autoplay"
-msgstr ""
+msgstr "Slå av/på Autoavspilling"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Animation Name:"
-msgstr ""
+msgstr "Nytt Animasjonsnavn:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Anim"
-msgstr ""
+msgstr "Ny Anim"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Animation Name:"
-msgstr ""
+msgstr "Endre Animasjonsnavn:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Delete Animation?"
-msgstr ""
+msgstr "Fjern Animasjon?"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Remove Animation"
-msgstr ""
+msgstr "Fjern Animasjon"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: Invalid animation name!"
-msgstr ""
+msgstr "ERROR: Ugyldig animasjonsnavn!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: Animation name already exists!"
-msgstr ""
+msgstr "ERROR: Animasjonsnavnet finnes allerede!"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Rename Animation"
-msgstr ""
+msgstr "Endre navn på Animasjon"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Animation"
-msgstr ""
+msgstr "Legg til Animasjon"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Blend Next Changed"
-msgstr ""
+msgstr "Blend Neste Endret"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Blend Time"
-msgstr ""
+msgstr "Endre Blend-Tid"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load Animation"
-msgstr ""
+msgstr "Last Animasjon"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Duplicate Animation"
-msgstr ""
+msgstr "Dupliser Animasjon"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation to copy!"
-msgstr ""
+msgstr "ERROR: Ingen animasjon å kopiere!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation resource on clipboard!"
-msgstr ""
+msgstr "ERROR: Ingen animasjonsressurs på utklippstavlen!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
-msgstr ""
+msgstr "Limt inn Animasjon"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Paste Animation"
-msgstr ""
+msgstr "Lim inn Animasjon"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation to edit!"
-msgstr ""
+msgstr "ERROR: Ingen animasjon å endre!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
-msgstr ""
+msgstr "Spill av valgte animasjon baklengs fra gjeldende posisjon. (A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from end. (Shift+A)"
-msgstr ""
+msgstr "Spill av valgte animasjon baklengs fra slutten. (Shift+A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Stop animation playback. (S)"
-msgstr ""
+msgstr "Stopp avspilling av animasjon. (S)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from start. (Shift+D)"
-msgstr ""
+msgstr "Spill av valgte animasjon fra start. (Shift+D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from current pos. (D)"
-msgstr ""
+msgstr "Spill av valgte animasjon fra gjeldende posisjon. (D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation position (in seconds)."
-msgstr ""
+msgstr "Animasjonsposisjon (i sekunder)."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Scale animation playback globally for the node."
-msgstr ""
+msgstr "Skaler animasjonsavspilling globalt for noden."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create new animation in player."
-msgstr ""
+msgstr "Lag ny animasjon i avspiller."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load animation from disk."
-msgstr ""
+msgstr "Last animasjon fra disk."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load an animation from disk."
-msgstr ""
+msgstr "Last en animasjon fra disk."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Save the current animation"
-msgstr ""
+msgstr "Lagre den gjeldene animasjonen"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Display list of animations in player."
-msgstr ""
+msgstr "Vis liste av animasjoner i avspiller."
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Autoplay on Load"
-msgstr ""
+msgstr "Autoavspill ved Lasting"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Edit Target Blend Times"
-msgstr ""
+msgstr "Endre Blend-Tid-MÃ¥l"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Tools"
-msgstr ""
+msgstr "Animasjonsverktøy"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Copy Animation"
-msgstr ""
+msgstr "Kopier Animasjon"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "Løk-lag"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Aktiver Løk-Lag"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "Beskrivelse:"
+msgstr "Retninger"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Past"
-msgstr ""
+msgstr "Fortid"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Future"
-msgstr ""
+msgstr "Framtid"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Dybde"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 steg"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 steg"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 steg"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Kun Forskjeller"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
-msgstr ""
+msgstr "Tving Hvit-Modulat"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "Inkluder Gizmoer (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
-msgstr ""
+msgstr "Lag Ny Animasjon"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Name:"
-msgstr ""
+msgstr "Animasjonsnavn:"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
#: editor/script_create_dialog.cpp
msgid "Error!"
-msgstr ""
+msgstr "Error!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Times:"
-msgstr ""
+msgstr "Blend-Tid:"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Next (Auto Queue):"
-msgstr ""
+msgstr "Neste (Automatisk Kø):"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Cross-Animation Blend Times"
-msgstr ""
+msgstr "Kryss-Animasjon Blend-Tid"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
-msgstr ""
+msgstr "Animasjon"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "New name:"
-msgstr ""
+msgstr "Nytt navn:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Edit Filters"
@@ -3039,52 +3198,54 @@ msgstr "Rediger Filtre"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Scale:"
-msgstr ""
+msgstr "Skala:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Fade In (s):"
-msgstr ""
+msgstr "Fade Inn (s):"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Fade Out (s):"
-msgstr ""
+msgstr "Fade Ut (s):"
#: editor/plugins/animation_tree_editor_plugin.cpp
+#, fuzzy
msgid "Blend"
-msgstr ""
+msgstr "Blend"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix"
-msgstr ""
+msgstr "Bland"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Auto Restart:"
-msgstr ""
+msgstr "Start Om Igjen Automatisk:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Restart (s):"
-msgstr ""
+msgstr "Omstart (s):"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Random Restart (s):"
-msgstr ""
+msgstr "Tilfeldig Omstart (s):"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Start!"
-msgstr ""
+msgstr "Start!"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Amount:"
-msgstr ""
+msgstr "Mengde:"
#: editor/plugins/animation_tree_editor_plugin.cpp
+#, fuzzy
msgid "Blend:"
-msgstr ""
+msgstr "Blend:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend 0:"
-msgstr ""
+msgstr "Blend 0:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend 1:"
@@ -3092,39 +3253,41 @@ msgstr ""
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "X-Fade Time (s):"
-msgstr ""
+msgstr "X-Fade Tid (s):"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Current:"
-msgstr ""
+msgstr "Gjeldende:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Add Input"
-msgstr ""
+msgstr "Legg til Input"
#: editor/plugins/animation_tree_editor_plugin.cpp
+#, fuzzy
msgid "Clear Auto-Advance"
-msgstr ""
+msgstr "Fjern Auto-Avansering"
#: editor/plugins/animation_tree_editor_plugin.cpp
+#, fuzzy
msgid "Set Auto-Advance"
-msgstr ""
+msgstr "Sett Auto-Avansering"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Delete Input"
-msgstr ""
+msgstr "Slett Input"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation tree is valid."
-msgstr ""
+msgstr "Animasjonstre er gyldig."
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation tree is invalid."
-msgstr ""
+msgstr "Animasjonstre er ugyldig."
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation Node"
-msgstr ""
+msgstr "Animasjonsnode"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "OneShot Node"
@@ -3132,47 +3295,50 @@ msgstr ""
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix Node"
-msgstr ""
+msgstr "Miks-Node"
#: editor/plugins/animation_tree_editor_plugin.cpp
+#, fuzzy
msgid "Blend2 Node"
-msgstr ""
+msgstr "Blend2 Node"
#: editor/plugins/animation_tree_editor_plugin.cpp
+#, fuzzy
msgid "Blend3 Node"
-msgstr ""
+msgstr "Blend3 Node"
#: editor/plugins/animation_tree_editor_plugin.cpp
+#, fuzzy
msgid "Blend4 Node"
-msgstr ""
+msgstr "Blend4 Node"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "TimeScale Node"
-msgstr ""
+msgstr "TidSkala Node"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "TimeSeek Node"
-msgstr ""
+msgstr "TidSøk Node"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Transition Node"
-msgstr ""
+msgstr "Overgang Node"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Import Animations.."
-msgstr ""
+msgstr "Importer Animasjoner.."
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Edit Node Filters"
-msgstr ""
+msgstr "Rediger Node-Filtre"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Filters.."
-msgstr ""
+msgstr "Filtre.."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Free"
-msgstr ""
+msgstr "Frigjør"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Contents:"
@@ -3180,191 +3346,217 @@ msgstr "Innhold:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "View Files"
-msgstr ""
+msgstr "Vis Filer"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve hostname:"
-msgstr ""
+msgstr "Kan ikke løse tjenernavn:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Connection error, please try again."
-msgstr ""
+msgstr "Tilkoblingsfeil, vennligst prøv igjen."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't connect to host:"
-msgstr ""
+msgstr "Kan ikke koble til tjener:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No response from host:"
-msgstr ""
+msgstr "Ingen respons fra tjener:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, return code:"
-msgstr ""
+msgstr "Forespørsel feilet, returneringskode:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, too many redirects"
-msgstr ""
+msgstr "Forespørsel feilet, for mange omdirigeringer"
#: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
msgid "Bad download hash, assuming file has been tampered with."
-msgstr ""
+msgstr "DÃ¥rlig nedlastningshash, antar at filen har blitt tuklet med."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Expected:"
-msgstr ""
+msgstr "Forventet:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Got:"
-msgstr ""
+msgstr "Fikk:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Failed sha256 hash check"
-msgstr ""
+msgstr "Feilet sha256 hash-sjekk"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Asset Download Error:"
-msgstr ""
+msgstr "Asset Nedlasting Error:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Fetching:"
-msgstr ""
+msgstr "Henter:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Resolving.."
-msgstr ""
+msgstr "Løser.."
#: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
msgid "Error making request"
-msgstr ""
+msgstr "Feil ved forespørsel"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Idle"
-msgstr ""
+msgstr "Inaktiv"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Retry"
-msgstr ""
+msgstr "Prøv på nytt"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download Error"
-msgstr ""
+msgstr "Nedlastningserror"
#: editor/plugins/asset_library_editor_plugin.cpp
+#, fuzzy
msgid "Download for this asset is already in progress!"
-msgstr ""
+msgstr "Nedlastning for denne asset'en er allerede i gang!"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "first"
-msgstr ""
+msgstr "første"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "prev"
-msgstr ""
+msgstr "forrige"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "next"
-msgstr ""
+msgstr "neste"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "last"
-msgstr ""
+msgstr "siste"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
-msgstr ""
+msgstr "Alle"
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/project_settings_editor.cpp
+#, fuzzy
msgid "Plugins"
-msgstr ""
+msgstr "Plugins"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Sort:"
-msgstr ""
+msgstr "Sorter:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Reverse"
-msgstr ""
+msgstr "Reverser"
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/project_settings_editor.cpp
msgid "Category:"
-msgstr ""
+msgstr "Kategori:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Site:"
-msgstr ""
+msgstr "Side:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Support.."
-msgstr ""
+msgstr "Support.."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Official"
-msgstr ""
+msgstr "Offisiell"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Testing"
-msgstr ""
+msgstr "Tester"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
+msgstr "Assets ZIP-Fil"
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
-msgstr ""
+msgstr "Forhåndsvis"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Configure Snap"
-msgstr ""
+msgstr "Konfigurer Snap"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Offset:"
-msgstr ""
+msgstr "Rutenett Offset:"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Step:"
-msgstr ""
+msgstr "Rutenett Steg:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Offset:"
-msgstr ""
+msgstr "Rotasjon Offset:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Step:"
-msgstr ""
+msgstr "Rotasjon Steg:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Pivot"
-msgstr ""
+msgstr "Flytt Pivot"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Action"
-msgstr ""
+msgstr "Flytt Handling"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move vertical guide"
-msgstr ""
+msgstr "Flytt vertikal veileder"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create new vertical guide"
-msgstr ""
+msgstr "Lag ny vertikal veileder"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Remove vertical guide"
-msgstr ""
+msgstr "Fjern vertikal veileder"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move horizontal guide"
-msgstr ""
+msgstr "Flytt horisontal veileder"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create new horizontal guide"
-msgstr ""
+msgstr "Lag ny horisontal veileder"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Remove horizontal guide"
@@ -3372,211 +3564,217 @@ msgstr "Fjern horisontal veileder"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create new horizontal and vertical guides"
-msgstr ""
+msgstr "Lag ny horisontal og vertikal veileder"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Edit IK Chain"
-msgstr ""
+msgstr "Endre IK Kjede"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Edit CanvasItem"
-msgstr ""
+msgstr "Endre CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Anchors only"
-msgstr ""
+msgstr "Kun anker"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change Anchors and Margins"
-msgstr ""
+msgstr "Endre Anker og Marginer"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change Anchors"
-msgstr ""
+msgstr "Endre Anker"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Paste Pose"
-msgstr ""
+msgstr "Lim Inn Pose"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Select Mode"
-msgstr ""
+msgstr "Velg Modus"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Drag: Rotate"
-msgstr ""
+msgstr "Dra: Roter"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+Drag: Move"
-msgstr ""
+msgstr "Alt+Dra: Flytt"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)."
msgstr ""
+"Trykk 'v' for å Endre Pivot, 'Shift+v' for å Dra Privot (under flytting)."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+RMB: Depth list selection"
-msgstr ""
+msgstr "Alt+Høyreklikk: Dybdelisteutvalg"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Mode"
-msgstr ""
+msgstr "Flytt Modus"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotate Mode"
-msgstr ""
+msgstr "Roter Modus"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
msgid ""
"Show a list of all objects at the position clicked\n"
"(same as Alt+RMB in select mode)."
msgstr ""
+"Vis en liste av elementer på posisjonen du klikker\n"
+"(samme som Alt+Høyreklikk i velg-modus)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Click to change object's rotation pivot."
-msgstr ""
+msgstr "Klikk for å endre objektets rotasjonspivot."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Pan Mode"
-msgstr ""
+msgstr "Panorerings-Modus"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggles snapping"
-msgstr ""
+msgstr "Slå av/på snapping"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
-msgstr ""
+msgstr "Bruk Snap"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snapping options"
-msgstr ""
+msgstr "Snapping innstillinger"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to grid"
-msgstr ""
+msgstr "Snap til rutenett"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Rotation Snap"
-msgstr ""
+msgstr "Bruk Rotasjons-Snap"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Configure Snap..."
-msgstr ""
+msgstr "Konfigurer Snap..."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap Relative"
-msgstr ""
+msgstr "Snap Relativt"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Pixel Snap"
-msgstr ""
+msgstr "Bruk Piksel Snap"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Smart snapping"
-msgstr ""
+msgstr "Smart snapping"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to parent"
-msgstr ""
+msgstr "Snap til foreldre"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to node anchor"
-msgstr ""
+msgstr "Snap til nodeanker"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to node sides"
-msgstr ""
+msgstr "Snap til nodesider"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to other nodes"
-msgstr ""
+msgstr "Snap til andre noder"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to guides"
-msgstr ""
+msgstr "Snap til veiledere"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Lock the selected object in place (can't be moved)."
-msgstr ""
+msgstr "LÃ¥s fast det valgte objektet (kan ikke flyttes)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
-msgstr ""
+msgstr "LÃ¥s opp det valgte objektet (kan flyttes)."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
-msgstr ""
+msgstr "Vær sikker at objektets barn ikke er valgbar."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
-msgstr ""
+msgstr "Gjenopprett objektets barn sin mulighet for å bli valgt."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make Bones"
-msgstr ""
+msgstr "Lag Ben"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Bones"
-msgstr ""
+msgstr "Fjern Ben"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Bones"
-msgstr ""
+msgstr "Vis Ben"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
-msgstr ""
+msgstr "Lag IK Kjede"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear IK Chain"
-msgstr ""
+msgstr "Fjern IK Kjede"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View"
-msgstr ""
+msgstr "Vis"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Show Grid"
-msgstr ""
+msgstr "Vis Rutenett"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show helpers"
-msgstr ""
+msgstr "Vis hjelpere"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show rulers"
-msgstr ""
+msgstr "Vis linjaler"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show guides"
-msgstr ""
+msgstr "Vis veiledere"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Center Selection"
-msgstr ""
+msgstr "Plasser Utvalg I Midten"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Frame Selection"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Layout"
-msgstr ""
+msgstr "Layout"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Keys"
-msgstr ""
+msgstr "Sett inn Nøkler"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr ""
+msgstr "Sett inn Nøkkel"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
@@ -3584,130 +3782,123 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Copy Pose"
-msgstr ""
+msgstr "Kopier Pose"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Pose"
-msgstr ""
+msgstr "Fjern Pose"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Drag pivot from mouse position"
-msgstr ""
+msgstr "Dra pivot fra musposisjon"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Set pivot at mouse position"
-msgstr "Fjern Funksjon"
+msgstr "Sett pivot på musposisjon"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
-msgstr ""
+msgstr "Multipliser rutenett-steg med 2"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Divide grid step by 2"
-msgstr ""
+msgstr "Del rutenett-steg med 2"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
-msgstr ""
+msgstr "Legg til %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Adding %s..."
-msgstr ""
+msgstr "Legger til %s.."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Create Node"
-msgstr ""
+msgstr "Lag Node"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Error instancing scene from %s"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
+msgstr "Error ved instansiering av scene fra %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
-msgstr ""
+msgstr "Denne operasjonen krever én valgt node."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change default type"
-msgstr ""
+msgstr "Endre standard type"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Drag & drop + Shift : Add node as sibling\n"
"Drag & drop + Alt : Change node type"
msgstr ""
+"Dra & Slipp + Shift: Legg til node som søsken\n"
+"Dra & Slipp + Alft: Endre nodetype"
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Create Poly3D"
-msgstr ""
+msgstr "Lag Poly3D"
#: editor/plugins/collision_shape_2d_editor_plugin.cpp
+#, fuzzy
msgid "Set Handle"
-msgstr ""
+msgstr "Sett Handle"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Remove item %d?"
-msgstr ""
+msgstr "Fjern element %d?"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Add Item"
-msgstr ""
+msgstr "Legg til Element"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Remove Selected Item"
-msgstr ""
+msgstr "Fjern Valgte Element"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Import from Scene"
-msgstr ""
+msgstr "Importer fra Scene"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Update from Scene"
-msgstr ""
+msgstr "Oppdater fra Scene"
#: editor/plugins/curve_editor_plugin.cpp
+#, fuzzy
msgid "Flat0"
-msgstr ""
+msgstr "Flat0"
#: editor/plugins/curve_editor_plugin.cpp
+#, fuzzy
msgid "Flat1"
-msgstr ""
+msgstr "Flat1"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Ease in"
-msgstr "Fjern Utvalg"
+msgstr "Gli inn"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Ease out"
-msgstr ""
+msgstr "Gli ut"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Smoothstep"
-msgstr ""
+msgstr "Smooth-steg"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Modify Curve Point"
-msgstr ""
+msgstr "Modifiser Kurvepunkt"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Modify Curve Tangent"
-msgstr ""
+msgstr "Modifiser Kurvetangent"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Load Curve Preset"
@@ -3715,29 +3906,27 @@ msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
msgid "Add point"
-msgstr ""
+msgstr "Legg til punkt"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Remove point"
-msgstr "Fjern Funksjon"
+msgstr "Fjern punkt"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Left linear"
-msgstr ""
+msgstr "Venstrelineær"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Right linear"
-msgstr ""
+msgstr "Høyrelineær"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Load preset"
msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Remove Curve Point"
-msgstr "Fjern Funksjon"
+msgstr "Fjern Kurvepunkt"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Toggle Curve Linear Tangent"
@@ -3745,28 +3934,28 @@ msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
msgid "Hold Shift to edit tangents individually"
-msgstr ""
+msgstr "Hold Shift for å endre tangenter individuelt"
#: editor/plugins/gi_probe_editor_plugin.cpp
msgid "Bake GI Probe"
-msgstr ""
+msgstr "Bak GI Probe"
#: editor/plugins/gradient_editor_plugin.cpp
msgid "Add/Remove Color Ramp Point"
-msgstr ""
+msgstr "Legg til/Fjern Farge-Rampe-Punkt"
#: editor/plugins/gradient_editor_plugin.cpp
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Modify Color Ramp"
-msgstr ""
+msgstr "Modifiser Farge-Rampe"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
-msgstr ""
+msgstr "Element %d"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Items"
-msgstr ""
+msgstr "Elementer"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item List Editor"
@@ -3784,23 +3973,23 @@ msgstr ""
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create a new polygon from scratch."
-msgstr ""
+msgstr "Lag en ny polygon fra bunnen."
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Edit existing polygon:"
-msgstr ""
+msgstr "Rediger eksisterende polygon:"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "LMB: Move Point."
-msgstr ""
+msgstr "Venstreklikk: Flytt Punkt."
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Ctrl+LMB: Split Segment."
-msgstr ""
+msgstr "Ctrl+Venstreklikk: Splitt Segment."
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "RMB: Erase Point."
-msgstr ""
+msgstr "Høyreklikk: Slett Punkt."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh is empty!"
@@ -3816,7 +4005,7 @@ msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "This doesn't work on scene root!"
-msgstr ""
+msgstr "Dette virker ikke på sceneroten!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Shape"
@@ -3831,6 +4020,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3840,11 +4045,11 @@ msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
-msgstr ""
+msgstr "Kunne ikke lage omriss!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline"
-msgstr ""
+msgstr "Lag Omriss"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh"
@@ -3871,6 +4076,20 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Vis"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Vis"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -3948,15 +4167,15 @@ msgstr ""
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "X-Axis"
-msgstr ""
+msgstr "X-Akse"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Y-Axis"
-msgstr ""
+msgstr "Y-Akse"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Z-Axis"
-msgstr ""
+msgstr "Z-Akse"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh Up Axis:"
@@ -3964,15 +4183,15 @@ msgstr ""
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Rotation:"
-msgstr ""
+msgstr "Tilfeldig Rotasjon:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Tilt:"
-msgstr ""
+msgstr "Tilfeldig Tilt:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Scale:"
-msgstr ""
+msgstr "Tilfeldig Skala:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate"
@@ -4016,11 +4235,11 @@ msgstr ""
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Partitioning..."
-msgstr ""
+msgstr "Partisjonerer..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Creating contours..."
-msgstr ""
+msgstr "Lager konturer..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
@@ -4040,17 +4259,13 @@ msgstr ""
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Done!"
-msgstr ""
+msgstr "Ferdig!"
#: editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4065,24 +4280,24 @@ msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "No pixels with transparency > 128 in image.."
-msgstr ""
+msgstr "Ingen piksler med gjennomsiktighet > 128 i bilde.."
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
-msgstr ""
+msgstr "Partikler"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generated Point Count:"
@@ -4138,10 +4353,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4159,7 +4370,7 @@ msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
msgid "Volume"
-msgstr ""
+msgstr "Volum"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Emission Source: "
@@ -4184,11 +4395,11 @@ msgstr ""
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Add Point to Curve"
-msgstr ""
+msgstr "Legg til Punkt på Kurve"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Point in Curve"
-msgstr ""
+msgstr "Flytt Punkt på Kurve"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move In-Control in Curve"
@@ -4201,50 +4412,50 @@ msgstr ""
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Select Points"
-msgstr ""
+msgstr "Velg Punkter"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Shift+Drag: Select Control Points"
-msgstr ""
+msgstr "Shift+Dra: Velg Kontrollpunkter"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Click: Add Point"
-msgstr ""
+msgstr "Klikk: Legg til Punkt"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Right Click: Delete Point"
-msgstr ""
+msgstr "Høyreklikk: Fjern Punkt"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Select Control Points (Shift+Drag)"
-msgstr ""
+msgstr "Velg Kontrollpunkter (Shift+Dra)"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Add Point (in empty space)"
-msgstr ""
+msgstr "Legg til Punkt (i tomt rom)"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Split Segment (in curve)"
-msgstr ""
+msgstr "Split Segment (i kurve)"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Delete Point"
-msgstr ""
+msgstr "Fjern Punkt"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Close Curve"
-msgstr ""
+msgstr "Lukk Kurve"
#: editor/plugins/path_editor_plugin.cpp
msgid "Curve Point #"
-msgstr ""
+msgstr "Kurvepunkt #"
#: editor/plugins/path_editor_plugin.cpp
#, fuzzy
@@ -4292,31 +4503,31 @@ msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Move Point"
-msgstr ""
+msgstr "Flytt Punkt"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Ctrl: Rotate"
-msgstr ""
+msgstr "Ctrl: Roter"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
-msgstr ""
+msgstr "Shift: Flytt Alle"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
-msgstr ""
+msgstr "Shift+Ctrl: Skaler"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Move Polygon"
-msgstr ""
+msgstr "Flytt Polygon"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Rotate Polygon"
-msgstr ""
+msgstr "Roter Polygon"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Scale Polygon"
-msgstr ""
+msgstr "Skaler Polygon"
#: editor/plugins/polygon_2d_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
@@ -4336,7 +4547,7 @@ msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
-msgstr ""
+msgstr "Fjern UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -4349,24 +4560,24 @@ msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid"
-msgstr ""
+msgstr "Rutenett"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "ERROR: Couldn't load resource!"
-msgstr ""
+msgstr "ERROR: Kunne ikke laste ressurs!"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Add Resource"
-msgstr ""
+msgstr "Legg til Ressurs"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Rename Resource"
-msgstr ""
+msgstr "Gi nytt navn til Ressurs"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Delete Resource"
-msgstr ""
+msgstr "Fjern Ressurs"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Resource clipboard is empty!"
@@ -4382,59 +4593,63 @@ msgstr ""
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Paste"
-msgstr ""
+msgstr "Lim inn"
#: editor/plugins/script_editor_plugin.cpp
msgid "Clear Recent Files"
-msgstr ""
+msgstr "Fjern Nylige Filer"
#: editor/plugins/script_editor_plugin.cpp
msgid ""
"Close and save changes?\n"
"\""
msgstr ""
+"Lukk og lagre endringer?\n"
+"\""
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme"
-msgstr ""
+msgstr "Error ved lasting av tema"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error saving"
-msgstr ""
+msgstr "Error ved lagring"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error importing theme"
-msgstr ""
+msgstr "Error ved importering av tema"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error importing"
-msgstr ""
+msgstr "Error ved importering"
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme"
-msgstr ""
+msgstr "Importer Tema"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save Theme As.."
-msgstr ""
+msgstr "Lagre Tema Som.."
#: editor/plugins/script_editor_plugin.cpp
msgid " Class Reference"
-msgstr ""
+msgstr " Klassereferanse"
#: editor/plugins/script_editor_plugin.cpp
msgid "Sort"
-msgstr ""
+msgstr "Sorter"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
-msgstr ""
+msgstr "Flytt Opp"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
-msgstr ""
+msgstr "Flytt Ned"
#: editor/plugins/script_editor_plugin.cpp
msgid "Next script"
@@ -4448,7 +4663,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4461,6 +4676,11 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Kopier Sti"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4503,12 +4723,12 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
msgid "Find.."
-msgstr ""
+msgstr "Finn.."
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
msgid "Find Next"
-msgstr ""
+msgstr "Finn neste"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Step Over"
@@ -4525,7 +4745,7 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
#: editor/script_editor_debugger.cpp
msgid "Continue"
-msgstr ""
+msgstr "Fortsett"
#: editor/plugins/script_editor_plugin.cpp
msgid "Keep Debugger Open"
@@ -4561,7 +4781,7 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Create Script"
-msgstr ""
+msgstr "Opprett skript"
#: editor/plugins/script_editor_plugin.cpp
msgid ""
@@ -4592,7 +4812,7 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
msgid "Pick Color"
-msgstr ""
+msgstr "Velg farge"
#: editor/plugins/script_text_editor.cpp
msgid "Convert Case"
@@ -4613,13 +4833,13 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
-msgstr ""
+msgstr "Klipp ut"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Copy"
-msgstr ""
+msgstr "Lim inn"
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
@@ -4649,14 +4869,10 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
+msgid "Fold/Unfold Line"
msgstr "Slett Valgte"
#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
msgstr ""
@@ -4711,11 +4927,11 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
msgid "Find Previous"
-msgstr ""
+msgstr "Finn forrige"
#: editor/plugins/script_text_editor.cpp
msgid "Replace.."
-msgstr ""
+msgstr "Erstatt.."
#: editor/plugins/script_text_editor.cpp
msgid "Goto Function.."
@@ -4982,6 +5198,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "OK :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "Ingen foreldre å instansere et barn på."
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5086,6 +5310,19 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Snap til veiledere"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5159,10 +5396,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5204,6 +5437,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5589,6 +5826,11 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet.."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5600,6 +5842,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr ""
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5717,10 +5963,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -5977,8 +6219,9 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr ""
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Fjern Utvalg"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6046,6 +6289,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6224,6 +6471,10 @@ msgid "New Script"
msgstr ""
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6256,6 +6507,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "Sett"
@@ -6264,10 +6519,6 @@ msgstr "Sett"
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6822,6 +7073,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6870,15 +7125,52 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Fjern Kurvepunkt"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7549,6 +7841,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7577,10 +7885,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7633,10 +7937,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr ""
@@ -7697,6 +7997,18 @@ msgstr ""
msgid "Invalid font size."
msgstr "Ugyldig fontstørrelse."
+#~ msgid "Move Add Key"
+#~ msgstr "Flytt Legg-Til-Nøkkel"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Lag Abonnement"
+
+#~ msgid "List:"
+#~ msgstr "Liste:"
+
+#~ msgid " "
+#~ msgstr " "
+
#, fuzzy
#~ msgid "Selection -> Clear"
#~ msgstr "Forandre Utvalgskurve"
diff --git a/editor/translations/nl.po b/editor/translations/nl.po
index 3f6243e5bd..f80b7e1dac 100644
--- a/editor/translations/nl.po
+++ b/editor/translations/nl.po
@@ -3,28 +3,33 @@
# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
# This file is distributed under the same license as the Godot source code.
#
+# aelspire <aelspire@gmail.com>, 2017.
# Aram Nap <xyphex.aram@gmail.com>, 2017.
# Arjan219 <arjannugteren1@gmail.com>, 2017.
+# Christophe Swolfs <swolfschristophe@gmail.com>, 2017.
# Cornee Traas <corneetraas@hotmail.com>, 2017.
# Daeran Wereld <daeran@gmail.com>, 2017.
+# Dzejkop <jakubtrad@gmail.com>, 2017.
+# Maikel <maikel_martens_1@hotmail.com>, 2017.
# Pieter-Jan Briers <pieterjan.briers@gmail.com>, 2017.
# Robin Arys <robinarys@hotmail.com>, 2017.
# Senno Kaasjager <senno.kaasjager@gmail.com>, 2017.
# Uxilo <jmolendijk93@gmail.com>, 2017.
# Wout Standaert <wout@blobkat.com>, 2017.
+# Zatherz <zatherz@linux.pl>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-24 20:45+0000\n"
-"Last-Translator: Daeran Wereld <daeran@gmail.com>\n"
+"PO-Revision-Date: 2017-12-20 15:43+0000\n"
+"Last-Translator: Christophe Swolfs <swolfschristophe@gmail.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/"
"nl/>\n"
"Language: nl\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.18-dev\n"
+"X-Generator: Weblate 2.18\n"
#: editor/animation_editor.cpp
msgid "Disabled"
@@ -35,8 +40,9 @@ msgid "All Selection"
msgstr "Alle Selectie"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Verplaats Key Toevoegen"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Anim Wijzig Waarde"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -47,7 +53,8 @@ msgid "Anim Change Transform"
msgstr "Anim Wijzig Transform"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Anim Wijzig Waarde"
#: editor/animation_editor.cpp
@@ -543,8 +550,8 @@ msgstr "Signaal aan het Verbinden:"
#: editor/connections_dialog.cpp
#, fuzzy
-msgid "Create Subscription"
-msgstr "Subscriptie Maken"
+msgid "Disconnect '%s' from '%s'"
+msgstr "Verbind '%s' met '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -560,7 +567,8 @@ msgid "Signals"
msgstr "Signalen"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Nieuwe Maken"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -575,7 +583,7 @@ msgstr "Recente:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Zoeken:"
@@ -616,6 +624,7 @@ msgstr ""
"Wijzigingen zullen effect hebben wanneer herladen."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Afhankelijkheden"
@@ -721,9 +730,10 @@ msgid "Delete selected files?"
msgstr "Verwijder geselecteerde bestanden?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Verwijder"
@@ -866,6 +876,11 @@ msgid "Rename Audio Bus"
msgstr "Hernoem audiobus"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Verander audiobus solo"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Verander audiobus solo"
@@ -914,8 +929,8 @@ msgstr "Omleiden"
msgid "Bus options"
msgstr "Audiobusopties"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Dupliceren"
@@ -928,6 +943,10 @@ msgid "Delete Effect"
msgstr "Effect Verwijderen"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "Audiobus Toevoegen"
@@ -1081,7 +1100,8 @@ msgstr "Pad:"
msgid "Node Name:"
msgstr "Node Naam:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Naam"
@@ -1089,10 +1109,6 @@ msgstr "Naam"
msgid "Singleton"
msgstr "Singleton"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Lijst:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "Scene aan het Updaten"
@@ -1105,6 +1121,14 @@ msgstr "Lokale wijziging aan het opslaan.."
msgid "Updating scene.."
msgstr "Scene aan het updaten.."
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "Kies eerst een basisfolder"
@@ -1151,9 +1175,24 @@ msgid "File Exists, Overwrite?"
msgstr "Bestand Bestaat, Overschrijven?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "Map Maken"
+msgstr "Selecteer Huidige Map"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Kopieer Pad"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Weergeven in Bestandsbeheer"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Nieuwe Map.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Verversen"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1202,10 +1241,6 @@ msgid "Go Up"
msgstr "Ga Omhoog"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Verversen"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "Toggle Verborgen Bestanden"
@@ -1385,7 +1420,8 @@ msgstr "Uitvoer:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "Leegmaken"
@@ -1499,17 +1535,16 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
-"Dit bestand hoort bij een scene die geïmporteerd werd, dus het is niet "
-"bewerkbaar.\n"
-"Lees de documentatie over scenes importeren om deze workflow beter te "
-"begrijpen."
+"Dit bestand hoort bij een scene die geïmporteerd werd. Het is momenteel dus "
+"onbewerkbaar. Lees de documentatie over scenes importeren om deze workflow "
+"beter te begrijpen."
#: editor/editor_node.cpp
msgid ""
"This resource belongs to a scene that was instanced or inherited.\n"
"Changes to it will not be kept when saving the current scene."
msgstr ""
-"Dit bestand hoort bij een scene die werd geïnstantieerd of overgeërfd.\n"
+"Dit bestand hoort bij een scene die geïnstantieerd of overgeërfd werd.\n"
"Aanpassingen zullen niet worden bijgehouden bij het opslaan van de huidige "
"scene."
@@ -2347,6 +2382,16 @@ msgstr "Zelf"
msgid "Frame #:"
msgstr "Frame #:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Tijd:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Aanroep"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "Selecteer apparaat uit de lijst"
@@ -2384,7 +2429,6 @@ msgid "Did you forget the '_run' method?"
msgstr "Ben je de '_run' methode vergeten?"
#: editor/editor_settings.cpp
-#, fuzzy
msgid "Default (Same as Editor)"
msgstr "Standaard (Dezelfde als Editor)"
@@ -2489,7 +2533,8 @@ msgstr "Geen antwoord."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "Aanv. Mislukt."
#: editor/export_template_manager.cpp
@@ -2536,7 +2581,8 @@ msgid "Connecting.."
msgstr "Verbinden.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "Kan niet verbinden"
#: editor/export_template_manager.cpp
@@ -2577,9 +2623,8 @@ msgid "Remove Template"
msgstr "Verwijder Sjabloon"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Select template file"
-msgstr "Verwijder geselecteerde bestanden?"
+msgstr "Selecteer sjabloonbestand"
#: editor/export_template_manager.cpp
msgid "Export Template Manager"
@@ -2635,6 +2680,11 @@ msgid "Error moving:\n"
msgstr "Fout bij het verplaatsen:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Error bij het laden van:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "Kon afhankelijkheden niet verversen:\n"
@@ -2668,6 +2718,16 @@ msgstr "Hernoemen folder:"
#: editor/filesystem_dock.cpp
#, fuzzy
+msgid "Duplicating file:"
+msgstr "Dupliceren"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Hernoemen folder:"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
msgid "Expand all"
msgstr "Klap alles uit"
@@ -2677,10 +2737,6 @@ msgid "Collapse all"
msgstr "Klap alles in"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "Kopieer Pad"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "Hernoemen.."
@@ -2689,27 +2745,28 @@ msgid "Move To.."
msgstr "Verplaats Naar.."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "Nieuwe Map.."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "Weergeven in Bestandsbeheer"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Scene Openen"
#: editor/filesystem_dock.cpp
msgid "Instance"
msgstr "Instantie"
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Edit Dependencies.."
-msgstr "Afhankelijkheden aanpassen."
+msgstr "Afhankelijkheden aanpassen.."
#: editor/filesystem_dock.cpp
msgid "View Owners.."
msgstr "Bekijk eigenaren.."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Dupliceren"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "Vorige Map"
@@ -2757,9 +2814,8 @@ msgid "Remove from Group"
msgstr "Verwijderen uit Groep"
#: editor/import/resource_importer_scene.cpp
-#, fuzzy
msgid "Import as Single Scene"
-msgstr "Scene aan het Updaten"
+msgstr "Importeer als Enkele Scene"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Animations"
@@ -2807,10 +2863,18 @@ msgid "Importing Scene.."
msgstr "Scene Importeren.."
#: editor/import/resource_importer_scene.cpp
-msgid "Running Custom Script.."
+msgid "Generating Lightmaps"
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Running Custom Script.."
+msgstr "Aangepast script uitvoeren .."
+
+#: editor/import/resource_importer_scene.cpp
msgid "Couldn't load post-import script:"
msgstr "Kon post-import script niet laden:"
@@ -2847,9 +2911,8 @@ msgid "Preset.."
msgstr "Voorinstelling.."
#: editor/import_dock.cpp
-#, fuzzy
msgid "Reimport"
-msgstr "Aan Het Herimporteren"
+msgstr "Herimporteer"
#: editor/multi_node_edit.cpp
msgid "MultiNode Set"
@@ -2952,12 +3015,14 @@ msgid "Add Animation"
msgstr "Voeg Animatie Toe"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Blend Next Changed"
-msgstr ""
+msgstr "Meng Volgende Aangepast"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Change Blend Time"
-msgstr ""
+msgstr "Wijzig Meng Tijd"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load Animation"
@@ -3013,7 +3078,7 @@ msgstr "Animatie positie (in seconden)."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Scale animation playback globally for the node."
-msgstr ""
+msgstr "Schaal het afspelen van animaties globaal voor de Node."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create new animation in player."
@@ -3058,7 +3123,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "\"Onion Skinning\" Inschakelen"
#: editor/plugins/animation_player_editor_plugin.cpp
#, fuzzy
@@ -3072,27 +3137,27 @@ msgstr "Plakken"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Future"
-msgstr ""
+msgstr "Toekomst"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Diepte"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 stap"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 stappen"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 stappen"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Alleen verschillen"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
@@ -3100,7 +3165,7 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "Inclusief Gizmos (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -3119,15 +3184,15 @@ msgstr "Foutmelding!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Times:"
-msgstr ""
+msgstr "Mengtijden:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Next (Auto Queue):"
-msgstr ""
+msgstr "Volgende (Auto wachtrij):"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Cross-Animation Blend Times"
-msgstr ""
+msgstr "Cross-animatie mixtijden"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -3157,23 +3222,25 @@ msgstr "Fade-Out (s):"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend"
-msgstr ""
+msgstr "Vochtigheid vermenging ruis"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix"
-msgstr ""
+msgstr "Mengen"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Auto Restart:"
-msgstr ""
+msgstr "Automatische herstart:"
#: editor/plugins/animation_tree_editor_plugin.cpp
+#, fuzzy
msgid "Restart (s):"
-msgstr ""
+msgstr "Herstart (en):"
#: editor/plugins/animation_tree_editor_plugin.cpp
+#, fuzzy
msgid "Random Restart (s):"
-msgstr ""
+msgstr "Willekeurige herstart (en):"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Start!"
@@ -3186,7 +3253,7 @@ msgstr "Hoeveelheid:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend:"
-msgstr ""
+msgstr "Mengen"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend 0:"
@@ -3206,7 +3273,7 @@ msgstr "Huidig:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Add Input"
-msgstr ""
+msgstr "Voeg invoer toe"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Clear Auto-Advance"
@@ -3218,7 +3285,7 @@ msgstr ""
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Delete Input"
-msgstr ""
+msgstr "Invoer verwijderen"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation tree is valid."
@@ -3338,7 +3405,7 @@ msgstr "Ophalen:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Resolving.."
-msgstr ""
+msgstr "Oplossen .."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Error making request"
@@ -3377,6 +3444,7 @@ msgid "last"
msgstr "laatste"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Alle"
@@ -3419,6 +3487,27 @@ msgstr "Testen"
msgid "Assets ZIP File"
msgstr "Assets ZIP Bestand"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "Voorbeeld"
@@ -3556,7 +3645,6 @@ msgid "Toggles snapping"
msgstr "Breekpunt Aan- of Uitschakelen"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3738,16 +3826,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3942,6 +4020,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3982,6 +4076,20 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Weergeven"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Weergeven"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4159,10 +4267,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4180,15 +4284,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4250,10 +4354,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4541,11 +4641,13 @@ msgstr "Sorteren:"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4561,7 +4663,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4574,6 +4676,11 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Kopieer Pad"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4765,14 +4872,10 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
+msgid "Fold/Unfold Line"
msgstr "Ga naar Regel"
#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
msgstr ""
@@ -5101,6 +5204,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5212,6 +5323,19 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Op hulplijnen uitlijnen"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5286,10 +5410,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5331,6 +5451,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5718,6 +5842,11 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet..."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5729,6 +5858,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Annuleren"
+
#: editor/project_export.cpp
#, fuzzy
msgid "Runnable"
@@ -5852,10 +5985,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -6117,8 +6246,9 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr ""
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Schaal Selectie"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6188,6 +6318,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6366,6 +6500,10 @@ msgid "New Script"
msgstr ""
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6399,6 +6537,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "Zet"
@@ -6407,10 +6549,6 @@ msgstr "Zet"
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6975,6 +7113,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -7023,15 +7165,52 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Verwijder Signaal"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7755,6 +7934,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7791,10 +7986,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7849,15 +8040,11 @@ msgstr ""
#: scene/gui/color_picker.cpp
msgid "Raw Mode"
-msgstr ""
+msgstr "Raw-modus"
#: scene/gui/color_picker.cpp
msgid "Add current color as a preset"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Annuleren"
+msgstr "Huidige kleur als een preset toevoegen"
#: scene/gui/dialogs.cpp
msgid "Alert!"
@@ -7929,6 +8116,16 @@ msgstr "Fout bij het laden van lettertype."
msgid "Invalid font size."
msgstr "Ongeldige lettertype grootte."
+#~ msgid "Move Add Key"
+#~ msgstr "Verplaats Key Toevoegen"
+
+#, fuzzy
+#~ msgid "Create Subscription"
+#~ msgstr "Subscriptie Maken"
+
+#~ msgid "List:"
+#~ msgstr "Lijst:"
+
#, fuzzy
#~ msgid ""
#~ "\n"
diff --git a/editor/translations/pl.po b/editor/translations/pl.po
index e4a19998a7..498b06136a 100644
--- a/editor/translations/pl.po
+++ b/editor/translations/pl.po
@@ -8,6 +8,8 @@
# Adrian Węcławski <weclawskiadrian@gmail.com>, 2016.
# aelspire <aelspire@gmail.com>, 2017.
# Daniel Lewan <vision360.daniel@gmail.com>, 2016-2017.
+# heya10 <igor.gielzak@gmail.com>, 2017.
+# holistyczny interlokutor <jakubowesmieci@gmail.com>, 2017.
# Kajetan Kuszczyński <kajetanek99@gmail.com>, 2016.
# Kamil Lewan <lewan.kamil@gmail.com>, 2016.
# Karol Walasek <coreconviction@gmail.com>, 2016.
@@ -23,8 +25,8 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-26 22:48+0000\n"
-"Last-Translator: Sebastian Pasich <sebastian.pasich@gmail.com>\n"
+"PO-Revision-Date: 2017-12-20 15:43+0000\n"
+"Last-Translator: Rafał Ziemniak <synaptykq@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/"
"godot/pl/>\n"
"Language: pl\n"
@@ -32,7 +34,7 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 2.18-dev\n"
+"X-Generator: Weblate 2.18\n"
#: editor/animation_editor.cpp
msgid "Disabled"
@@ -43,8 +45,9 @@ msgid "All Selection"
msgstr "Wszystkie zaznaczenia"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Przemieszczono/Dodano klucz"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Zmień wartość"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -55,8 +58,9 @@ msgid "Anim Change Transform"
msgstr "Animacja transformacji"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
-msgstr "Animacja wartości"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
+msgstr "Zmień wartość"
#: editor/animation_editor.cpp
msgid "Anim Change Call"
@@ -99,9 +103,8 @@ msgid "Anim Track Change Value Mode"
msgstr "Zmień tryb wartości animacji"
#: editor/animation_editor.cpp
-#, fuzzy
msgid "Anim Track Change Wrap Mode"
-msgstr "Zmień tryb wartości animacji"
+msgstr "Ścieżka Animacji - Zmień Tryb Zawijania"
#: editor/animation_editor.cpp
msgid "Edit Node Curve"
@@ -388,7 +391,7 @@ msgstr "Nie znaleziono"
#: editor/code_editor.cpp
msgid "Replaced %d occurrence(s)."
-msgstr "Ilość zastąpionych wystąpień: %d"
+msgstr "Zamieniono %d wystąpień."
#: editor/code_editor.cpp
msgid "Replace"
@@ -550,8 +553,9 @@ msgid "Connecting Signal:"
msgstr "Połączony sygnał:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Utwórz subskrypcję"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Połącz '%s' z '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -567,7 +571,8 @@ msgid "Signals"
msgstr "Sygnały"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Utwórz nowy"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -582,7 +587,7 @@ msgstr "Ostatnie:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Szukaj:"
@@ -623,6 +628,7 @@ msgstr ""
"Zmiany zajdą dopiero po jego przeładowaniu."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Zależności"
@@ -725,9 +731,10 @@ msgid "Delete selected files?"
msgstr "Usunąć zaznaczone pliki?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Usuń"
@@ -787,19 +794,19 @@ msgstr "Mini-sponsorzy"
#: editor/editor_about.cpp
msgid "Gold Donors"
-msgstr "Złoci dawcy"
+msgstr "Złoci darczyńcy"
#: editor/editor_about.cpp
msgid "Silver Donors"
-msgstr "Srebrni dawcy"
+msgstr "Srebrni darczyńcy"
#: editor/editor_about.cpp
msgid "Bronze Donors"
-msgstr "BrÄ…zowi dawcy"
+msgstr "Brązowi darczyńcy"
#: editor/editor_about.cpp
msgid "Donors"
-msgstr "Dawcy"
+msgstr "Darczyńcy"
#: editor/editor_about.cpp
msgid "License"
@@ -872,6 +879,11 @@ msgid "Rename Audio Bus"
msgstr "Zmień nazwę magistrali audio"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Przełącz tryb solo magistrali audio"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Przełącz tryb solo magistrali audio"
@@ -920,8 +932,8 @@ msgstr "Omiń"
msgid "Bus options"
msgstr "Opcje magistrali"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Duplikuj"
@@ -934,6 +946,10 @@ msgid "Delete Effect"
msgstr "Usuń efekt"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "Dodaj magistralÄ™ audio"
@@ -1086,7 +1102,8 @@ msgstr "Ścieżka:"
msgid "Node Name:"
msgstr "Nazwa węzła:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Nazwa"
@@ -1094,10 +1111,6 @@ msgstr "Nazwa"
msgid "Singleton"
msgstr "Singleton"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Lista:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "Aktualizowanie Sceny"
@@ -1110,6 +1123,15 @@ msgstr "Zachowywanie lokalnych zmian.."
msgid "Updating scene.."
msgstr "Aktualizacja sceny .."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(pusty)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "Najpierw wybierz katalog podstawowy"
@@ -1160,6 +1182,22 @@ msgstr "Plik istnieje, nadpisać?"
msgid "Select Current Folder"
msgstr "Utwórz katalog"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Skopiuj Ścieżkę"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Pokaż w menadżerze plików"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Utwórz katalog..."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Odśwież"
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr "Wszystkie rozpoznane"
@@ -1207,10 +1245,6 @@ msgid "Go Up"
msgstr "W górę"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Odśwież"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "Przełącz ukryte pliki"
@@ -1390,7 +1424,8 @@ msgstr "Wyjście:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "Wyczyść"
@@ -1678,7 +1713,7 @@ msgstr "Eksportuj bibliotekę Meshów"
#: editor/editor_node.cpp
msgid "This operation can't be done without a root node."
-msgstr "Ta operacja nie może zostać wykonana bez sceny."
+msgstr "Ta operacja nie może zostać wykonana bez węzła głównego."
#: editor/editor_node.cpp
msgid "Export Tile Set"
@@ -1777,7 +1812,7 @@ msgid ""
"Scene '%s' was automatically imported, so it can't be modified.\n"
"To make changes to it, a new inherited scene can be created."
msgstr ""
-"Scena '%s' została automatycznie zaimportowana, i nie może być "
+"Scena '%s' została automatycznie zaimportowana, więc nie może być "
"zmodyfikowana.\n"
"Aby dokonać na niej zmian, można utworzyć nową odziedziczoną scenę."
@@ -1854,7 +1889,7 @@ msgstr "Scena"
#: editor/editor_node.cpp
msgid "Go to previously opened scene."
-msgstr "Idź do poprzednio otwartej sceny."
+msgstr "Wróć do poprzednio otwartej sceny."
#: editor/editor_node.cpp
msgid "Next tab"
@@ -2343,6 +2378,16 @@ msgstr "Ten obiekt"
msgid "Frame #:"
msgstr "Klatka #:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Czas:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Wywołanie"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "Wybierz urzÄ…dzenie z listy"
@@ -2485,7 +2530,8 @@ msgstr "Brak odpowiedzi."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "Żądanie nie powiodło się."
#: editor/export_template_manager.cpp
@@ -2507,9 +2553,8 @@ msgid "Download Complete."
msgstr "Pobieranie zakończone."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error requesting url: "
-msgstr "Błąd podczas wczytywania adresu url: "
+msgstr "Błąd podczas żądania adresu url: "
#: editor/export_template_manager.cpp
msgid "Connecting to Mirror.."
@@ -2534,7 +2579,8 @@ msgid "Connecting.."
msgstr "ÅÄ…czenie.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "Nie można połączyć"
#: editor/export_template_manager.cpp
@@ -2630,6 +2676,11 @@ msgid "Error moving:\n"
msgstr "Błąd przenoszenia:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Błąd ładowania:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "Nie można zaktualizować zależności:\n"
@@ -2662,6 +2713,16 @@ msgid "Renaming folder:"
msgstr "Zmiana nazwy folderu:"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Duplikuj"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Zmiana nazwy folderu:"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "Rozwiń foldery"
@@ -2670,10 +2731,6 @@ msgid "Collapse all"
msgstr "Zwiń foldery"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "Skopiuj Ścieżkę"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "Zmień nazwę..."
@@ -2682,12 +2739,9 @@ msgid "Move To.."
msgstr "PrzenieÅ› Do..."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "Utwórz katalog..."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "Pokaż w menadżerze plików"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Otwórz scenę"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2702,6 +2756,11 @@ msgid "View Owners.."
msgstr "Pokaż właścicieli.."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Duplikuj"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "Poprzedni katalog"
@@ -2797,6 +2856,16 @@ msgid "Importing Scene.."
msgstr "Importowanie Sceny.."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "Generowanie AABB"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "Generowanie AABB"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "Uruchamiam skrypt..."
@@ -2943,8 +3012,9 @@ msgid "Add Animation"
msgstr "Dodaj animacjÄ™"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Blend Next Changed"
-msgstr ""
+msgstr "Zmienione następne przejście animacji"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Blend Time"
@@ -3031,8 +3101,9 @@ msgid "Autoplay on Load"
msgstr "Auto odtwarzanie po załadowaniu"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Edit Target Blend Times"
-msgstr ""
+msgstr "Edytuj Czas Trwania Przejścia Celu"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Tools"
@@ -3043,12 +3114,14 @@ msgid "Copy Animation"
msgstr "Skopiuj animacje"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Onion Skinning"
-msgstr ""
+msgstr "Tryb łusek cebuli"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Włącz tryb łusek cebuli"
#: editor/plugins/animation_player_editor_plugin.cpp
#, fuzzy
@@ -3067,31 +3140,33 @@ msgstr "Funkcje"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Głębokość"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 krok"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 kroki"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 kroki"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Tylko różnice"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Force White Modulate"
-msgstr ""
+msgstr "Wymuś Białe Cieniowanie"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "Dołącz Gizmo (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -3110,7 +3185,7 @@ msgstr "Błąd!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Times:"
-msgstr ""
+msgstr "Czasy przejścia:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Next (Auto Queue):"
@@ -3118,7 +3193,7 @@ msgstr "Następny (automatyczna kolejka):"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Cross-Animation Blend Times"
-msgstr ""
+msgstr "Czas Przejścia Między Animacjami"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
@@ -3201,12 +3276,14 @@ msgid "Add Input"
msgstr "Dodaj Wejście"
#: editor/plugins/animation_tree_editor_plugin.cpp
+#, fuzzy
msgid "Clear Auto-Advance"
-msgstr ""
+msgstr "Wyczyść Auto-Progres"
#: editor/plugins/animation_tree_editor_plugin.cpp
+#, fuzzy
msgid "Set Auto-Advance"
-msgstr ""
+msgstr "Ustaw Auto-Progres"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Delete Input"
@@ -3230,23 +3307,23 @@ msgstr "Jednorazowy Węzeł"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix Node"
-msgstr ""
+msgstr "Wezeł Mieszania"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend2 Node"
-msgstr ""
+msgstr "Węzeł Blend2"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend3 Node"
-msgstr ""
+msgstr "Węzeł Blend3"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend4 Node"
-msgstr ""
+msgstr "Węzeł Blend4"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "TimeScale Node"
-msgstr ""
+msgstr "Węzeł Skalowania Czasu"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "TimeSeek Node"
@@ -3254,7 +3331,7 @@ msgstr ""
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Transition Node"
-msgstr ""
+msgstr "Węzeł Przejścia"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Import Animations.."
@@ -3374,6 +3451,7 @@ msgid "last"
msgstr "ostatni"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Wszystko"
@@ -3415,6 +3493,28 @@ msgstr "Testowanie"
msgid "Assets ZIP File"
msgstr "Plik ZIP assetów"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "Zmień promień światła"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "PodglÄ…d"
@@ -3447,11 +3547,11 @@ msgstr "Przesuń pivot"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Action"
-msgstr ""
+msgstr "Przesuń Działanie"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move vertical guide"
-msgstr ""
+msgstr "Przesuń Pionową Prowadnicę"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create new vertical guide"
@@ -3475,7 +3575,7 @@ msgstr "Usuń prowadnicę poziomą"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create new horizontal and vertical guides"
-msgstr ""
+msgstr "Utwórz nowe poziome i pionowe prowadnice"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Edit IK Chain"
@@ -3520,8 +3620,9 @@ msgstr ""
"poruszania)."
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Alt+RMB: Depth list selection"
-msgstr ""
+msgstr "Alt+PPM: Lista wyboru głębi"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Mode"
@@ -3553,7 +3654,6 @@ msgid "Toggles snapping"
msgstr "PrzyciÄ…ganie"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "Użyj przyciągania"
@@ -3575,19 +3675,20 @@ msgstr "Konfiguruj przyciÄ…ganie.."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap Relative"
-msgstr ""
+msgstr "Przyciągaj względnie"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Pixel Snap"
msgstr "Użyj krokowania na poziomie pikseli"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
msgid "Smart snapping"
-msgstr ""
+msgstr "Inteligentne przyciÄ…ganie"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to parent"
-msgstr ""
+msgstr "PrzyciÄ…gaj do rodzica"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to node anchor"
@@ -3599,7 +3700,7 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to other nodes"
-msgstr ""
+msgstr "Przyciągaj do innych węzłów"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to guides"
@@ -3687,7 +3788,7 @@ msgstr "Wstaw Klucz"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
-msgstr ""
+msgstr "Wstaw Klucz (Istniejące Ścieżki)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Copy Pose"
@@ -3733,16 +3834,6 @@ msgstr "Błąd instancjacji sceny z %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "OK :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "Brak elementu nadrzędnego do stworzenia instancji."
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr "Ta operacja wymaga pojedynczego wybranego węzła."
@@ -3760,7 +3851,7 @@ msgstr ""
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Create Poly3D"
-msgstr ""
+msgstr "Stwórz Poly3D"
#: editor/plugins/collision_shape_2d_editor_plugin.cpp
msgid "Set Handle"
@@ -3802,11 +3893,12 @@ msgstr "Ease in"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Ease out"
-msgstr ""
+msgstr "Ease out"
#: editor/plugins/curve_editor_plugin.cpp
+#, fuzzy
msgid "Smoothstep"
-msgstr ""
+msgstr "Płynny Krok"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Modify Curve Point"
@@ -3853,7 +3945,7 @@ msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
msgid "Hold Shift to edit tangents individually"
-msgstr ""
+msgstr "Przytrzymaj Shift aby edytować styczne indywidualnie"
#: editor/plugins/gi_probe_editor_plugin.cpp
msgid "Bake GI Probe"
@@ -3939,6 +4031,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3948,7 +4056,7 @@ msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
-msgstr ""
+msgstr "Nie udało się utworzyć zarysu!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline"
@@ -3979,6 +4087,20 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Widok"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Widok"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4139,11 +4261,11 @@ msgstr "Rozdzielenie"
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Creating contours..."
-msgstr ""
+msgstr "Tworzenie konturów..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
-msgstr ""
+msgstr "Tworzenie polymesh'a..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
@@ -4166,10 +4288,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr "Usuń maskę emisji"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr "Generowanie AABB"
@@ -4188,10 +4306,6 @@ msgid "No pixels with transparency > 128 in image.."
msgstr "Brak pikseli z przeźroczystością > 128 w obrazie.."
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "Ustaw maskÄ™ emisji"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#, fuzzy
msgid "Generate Visibility Rect"
msgstr "Wygeneruj widzialność prostokąta"
@@ -4201,6 +4315,10 @@ msgid "Load Emission Mask"
msgstr "Wczytaj maskÄ™ emisji"
#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "Usuń maskę emisji"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
msgstr "CzÄ…steczki"
@@ -4259,10 +4377,6 @@ msgid "Create Emission Points From Node"
msgstr "Twórz punkty emisji z węzła"
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "Wyczyść Emiter"
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr "Utwórz Emiter"
@@ -4554,11 +4668,13 @@ msgstr "Sortuj:"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "Przesuń w górę"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "Przesuń w dół"
@@ -4574,7 +4690,7 @@ msgstr "Poprzedni skrypt"
msgid "File"
msgstr "Plik"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "Nowy"
@@ -4587,6 +4703,11 @@ msgid "Soft Reload Script"
msgstr "Miękkie przeładowania skryptu"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Skopiuj Ścieżkę"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr "Poprzedni plik"
@@ -4787,14 +4908,10 @@ msgstr "Duplikuj liniÄ™"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
+msgid "Fold/Unfold Line"
msgstr "Idź do lini"
#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
msgstr ""
@@ -5135,6 +5252,14 @@ msgstr "Klatki na sekundÄ™"
msgid "Align with view"
msgstr "Wyrównaj z widokiem"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "OK :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "Brak elementu nadrzędnego do stworzenia instancji."
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "Widok normalny"
@@ -5253,6 +5378,20 @@ msgid "Scale Mode (R)"
msgstr "Tryb skalowania (R)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "Koordynaty lokalne"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "Tryb skalowania (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Tryb przyciÄ…gania:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "Widok z dołu"
@@ -5330,10 +5469,6 @@ msgid "Configure Snap.."
msgstr "Konfiguruj krokowanie.."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "Koordynaty lokalne"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr "Okno transformowania.."
@@ -5375,6 +5510,10 @@ msgid "Settings"
msgstr "Ustawienia"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr "Ustawienia przyciÄ…gania"
@@ -5775,6 +5914,11 @@ msgid "Merge from scene?"
msgstr "Połącz ze sceny?"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet..."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "Utwórz ze sceny"
@@ -5786,6 +5930,10 @@ msgstr "Połącz ze sceny"
msgid "Error"
msgstr "Błąd"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Anuluj"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Uruchamiany"
@@ -5909,10 +6057,6 @@ msgid "Imported Project"
msgstr "Zaimportowano projekt"
#: editor/project_manager.cpp
-msgid " "
-msgstr " "
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr "Dobrym pomysłem byłoby nazwanie swojego projektu."
@@ -6179,8 +6323,9 @@ msgid "Joypad Button Index:"
msgstr "Indeks przycisku joysticka:"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "Dodawanie akcji Wejścia"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Wyczyść zdarzenie akcji wejścia"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6250,6 +6395,10 @@ msgid "Already existing"
msgstr "Już istnieje"
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "Dodawanie akcji Wejścia"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "Błąd zapisu ustawień."
@@ -6427,6 +6576,10 @@ msgid "New Script"
msgstr "Nowy skrypt"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
#, fuzzy
msgid "Make Unique"
msgstr "Utwórz unikatowy zasób"
@@ -6459,6 +6612,11 @@ msgstr ""
msgid "On"
msgstr "Włącz"
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "Dodaj pusty"
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "Ustaw"
@@ -6467,10 +6625,6 @@ msgstr "Ustaw"
msgid "Properties:"
msgstr "Właściwości:"
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr "Kategorie:"
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "Wybierz właściwość"
@@ -7037,6 +7191,10 @@ msgstr "Ustaw z drzewa"
msgid "Shortcuts"
msgstr "Skróty"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "Zmień promień światła"
@@ -7086,15 +7244,55 @@ msgstr ""
msgid "Change Probe Extents"
msgstr "Zmień rozmiar Box Shape"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Usuń punkt krzywej"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Platform"
+msgstr "Kopiuj na platformÄ™..."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "Biblioteka"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "GDNative"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr "Biblioteka"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr "Status"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr "Biblioteki: "
@@ -7791,6 +7989,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7827,10 +8041,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7891,10 +8101,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Anuluj"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Alarm!"
@@ -7903,9 +8109,8 @@ msgid "Please Confirm..."
msgstr "Proszę potwierdzić..."
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select this Folder"
-msgstr "Wybierz metodÄ™"
+msgstr "Wybierz ten Folder"
#: scene/gui/popup.cpp
msgid ""
@@ -7913,9 +8118,9 @@ msgid ""
"functions. Making them visible for editing is fine though, but they will "
"hide upon running."
msgstr ""
-"Popup będzie domyślnie ukryty dopóki nie wywołasz popup() lub dowolnej "
-"funkcji popup*(). Ustawienie go jako widoczny jest przydatne do edycji, ale "
-"zostanie ukryty po uruchomieniu."
+"Wyskakujące okna będą domyślnie ukryte dopóki nie wywołasz popup() lub "
+"dowolnej funkcji popup*(). Ustawienie ich jako widocznych jest przydatne do "
+"edycji, ale zostanÄ… ukryte po uruchomieniu."
#: scene/gui/scroll_container.cpp
msgid ""
@@ -7930,13 +8135,15 @@ msgstr ""
#: scene/gui/tree.cpp
msgid "(Other)"
-msgstr ""
+msgstr "Inne"
#: scene/main/scene_tree.cpp
msgid ""
"Default Environment as specified in Project Setings (Rendering -> Viewport -"
"> Default Environment) could not be loaded."
msgstr ""
+"Domyślne Środowisko określone w Ustawieniach Projektu (Renderowanie -> "
+"Viewport -> Domyślne Środowisko) nie mogło zostać załadowane."
#: scene/main/viewport.cpp
msgid ""
@@ -7956,7 +8163,7 @@ msgstr "Błąd przy inicjalizacji FreeType."
#: scene/resources/dynamic_font.cpp
msgid "Unknown font format."
-msgstr "Nieznany format fontu."
+msgstr "Nieznany format czcionki."
#: scene/resources/dynamic_font.cpp
msgid "Error loading font."
@@ -7966,6 +8173,27 @@ msgstr "Błąd ładowania fonta."
msgid "Invalid font size."
msgstr "Niepoprawny rozmiar fonta."
+#~ msgid "Move Add Key"
+#~ msgstr "Przemieszczono/Dodano klucz"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Utwórz subskrypcję"
+
+#~ msgid "List:"
+#~ msgstr "Lista:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "Ustaw maskÄ™ emisji"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "Wyczyść Emiter"
+
+#~ msgid " "
+#~ msgstr " "
+
+#~ msgid "Sections:"
+#~ msgstr "Kategorie:"
+
#~ msgid "Cannot navigate to '"
#~ msgstr "Nie można przejść do '"
@@ -8616,9 +8844,6 @@ msgstr "Niepoprawny rozmiar fonta."
#~ msgid "Del"
#~ msgstr "Usuń"
-#~ msgid "Copy To Platform.."
-#~ msgstr "Kopiuj na platformÄ™..."
-
#, fuzzy
#~ msgid "Error creating the signature object."
#~ msgstr "Błąd przy eksporcie projektu!"
diff --git a/editor/translations/pr.po b/editor/translations/pr.po
index 6e5ceeadc1..ba0b466386 100644
--- a/editor/translations/pr.po
+++ b/editor/translations/pr.po
@@ -28,8 +28,9 @@ msgid "All Selection"
msgstr "All yer Booty"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Move yer Add Key"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Change yer Anim Value"
#: editor/animation_editor.cpp
#, fuzzy
@@ -43,7 +44,7 @@ msgstr "Change yer Anim Transform"
#: editor/animation_editor.cpp
#, fuzzy
-msgid "Anim Change Value"
+msgid "Anim Change Keyframe Value"
msgstr "Change yer Anim Value"
#: editor/animation_editor.cpp
@@ -536,7 +537,7 @@ msgid "Connecting Signal:"
msgstr ""
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
+msgid "Disconnect '%s' from '%s'"
msgstr ""
#: editor/connections_dialog.cpp
@@ -553,7 +554,7 @@ msgid "Signals"
msgstr ""
#: editor/create_dialog.cpp
-msgid "Create New"
+msgid "Create New %s"
msgstr ""
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -568,7 +569,7 @@ msgstr ""
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr ""
@@ -605,6 +606,7 @@ msgid ""
msgstr ""
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr ""
@@ -705,9 +707,10 @@ msgid "Delete selected files?"
msgstr ""
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr ""
@@ -847,6 +850,11 @@ msgid "Rename Audio Bus"
msgstr "Rename Function"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Rename Function"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr ""
@@ -895,8 +903,8 @@ msgstr ""
msgid "Bus options"
msgstr ""
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr ""
@@ -910,6 +918,10 @@ msgid "Delete Effect"
msgstr "Yar, Blow th' Selected Down!"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr ""
@@ -1060,7 +1072,8 @@ msgstr ""
msgid "Node Name:"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr ""
@@ -1068,10 +1081,6 @@ msgstr ""
msgid "Singleton"
msgstr ""
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr ""
@@ -1084,6 +1093,14 @@ msgstr ""
msgid "Updating scene.."
msgstr ""
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr ""
@@ -1134,6 +1151,22 @@ msgstr ""
msgid "Select Current Folder"
msgstr "Slit th' Node"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr ""
@@ -1181,10 +1214,6 @@ msgid "Go Up"
msgstr ""
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr ""
@@ -1363,7 +1392,8 @@ msgstr ""
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr ""
@@ -2256,6 +2286,15 @@ msgstr ""
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Call"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr ""
@@ -2392,7 +2431,7 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+msgid "Request Failed."
msgstr ""
#: editor/export_template_manager.cpp
@@ -2439,8 +2478,9 @@ msgid "Connecting.."
msgstr ""
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
-msgstr ""
+#, fuzzy
+msgid "Can't Connect"
+msgstr "Slit th' Node"
#: editor/export_template_manager.cpp
#, fuzzy
@@ -2534,6 +2574,10 @@ msgid "Error moving:\n"
msgstr ""
#: editor/filesystem_dock.cpp
+msgid "Error duplicating:\n"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr ""
@@ -2567,31 +2611,32 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Rename Variable"
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
+msgid "Duplicating folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
+msgid "Expand all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Rename.."
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Move To.."
+msgid "Rename.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
+msgid "Move To.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
+msgid "Open Scene(s)"
msgstr ""
#: editor/filesystem_dock.cpp
@@ -2607,6 +2652,10 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+msgid "Duplicate.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2699,6 +2748,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3264,6 +3321,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr ""
@@ -3305,6 +3363,27 @@ msgstr ""
msgid "Assets ZIP File"
msgstr ""
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3442,7 +3521,6 @@ msgid "Toggles snapping"
msgstr "Toggle ye Breakpoint"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3623,16 +3701,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3827,6 +3895,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3867,6 +3951,18 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV1"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV2"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4043,10 +4139,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4064,15 +4156,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4134,10 +4226,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4424,11 +4512,13 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4444,7 +4534,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4457,6 +4547,11 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Forge yer Node!"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4645,14 +4740,10 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
+msgid "Fold/Unfold Line"
msgstr "Yar, Blow th' Selected Down!"
#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
msgstr ""
@@ -4978,6 +5069,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5082,6 +5181,18 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5156,10 +5267,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5201,6 +5308,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5586,6 +5697,10 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Tile Set"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5597,6 +5712,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr ""
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5714,10 +5833,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -5976,7 +6091,7 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
+msgid "Erase Input Action"
msgstr ""
#: editor/project_settings_editor.cpp
@@ -6046,6 +6161,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6224,6 +6343,10 @@ msgid "New Script"
msgstr ""
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6256,6 +6379,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "Set"
@@ -6264,10 +6391,6 @@ msgstr "Set"
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6825,6 +6948,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6873,15 +7000,52 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Discharge ye' Signal"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7566,6 +7730,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7594,10 +7774,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7650,10 +7826,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr ""
@@ -7714,6 +7886,9 @@ msgstr "Error loading yer Calligraphy Pen."
msgid "Invalid font size."
msgstr "Yer Calligraphy be wrongly sized."
+#~ msgid "Move Add Key"
+#~ msgstr "Move yer Add Key"
+
#~ msgid "just pressed"
#~ msgstr "just smashed"
diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po
index eed8439995..73dd892eda 100644
--- a/editor/translations/pt_BR.po
+++ b/editor/translations/pt_BR.po
@@ -24,8 +24,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: 2016-05-30\n"
-"PO-Revision-Date: 2017-11-25 01:23+0000\n"
-"Last-Translator: anonymous <>\n"
+"PO-Revision-Date: 2017-12-20 15:43+0000\n"
+"Last-Translator: Guilherme Felipe C G Silva <guilhermefelipecgs@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"godot-engine/godot/pt_BR/>\n"
"Language: pt_BR\n"
@@ -33,7 +33,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 2.18-dev\n"
+"X-Generator: Weblate 2.18\n"
#: editor/animation_editor.cpp
msgid "Disabled"
@@ -44,8 +44,9 @@ msgid "All Selection"
msgstr "Toda a Seleção"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Mover Adicionar Chave"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Mudar Valor da Anim"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -56,7 +57,8 @@ msgid "Anim Change Transform"
msgstr "Mudar Transformação da Anim"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Mudar Valor da Anim"
#: editor/animation_editor.cpp
@@ -550,8 +552,9 @@ msgid "Connecting Signal:"
msgstr "Conectando Sinal:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Criar Conexão"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Conectar \"%s\" a \"%s\""
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -567,7 +570,8 @@ msgid "Signals"
msgstr "Sinais"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Criar Novo"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -582,7 +586,7 @@ msgstr "Recente:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Pesquisar:"
@@ -623,6 +627,7 @@ msgstr ""
"As mudanças não terão efeito a menos que seja recarregado."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Dependências"
@@ -726,9 +731,10 @@ msgid "Delete selected files?"
msgstr "Excluir os arquivos selecionados?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Excluir"
@@ -871,6 +877,11 @@ msgid "Rename Audio Bus"
msgstr "Renomear Canal de Ãudio"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Alternar Solo do Canal de Ãudio"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Alternar Solo do Canal de Ãudio"
@@ -918,8 +929,8 @@ msgstr "Ignorar"
msgid "Bus options"
msgstr "Opções da pista"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Duplicar"
@@ -932,6 +943,10 @@ msgid "Delete Effect"
msgstr "Excluir Efeito"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "Adicionar Canal de Ãudio"
@@ -1085,7 +1100,8 @@ msgstr "Caminho:"
msgid "Node Name:"
msgstr "Nome do Nó:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Nome"
@@ -1093,10 +1109,6 @@ msgstr "Nome"
msgid "Singleton"
msgstr "Singleton"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Lista:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "Atualizando Cena"
@@ -1109,6 +1121,15 @@ msgstr "Armazenando mudanças locais..."
msgid "Updating scene.."
msgstr "Atualizando Cena..."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(vazio)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "Por favor selecione um diretório base primeiro"
@@ -1155,9 +1176,24 @@ msgid "File Exists, Overwrite?"
msgstr "O arquivo existe. Sobrescrever?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "Criar Pasta"
+msgstr "Selecione a Pasta Atual"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Copiar Caminho"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Mostrar no Gerenciador de Arquivos"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Nova Pasta..."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Atualizar"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1206,10 +1242,6 @@ msgid "Go Up"
msgstr "Acima"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Atualizar"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "Alternar Arquivos Ocultos"
@@ -1389,7 +1421,8 @@ msgstr "Saída:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "Limpar"
@@ -1546,14 +1579,12 @@ msgstr ""
"esse procedimento."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand all properties"
-msgstr "Expandir tudo"
+msgstr "Expandir todas as propriedades"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Collapse all properties"
-msgstr "Recolher tudo"
+msgstr "Recolher todas as propriedades"
#: editor/editor_node.cpp
msgid "Copy Params"
@@ -2029,7 +2060,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Sync Script Changes"
-msgstr "Sincronizar Mudanças no Script"
+msgstr "Sincronizar Alterações no Script"
#: editor/editor_node.cpp
msgid ""
@@ -2341,6 +2372,16 @@ msgstr "Mesmo"
msgid "Frame #:"
msgstr "Frame nº:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Tempo:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Chamar"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "Selecione um dispositivo da lista"
@@ -2483,13 +2524,14 @@ msgstr "Sem resposta."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "Sol. Falhou."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Redirect Loop."
-msgstr "Redirecionar Loop."
+msgstr "Loop de Redirecionamento."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -2530,7 +2572,8 @@ msgid "Connecting.."
msgstr "Conectando.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "Não foi possível conectar"
#: editor/export_template_manager.cpp
@@ -2626,6 +2669,11 @@ msgid "Error moving:\n"
msgstr "Erro ao mover:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Erro ao carregar:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "Não foi possível atualizar dependências:\n"
@@ -2658,6 +2706,16 @@ msgid "Renaming folder:"
msgstr "Renomear pasta:"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Duplicar"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Renomear pasta:"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "Expandir tudo"
@@ -2666,10 +2724,6 @@ msgid "Collapse all"
msgstr "Recolher tudo"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "Copiar Caminho"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "Renomear..."
@@ -2678,12 +2732,9 @@ msgid "Move To.."
msgstr "Mover Para..."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "Nova Pasta..."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "Mostrar no Gerenciador de Arquivos"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Abrir Cena"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2698,6 +2749,11 @@ msgid "View Owners.."
msgstr "Visualizar Proprietários..."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Duplicar"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "Diretório Anterior"
@@ -2792,6 +2848,16 @@ msgid "Importing Scene.."
msgstr "Importando Cena..."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "Transferir para Mapas de Luz:"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "Gerando AABB"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "Rodando Script Personalizado..."
@@ -3040,54 +3106,51 @@ msgstr "Copiar Animação"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "Papel Vegetal"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Ativar Papel Vegetal"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "Seções:"
+msgstr "Direções"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Past"
-msgstr "Colar"
+msgstr "Passado"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Future"
-msgstr "Funcionalidades"
+msgstr "Futuro"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Profundidade"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 passo"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 passos"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 passos"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Apenas Diferenças"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
-msgstr ""
+msgstr "Forçar Módulo Branco"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "Incluir Gizmos (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -3364,6 +3427,7 @@ msgid "last"
msgstr "ult"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Todos"
@@ -3405,6 +3469,28 @@ msgstr "Em teste"
msgid "Assets ZIP File"
msgstr "Arquivo ZIP de Assets"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "Transferir para Mapas de Luz:"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "Visualização"
@@ -3543,7 +3629,6 @@ msgid "Toggles snapping"
msgstr "Alternar Encaixar"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "Usar Snap"
@@ -3723,16 +3808,6 @@ msgstr "Erro ao instanciar cena de %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "OK :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "Sem pai onde instanciar um filho."
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr "Essa operação requer um único nó selecionado."
@@ -3928,6 +4003,22 @@ msgid "Create Navigation Mesh"
msgstr "Criar Mesh de Navegação"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr "Falta uma Mesh na MeshInstance!"
@@ -3968,6 +4059,20 @@ msgid "Create Outline Mesh.."
msgstr "Criar Mesh de Contorno.."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Visualizar"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Visualizar"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr "Criar Mesh de Contorno"
@@ -4145,10 +4250,6 @@ msgid "Create Navigation Polygon"
msgstr "Criar Polígono de Navegação"
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr "Limpar Máscara de Emissão"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr "Gerando AABB"
@@ -4167,10 +4268,6 @@ msgid "No pixels with transparency > 128 in image.."
msgstr "Nenhum pixel com transparência > 128 na imagem."
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "Definir Máscara de Emissão"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
msgstr "Gerar Retângulo de Visibilidade"
@@ -4179,6 +4276,10 @@ msgid "Load Emission Mask"
msgstr "Carregar Máscara de Emissão"
#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "Limpar Máscara de Emissão"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
msgstr "Partículas"
@@ -4237,10 +4338,6 @@ msgid "Create Emission Points From Node"
msgstr "Criar Pontos de Emissão a Partir do Nó"
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "Limpar Emissor"
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr "Criar Emissor"
@@ -4525,11 +4622,13 @@ msgstr "Ordenar"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "Mover para Cima"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "Mover para Baixo"
@@ -4545,7 +4644,7 @@ msgstr "Script anterior"
msgid "File"
msgstr "Arquivo"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "Novo"
@@ -4558,6 +4657,11 @@ msgid "Soft Reload Script"
msgstr "Recarregar Script (suave)"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Copiar Caminho"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr "Anterior no Histórico"
@@ -4748,11 +4852,8 @@ msgid "Clone Down"
msgstr "Clonar Abaixo"
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr "Esconder Linha"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+#, fuzzy
+msgid "Fold/Unfold Line"
msgstr "Mostrar Linha"
#: editor/plugins/script_text_editor.cpp
@@ -5080,6 +5181,14 @@ msgstr "FPS"
msgid "Align with view"
msgstr "Alinhar com Visão"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "OK :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "Sem pai onde instanciar um filho."
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "Exibição Normal"
@@ -5187,6 +5296,20 @@ msgid "Scale Mode (R)"
msgstr "Modo Escala (R)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "Coordenadas Locais"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "Modo Escala (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Modo Snap:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "Visão inferior"
@@ -5259,10 +5382,6 @@ msgid "Configure Snap.."
msgstr "Configurar Snap..."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "Coordenadas Locais"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr "Diálogo Transformação..."
@@ -5304,6 +5423,10 @@ msgid "Settings"
msgstr "Configurações"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr "Configurações do Snap"
@@ -5686,6 +5809,11 @@ msgid "Merge from scene?"
msgstr "Fundir a partir de cena?"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet..."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "Criar a partir de Cena"
@@ -5697,6 +5825,10 @@ msgstr "Fundir a partir de Cena"
msgid "Error"
msgstr "Erro"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Cancelar"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Executável"
@@ -5825,10 +5957,6 @@ msgid "Imported Project"
msgstr "Projeto Importado"
#: editor/project_manager.cpp
-msgid " "
-msgstr " "
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr "Seria uma boa ideia nomear o seu projeto."
@@ -5988,6 +6116,8 @@ msgid ""
"You don't currently have any projects.\n"
"Would you like to explore the official example projects in the Asset Library?"
msgstr ""
+"Você não tem nenhum projeto atualmente.\n"
+"Gostaria de explorar os projetos de exemplo oficiais na Biblioteca de Assets?"
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -6095,8 +6225,9 @@ msgid "Joypad Button Index:"
msgstr "Ãndice de Botão do Joypad:"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "Adicionar Ação de Entrada"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Apagar Evento Ação de Entrada"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6163,6 +6294,10 @@ msgid "Already existing"
msgstr "Já existe"
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "Adicionar Ação de Entrada"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "Erro ao salvar as configurações."
@@ -6339,6 +6474,10 @@ msgid "New Script"
msgstr "Novo Script"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr "Tornar Único"
@@ -6370,6 +6509,11 @@ msgstr "Bit %d, val %d."
msgid "On"
msgstr "Ativo"
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "Adicionar Vazio"
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "Definir"
@@ -6378,10 +6522,6 @@ msgstr "Definir"
msgid "Properties:"
msgstr "Propriedades:"
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr "Seções:"
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "Selecionar Propriedade"
@@ -6947,6 +7087,10 @@ msgstr "Definir a partir da árvore"
msgid "Shortcuts"
msgstr "Atalhos"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "Mudar Raio da Luz"
@@ -6995,15 +7139,55 @@ msgstr "Mudar o AABB das Partículas"
msgid "Change Probe Extents"
msgstr "Alterar a Extensão da Sonda"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Remover Ponto da Curva"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Platform"
+msgstr "Copiar para a Plataforma..."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "Biblioteca"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "GDNative"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr "Biblioteca"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr "Estado"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr "Bibliotecas: "
@@ -7705,6 +7889,25 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr "ARVROrigin necessita um nó ARVRCamera como filho"
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "Planejando Malhas"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "Planejando Malhas"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr "Terminando de Plotar"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "Planejando Malhas"
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7741,10 +7944,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr "Planejando Malhas"
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr "Terminando de Plotar"
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7811,10 +8010,6 @@ msgid "Add current color as a preset"
msgstr "Adicionar cor atual como uma predefinição"
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Alerta!"
@@ -7823,9 +8018,8 @@ msgid "Please Confirm..."
msgstr "Confirme Por Favor..."
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select this Folder"
-msgstr "Selecionar Mtéodo"
+msgstr "Selecionar esta Pasta"
#: scene/gui/popup.cpp
msgid ""
@@ -7887,6 +8081,30 @@ msgstr "Erro ao carregar fonte."
msgid "Invalid font size."
msgstr "Tamanho de fonte inválido."
+#~ msgid "Move Add Key"
+#~ msgstr "Mover Adicionar Chave"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Criar Conexão"
+
+#~ msgid "List:"
+#~ msgstr "Lista:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "Definir Máscara de Emissão"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "Limpar Emissor"
+
+#~ msgid "Fold Line"
+#~ msgstr "Esconder Linha"
+
+#~ msgid " "
+#~ msgstr " "
+
+#~ msgid "Sections:"
+#~ msgstr "Seções:"
+
#~ msgid "Cannot navigate to '"
#~ msgstr "Não é possível navegar para '"
@@ -8425,9 +8643,6 @@ msgstr "Tamanho de fonte inválido."
#~ msgid "Making BVH"
#~ msgstr "Fazendo BVH"
-#~ msgid "Transfer to Lightmaps:"
-#~ msgstr "Transferir para Mapas de Luz:"
-
#~ msgid "Allocating Texture #"
#~ msgstr "Alocando Textura nº"
@@ -8583,9 +8798,6 @@ msgstr "Tamanho de fonte inválido."
#~ msgid "Del"
#~ msgstr "Del"
-#~ msgid "Copy To Platform.."
-#~ msgstr "Copiar para a Plataforma..."
-
#~ msgid ""
#~ "Couldn't read the certificate file. Are the path and password both "
#~ "correct?"
diff --git a/editor/translations/pt_PT.po b/editor/translations/pt_PT.po
index 9e89358ac8..cd254a8170 100644
--- a/editor/translations/pt_PT.po
+++ b/editor/translations/pt_PT.po
@@ -6,6 +6,7 @@
# António Sarmento <antonio.luis.sarmento@gmail.com>, 2016.
# Carlos Vieira <carlos.vieira@gmail.com>, 2017.
# João Graça <jgraca95@gmail.com>, 2017.
+# João Lopes <linux-man@hotmail.com>, 2017.
# Miguel Gomes <miggas09@gmail.com>, 2017.
# Pedro Gomes <pedrogomes1698@gmail.com>, 2017.
# Rueben Stevens <supercell03@gmail.com>, 2017.
@@ -15,8 +16,8 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-25 18:50+0000\n"
-"Last-Translator: Carlos Vieira <carlos.vieira@gmail.com>\n"
+"PO-Revision-Date: 2017-12-05 04:49+0000\n"
+"Last-Translator: João Lopes <linux-man@hotmail.com>\n"
"Language-Team: Portuguese (Portugal) <https://hosted.weblate.org/projects/"
"godot-engine/godot/pt_PT/>\n"
"Language: pt_PT\n"
@@ -34,68 +35,70 @@ msgid "All Selection"
msgstr "Toda Selecção"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Mover Adicionar Chave"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Mudar valor da Animação"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
-msgstr "Anim Mudar Transição"
+msgstr "Mudar transição da Animação"
#: editor/animation_editor.cpp
msgid "Anim Change Transform"
-msgstr "Anim Mudar o Transform"
+msgstr "Mudar transformação da Animação"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
-msgstr "Anim Mudar Valor"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
+msgstr "Mudar valor da Animação"
#: editor/animation_editor.cpp
msgid "Anim Change Call"
-msgstr "Anim Mudar Chamada"
+msgstr "Mudar chamada da Animação"
#: editor/animation_editor.cpp
msgid "Anim Add Track"
-msgstr "Anim Adicionar Pista"
+msgstr "Adicionar pista de Animação"
#: editor/animation_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr "Anim Duplicar Chaves"
+msgstr "Duplicar chaves da Animação"
#: editor/animation_editor.cpp
msgid "Move Anim Track Up"
-msgstr "Mover Anim Subir Pista"
+msgstr "Subir pista de Animação"
#: editor/animation_editor.cpp
msgid "Move Anim Track Down"
-msgstr "Mover Anim Descer Pista"
+msgstr "Descer pista de Animação"
#: editor/animation_editor.cpp
msgid "Remove Anim Track"
-msgstr "Remover Anim Pista"
+msgstr "Remover pista de Animação"
#: editor/animation_editor.cpp
msgid "Set Transitions to:"
-msgstr "Definir Transições para:"
+msgstr "Definir transições para:"
#: editor/animation_editor.cpp
msgid "Anim Track Rename"
-msgstr "Anim Renomear Pista"
+msgstr "Renomear pista de Animação"
#: editor/animation_editor.cpp
msgid "Anim Track Change Interpolation"
-msgstr "Anim Pista Mudar Interpolação"
+msgstr "Mudar interpolação da pista de Animação"
#: editor/animation_editor.cpp
msgid "Anim Track Change Value Mode"
-msgstr "Anim Pista Mudar Modo do Valor"
+msgstr "Mudar modo do valor da pista de Animação"
#: editor/animation_editor.cpp
msgid "Anim Track Change Wrap Mode"
-msgstr "Anim Pista Mudar Modo de Embrulho"
+msgstr "Mudar modo de embrulho da pista de Animação"
#: editor/animation_editor.cpp
msgid "Edit Node Curve"
-msgstr "Editar Curva do Node"
+msgstr "Editar curva do Nó"
#: editor/animation_editor.cpp
msgid "Edit Selection Curve"
@@ -103,7 +106,7 @@ msgstr "Editar Curva da Seleção"
#: editor/animation_editor.cpp
msgid "Anim Delete Keys"
-msgstr "Anim Eliminar Chaves"
+msgstr "Eliminar Pontos da Animação"
#: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
@@ -132,11 +135,11 @@ msgstr "Gatilho"
#: editor/animation_editor.cpp
msgid "Anim Add Key"
-msgstr "Anim Adicionar Chave"
+msgstr "Adicionar Pontos de Animação"
#: editor/animation_editor.cpp
msgid "Anim Move Keys"
-msgstr "Anim Mover Chaves"
+msgstr "Mover Pontos de Animação"
#: editor/animation_editor.cpp
msgid "Scale Selection"
@@ -210,39 +213,39 @@ msgstr "Criar"
#: editor/animation_editor.cpp
msgid "Anim Create & Insert"
-msgstr "Anim Criar & Inserir"
+msgstr "Criar e inserir Animação"
#: editor/animation_editor.cpp
msgid "Anim Insert Track & Key"
-msgstr "Anim Inserir Pista & Chave"
+msgstr "Inserir pista e Ponto na Animação"
#: editor/animation_editor.cpp
msgid "Anim Insert Key"
-msgstr "Anim Inserir Chave"
+msgstr "Inserir Ponto de Animação"
#: editor/animation_editor.cpp
msgid "Change Anim Len"
-msgstr "Mudar Duração da Anim"
+msgstr "Mudar duração da Animação"
#: editor/animation_editor.cpp
msgid "Change Anim Loop"
-msgstr "Mudar Laço da Anim"
+msgstr "Mudar ciclo da Animação"
#: editor/animation_editor.cpp
msgid "Anim Create Typed Value Key"
-msgstr "Anim Criar Valor Chave Escrito"
+msgstr "Criar Ponto de valor digitado na Animação"
#: editor/animation_editor.cpp
msgid "Anim Insert"
-msgstr "Anim Inserir"
+msgstr "Inserir Animação"
#: editor/animation_editor.cpp
msgid "Anim Scale Keys"
-msgstr "Anim Escalar Chaves"
+msgstr "Escalar Pontos da Animação"
#: editor/animation_editor.cpp
msgid "Anim Add Call Track"
-msgstr "Anim Adicionar Chamada de Pista"
+msgstr "Adicionar chamada de pista de Animação"
#: editor/animation_editor.cpp
msgid "Animation zoom."
@@ -254,7 +257,7 @@ msgstr "Duração (s):"
#: editor/animation_editor.cpp
msgid "Animation length (in seconds)."
-msgstr "Duração da animação (em segundos)."
+msgstr "Duração da Animação (em segundos)."
#: editor/animation_editor.cpp
msgid "Step (s):"
@@ -262,11 +265,11 @@ msgstr "Passos (s):"
#: editor/animation_editor.cpp
msgid "Cursor step snap (in seconds)."
-msgstr "Passo Rápido do Cursor (em segundos)."
+msgstr "Ajuste do Cursor (em segundos)."
#: editor/animation_editor.cpp
msgid "Enable/Disable looping in animation."
-msgstr "Ativar/Desativar repetição na animação."
+msgstr "Ativar/Desativar repetição na Animação."
#: editor/animation_editor.cpp
msgid "Add new tracks."
@@ -294,7 +297,7 @@ msgstr "Ativar edição de chaves individuais ao clicar nelas."
#: editor/animation_editor.cpp
msgid "Anim. Optimizer"
-msgstr "Optimizador da Animação"
+msgstr "Optimizador de Animações"
#: editor/animation_editor.cpp
msgid "Max. Linear Error:"
@@ -314,7 +317,7 @@ msgstr "Otimizar"
#: editor/animation_editor.cpp
msgid "Select an AnimationPlayer from the Scene Tree to edit animations."
-msgstr "Selecionar um AnimationPlayer da Scene Tree para editar animações."
+msgstr "Selecionar um AnimationPlayer da Scene Tree para editar Animações."
#: editor/animation_editor.cpp
msgid "Key"
@@ -330,7 +333,7 @@ msgstr "Taxa de Escala:"
#: editor/animation_editor.cpp
msgid "Call Functions in Which Node?"
-msgstr "Chamar Funções em Qual Node?"
+msgstr "Chamar funções em que Nó?"
#: editor/animation_editor.cpp
msgid "Remove invalid keys"
@@ -342,11 +345,11 @@ msgstr "Remover pistas vazias ou não resolvidas"
#: editor/animation_editor.cpp
msgid "Clean-up all animations"
-msgstr "Limpar todas as animações"
+msgstr "Limpar todas as Animações"
#: editor/animation_editor.cpp
msgid "Clean-Up Animation(s) (NO UNDO!)"
-msgstr "Limpar animação(ções) (DEFINITIVO!)"
+msgstr "Limpar Animação(ções) (DEFINITIVO!)"
#: editor/animation_editor.cpp
msgid "Clean-Up"
@@ -358,11 +361,11 @@ msgstr "Redimensionar Array"
#: editor/array_property_edit.cpp
msgid "Change Array Value Type"
-msgstr "Alterar tipo de valor do Array"
+msgstr "Mudar tipo de valor do Array"
#: editor/array_property_edit.cpp
msgid "Change Array Value"
-msgstr "Alterar valor do Array"
+msgstr "Mudar valor do Array"
#: editor/code_editor.cpp
msgid "Go to Line"
@@ -425,9 +428,8 @@ msgid "Replace By"
msgstr "Substituir por"
#: editor/code_editor.cpp
-#, fuzzy
msgid "Case Sensitive"
-msgstr "Case Sensitive"
+msgstr "Sensível a maiúsculas"
#: editor/code_editor.cpp
msgid "Backwards"
@@ -435,11 +437,11 @@ msgstr "Para trás"
#: editor/code_editor.cpp
msgid "Prompt On Replace"
-msgstr "Solicitar em substituir"
+msgstr "Perguntar ao substituir"
#: editor/code_editor.cpp
msgid "Skip"
-msgstr "Passar"
+msgstr "Ignorar"
#: editor/code_editor.cpp
msgid "Zoom In"
@@ -447,11 +449,11 @@ msgstr "Zoom In"
#: editor/code_editor.cpp
msgid "Zoom Out"
-msgstr "Zoom out"
+msgstr "Zoom Out"
#: editor/code_editor.cpp
msgid "Reset Zoom"
-msgstr "Reset zoom"
+msgstr "Repor Zoom"
#: editor/code_editor.cpp editor/script_editor_debugger.cpp
msgid "Line:"
@@ -463,19 +465,19 @@ msgstr "Coluna:"
#: editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
-msgstr "Método no Node alvo deve ser especificado!"
+msgstr "Método no Nó alvo deve ser especificado!"
#: editor/connections_dialog.cpp
msgid ""
"Target method not found! Specify a valid method or attach a script to target "
"Node."
msgstr ""
-"Método alvo não encontrado! Especifique um método válido ou anexe um script "
-"ao Node de destino."
+"Método alvo não encontrado! Especifique um Método válido ou anexe um Script "
+"ao Nó de destino."
#: editor/connections_dialog.cpp
msgid "Connect To Node:"
-msgstr "Conectar ao Node:"
+msgstr "Conectar ao Nó:"
#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp
#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
@@ -500,18 +502,17 @@ msgstr "Argumentos de chamada extra:"
#: editor/connections_dialog.cpp
msgid "Path to Node:"
-msgstr "Caminho para Node:"
+msgstr "Caminho para Nó:"
#: editor/connections_dialog.cpp
msgid "Make Function"
-msgstr "Fazer função"
+msgstr "Criar Função"
#: editor/connections_dialog.cpp
msgid "Deferred"
msgstr "Deferido"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Oneshot"
msgstr "Oneshot"
@@ -542,8 +543,9 @@ msgid "Connecting Signal:"
msgstr "Ligar sinal:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Criar subscrição"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Ligar '%s' a '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -559,7 +561,8 @@ msgid "Signals"
msgstr "Sinais"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Criar Novo"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -574,16 +577,15 @@ msgstr "Recente:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Procurar:"
#: editor/create_dialog.cpp editor/editor_help.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
#: editor/quick_open.cpp
-#, fuzzy
msgid "Matches:"
-msgstr "Matches:"
+msgstr "Correspondências:"
#: editor/create_dialog.cpp editor/editor_help.cpp
#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp
@@ -604,8 +606,8 @@ msgid ""
"Scene '%s' is currently being edited.\n"
"Changes will not take effect unless reloaded."
msgstr ""
-"A Cena '%s' esta a ser editada.\n"
-"As alterações não terão efeito ate recarregar."
+"A Cena '%s' está a ser editada.\n"
+"As alterações não terão efeito até recarregar."
#: editor/dependency_editor.cpp
msgid ""
@@ -613,9 +615,10 @@ msgid ""
"Changes will take effect when reloaded."
msgstr ""
"Recurso '%s' em uso.\n"
-"Alterações terão efeito apos reenicio."
+"Alterações terão efeito após reinício."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "Dependências"
@@ -658,7 +661,7 @@ msgstr "Proprietários de:"
#: editor/dependency_editor.cpp
msgid "Remove selected files from the project? (no undo)"
-msgstr "Remover arquivos selecionados do projeto? (sem desfazer)"
+msgstr "Remover arquivos selecionados do Projeto? (sem desfazer)"
#: editor/dependency_editor.cpp
msgid ""
@@ -700,7 +703,7 @@ msgstr "Erros ao carregar!"
#: editor/dependency_editor.cpp
msgid "Permanently delete %d item(s)? (No undo!)"
-msgstr "Eliminar permanentemente o item (ns) %d? (Sem desfazer!)"
+msgstr "Apagar permanentemente %d itens? (Sem desfazer!)"
#: editor/dependency_editor.cpp
msgid "Owns"
@@ -719,20 +722,20 @@ msgid "Delete selected files?"
msgstr "Apagar arquivos selecionados?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
-msgstr "Eliminar"
+msgstr "Apagar"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Key"
-msgstr "Alterar chave de dicionário"
+msgstr "Mudar chave de dicionário"
#: editor/dictionary_property_edit.cpp
-#, fuzzy
msgid "Change Dictionary Value"
-msgstr "Alterar o valor do dicionário"
+msgstr "Mudar o valor do dicionário"
#: editor/editor_about.cpp
msgid "Thanks from the Godot community!"
@@ -748,7 +751,7 @@ msgstr "Contribuidores da engine Godot"
#: editor/editor_about.cpp
msgid "Project Founders"
-msgstr "Fundadores do projeto"
+msgstr "Fundadores do Projeto"
#: editor/editor_about.cpp
msgid "Lead Developer"
@@ -756,7 +759,7 @@ msgstr "Desenvolvedor-chefe"
#: editor/editor_about.cpp editor/project_manager.cpp
msgid "Project Manager"
-msgstr "Gestor de Projecto"
+msgstr "Gestor de Projeto"
#: editor/editor_about.cpp
msgid "Developers"
@@ -809,11 +812,10 @@ msgid ""
"is an exhaustive list of all such thirdparty components with their "
"respective copyright statements and license terms."
msgstr ""
-"O Godot Engine conta com várias bibliotecas de bibliotecas abertas e "
-"gratuitas de terceiros, todas compatíveis com os termos de sua licença MIT. "
-"A lista seguinte, é uma lista exaustiva de todos esses componentes de "
-"terceiros com suas respectivas declarações de direitos autorais e termos de "
-"licença."
+"O Godot Engine conta com várias Bibliotecas abertas e gratuitas de "
+"terceiros, todas compatíveis com os termos da sua licença MIT. A lista "
+"seguinte é uma lista exaustiva de todos esses Componentes de terceiros com "
+"suas respetivas declarações de direitos autorais e termos de licença."
#: editor/editor_about.cpp
msgid "All Components"
@@ -829,11 +831,11 @@ msgstr "Licenças"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Error opening package file, not in zip format."
-msgstr "Error ao abrir ficheiro comprimido, não está no formato zip."
+msgstr "Error ao abrir Ficheiro comprimido, não está no formato zip."
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
-msgstr "Descompactando Activos"
+msgstr "Descompactando Ativos"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Package Installed Successfully!"
@@ -863,23 +865,28 @@ msgstr "Adicionar Efeito"
#: editor/editor_audio_buses.cpp
msgid "Rename Audio Bus"
-msgstr "Alterar Barramento de Ãudio"
+msgstr "Mudar Barramento de Ãudio"
+
+#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Alternar solo do canal áudio"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
-msgstr ""
+msgstr "Alternar solo do canal áudio"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Mute"
-msgstr ""
+msgstr "Alternar silêncio do canal áudio"
#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Bypass Effects"
-msgstr ""
+msgstr "Alternar efeitos do canal áudio"
#: editor/editor_audio_buses.cpp
msgid "Select Audio Bus Send"
-msgstr ""
+msgstr "Selecionar envio do canal áudio"
#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus Effect"
@@ -895,7 +902,7 @@ msgstr "Apagar Efeito de Barramento"
#: editor/editor_audio_buses.cpp
msgid "Audio Bus, Drag and Drop to rearrange."
-msgstr ""
+msgstr "Canal áudio, arrastar e largar para reorganizar."
#: editor/editor_audio_buses.cpp
msgid "Solo"
@@ -913,8 +920,8 @@ msgstr "Ignorar"
msgid "Bus options"
msgstr "Opções de barramento"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Duplicado"
@@ -927,6 +934,10 @@ msgid "Delete Effect"
msgstr "Apagar Efeito"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "Adicionar Barramento de Ãudio"
@@ -964,11 +975,11 @@ msgstr "Abrir Modelo de Barramento de Ãudio"
#: editor/editor_audio_buses.cpp
msgid "There is no 'res://default_bus_layout.tres' file."
-msgstr "O ficheiro 'res://default_bus_layout.tres' não existe."
+msgstr "O Ficheiro 'res://default_bus_layout.tres' não existe."
#: editor/editor_audio_buses.cpp
msgid "Invalid file, not an audio bus layout."
-msgstr "Ficheiro inválido, não é um modelo válido de barramento de áudio."
+msgstr "Ficheiro inválido, não é um Modelo válido de barramento de áudio."
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
@@ -994,7 +1005,7 @@ msgstr "Guardar Como"
#: editor/editor_audio_buses.cpp
msgid "Save this Bus Layout to a file."
-msgstr "Guardar este Modelo de Barramento para um ficheiro."
+msgstr "Guardar este Modelo de Barramento para um Ficheiro."
#: editor/editor_audio_buses.cpp editor/import_dock.cpp
msgid "Load Default"
@@ -1002,7 +1013,7 @@ msgstr "Carregar Padrão"
#: editor/editor_audio_buses.cpp
msgid "Load the default Bus Layout."
-msgstr "Carregar o Modelo padrão de Barramento."
+msgstr "Carregar o Modelo padrão de barramento."
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
@@ -1010,12 +1021,12 @@ msgstr "Nome inválido."
#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
-msgstr "Caracteres válidos:"
+msgstr "Carateres válidos:"
#: editor/editor_autoload_settings.cpp
msgid "Invalid name. Must not collide with an existing engine class name."
msgstr ""
-"Nome inválido. Não pode coincidir com um nome de uma classe do motor, já "
+"Nome inválido. Não pode coincidir com um nome de classe do motor já "
"existente."
#: editor/editor_autoload_settings.cpp
@@ -1032,15 +1043,15 @@ msgstr ""
#: editor/editor_autoload_settings.cpp
msgid "Invalid Path."
-msgstr "Caminho Inválido."
+msgstr "Caminho inválido."
#: editor/editor_autoload_settings.cpp
msgid "File does not exist."
-msgstr "O ficheiro não existe."
+msgstr "O Ficheiro não existe."
#: editor/editor_autoload_settings.cpp
msgid "Not in resource path."
-msgstr "Não está no caminho do recurso."
+msgstr "Não está no Caminho do recurso."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
@@ -1056,7 +1067,7 @@ msgstr "Renomear Carregamento Automático"
#: editor/editor_autoload_settings.cpp
msgid "Toggle AutoLoad Globals"
-msgstr ""
+msgstr "Alternar Globals de carregamento automático"
#: editor/editor_autoload_settings.cpp
msgid "Move Autoload"
@@ -1083,22 +1094,18 @@ msgstr "Caminho:"
msgid "Node Name:"
msgstr "Nome do Nó:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Nome"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Singleton"
-msgstr "Filho Único"
-
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Lista:"
+msgstr "Instância única"
#: editor/editor_data.cpp
msgid "Updating Scene"
-msgstr "Actualizando a Cena"
+msgstr "Atualizando a Cena"
#: editor/editor_data.cpp
msgid "Storing local changes.."
@@ -1106,20 +1113,29 @@ msgstr "Armazenando alterações locais.."
#: editor/editor_data.cpp
msgid "Updating scene.."
-msgstr "Actualizando a cena.."
+msgstr "Atualizando a Cena.."
+
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(vazio)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
-msgstr "Por favor, seleccione a directoria base primeiro"
+msgstr "Por favor, selecione a diretoria base primeiro"
#: editor/editor_dir_dialog.cpp
msgid "Choose a Directory"
-msgstr "Escolha uma Directoria"
+msgstr "Escolha uma Diretoria"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
msgid "Create Folder"
-msgstr "Criar Pasta/Directoria"
+msgstr "Criar Pasta/Diretoria"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
@@ -1147,16 +1163,31 @@ msgstr "Empacotamento"
#: editor/editor_export.cpp platform/javascript/export/export.cpp
msgid "Template file not found:\n"
-msgstr "Ficheiro modelo não encontrado:\n"
+msgstr "Ficheiro Modelo não encontrado:\n"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File Exists, Overwrite?"
-msgstr "O ficheiro existe, sobrescrever?"
+msgstr "O Ficheiro existe, sobrescrever?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "Criar Pasta/Directoria"
+msgstr "Selecionar pasta atual"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Copiar Caminho"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Mostrar no Gestor de Ficheiros"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Nova Diretoria.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Atualizar"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1176,11 +1207,11 @@ msgstr "Abrir Ficheiro(s)"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a Directory"
-msgstr "Abrir uma Directoria"
+msgstr "Abrir uma Diretoria"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a File or Directory"
-msgstr "Abrir um Ficheiro ou Directoria"
+msgstr "Abrir um Ficheiro ou Diretoria"
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
@@ -1205,24 +1236,20 @@ msgid "Go Up"
msgstr "Subir"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Actualizar"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
-msgstr ""
+msgstr "Alternar Ficheiros escondidos"
#: editor/editor_file_dialog.cpp
msgid "Toggle Favorite"
-msgstr ""
+msgstr "Alternar favorito"
#: editor/editor_file_dialog.cpp
msgid "Toggle Mode"
-msgstr ""
+msgstr "Alternar modo"
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
-msgstr ""
+msgstr "Focar Caminho"
#: editor/editor_file_dialog.cpp
msgid "Move Favorite Up"
@@ -1238,7 +1265,7 @@ msgstr "Ir para a pasta acima"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Directories & Files:"
-msgstr "Directorias e Ficheiros:"
+msgstr "Diretorias e Ficheiros:"
#: editor/editor_file_dialog.cpp
msgid "Preview:"
@@ -1255,11 +1282,11 @@ msgstr "Deve usar uma extensão válida."
#: editor/editor_file_system.cpp
msgid "ScanSources"
-msgstr ""
+msgstr "Analisar fontes"
#: editor/editor_file_system.cpp
msgid "(Re)Importing Assets"
-msgstr "Importar Activos"
+msgstr "Importar Ativos"
#: editor/editor_help.cpp editor/editor_node.cpp
#: editor/plugins/script_editor_plugin.cpp
@@ -1312,11 +1339,11 @@ msgstr "Métodos Públicos:"
#: editor/editor_help.cpp
msgid "GUI Theme Items"
-msgstr ""
+msgstr "Itens do tema GUI"
#: editor/editor_help.cpp
msgid "GUI Theme Items:"
-msgstr ""
+msgstr "Itens do tema GUI:"
#: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp
msgid "Signals:"
@@ -1359,7 +1386,7 @@ msgid ""
"There is currently no description for this property. Please help us by "
"[color=$color][url=$url]contributing one[/url][/color]!"
msgstr ""
-"Actualmente não existe descrição para esta propriedade. Por favor ajude-nos "
+"Atualmente não existe descrição para esta Propriedade. Por favor ajude-nos "
"[color=$color][url=$url]contribuindo com uma[/url][/color]!"
#: editor/editor_help.cpp
@@ -1375,8 +1402,8 @@ msgid ""
"There is currently no description for this method. Please help us by [color="
"$color][url=$url]contributing one[/url][/color]!"
msgstr ""
-"Actualmente não existe descrição para este método. Por favor ajude-nos "
-"[color=$color][url=$url]contribuindo com uma[/url][/color]!"
+"Atualmente não existe descrição para este Método. Por favor ajude-nos [color="
+"$color][url=$url]contribuindo com uma[/url][/color]!"
#: editor/editor_help.cpp
msgid "Search Text"
@@ -1388,7 +1415,8 @@ msgstr "Saída:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "Limpar"
@@ -1407,11 +1435,11 @@ msgstr "Eu vejo.."
#: editor/editor_node.cpp
msgid "Can't open file for writing:"
-msgstr "Não é possível abrir o ficheiro para escrita:"
+msgstr "Impossível abrir o Ficheiro para escrita:"
#: editor/editor_node.cpp
msgid "Requested file format unknown:"
-msgstr "Formato do ficheiro solicitado desconhecido:"
+msgstr "Formato do Ficheiro solicitado desconhecido:"
#: editor/editor_node.cpp
msgid "Error while saving."
@@ -1419,16 +1447,15 @@ msgstr "Erro ao guardar."
#: editor/editor_node.cpp
msgid "Can't open '%s'."
-msgstr "Não foi possível abrir '%s'."
+msgstr "Impossível abrir '%s'."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Error while parsing '%s'."
msgstr "Erro ao analisar '%s'."
#: editor/editor_node.cpp
msgid "Unexpected end of file '%s'."
-msgstr "Fim de ficheiro '%s' inesperado."
+msgstr "Fim de Ficheiro '%s' inesperado."
#: editor/editor_node.cpp
msgid "Missing '%s' or its dependencies."
@@ -1458,7 +1485,7 @@ msgstr "Esta operação não pode ser feita sem uma raiz da árvore."
msgid ""
"Couldn't save scene. Likely dependencies (instances) couldn't be satisfied."
msgstr ""
-"Não foi possível guardar cena. Provavelmente, as dependências (instâncias) "
+"Não foi possível guardar Cena. Provavelmente, as dependências (instâncias) "
"não puderam ser satisfeitas."
#: editor/editor_node.cpp
@@ -1467,7 +1494,7 @@ msgstr "Falha ao carregar recurso."
#: editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
-msgstr "Não foi possível carregar MeshLibrary para fundir!"
+msgstr "Impossível carregar MeshLibrary para fundir!"
#: editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
@@ -1475,7 +1502,7 @@ msgstr "Erro ao guardar MeshLibrary!"
#: editor/editor_node.cpp
msgid "Can't load TileSet for merging!"
-msgstr "Não foi possível carregar TileSet para fundir!"
+msgstr "Impossível carregar TileSet para fundir!"
#: editor/editor_node.cpp
msgid "Error saving TileSet!"
@@ -1483,15 +1510,15 @@ msgstr "Erro ao guardar TileSet!"
#: editor/editor_node.cpp
msgid "Error trying to save layout!"
-msgstr "Erro ao tentar guardar o modelo!"
+msgstr "Erro ao tentar guardar o Modelo!"
#: editor/editor_node.cpp
msgid "Default editor layout overridden."
-msgstr "O modelo do editor padrão foi substituído."
+msgstr "O Modelo do Editor padrão foi substituído."
#: editor/editor_node.cpp
msgid "Layout name not found!"
-msgstr "Nome do modelo não encontrado!"
+msgstr "Nome do Modelo não encontrado!"
#: editor/editor_node.cpp
msgid "Restored default layout to base settings."
@@ -1503,9 +1530,9 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
-"Este recurso pertence a uma cena que foi importado, portanto, não é "
+"Este recurso pertence a uma Cena que foi importado, portanto, não é "
"editável.\n"
-"Por favor, leia a documentação relevante sobre importação de cenas, para um "
+"Por favor, leia a documentação relevante sobre importação de Cenas, para um "
"melhor entendimento deste fluxo de trabalho."
#: editor/editor_node.cpp
@@ -1513,8 +1540,8 @@ msgid ""
"This resource belongs to a scene that was instanced or inherited.\n"
"Changes to it will not be kept when saving the current scene."
msgstr ""
-"Este recurso pertence a uma cena que foi instanciada ou herdada.\n"
-"As alterações ao mesmo não serão mantidas, ao guardar a cena actual."
+"Este recurso pertence a uma Cena que foi instanciada ou herdada.\n"
+"As alterações ao mesmo não serão mantidas, ao guardar a Cena atual."
#: editor/editor_node.cpp
msgid ""
@@ -1531,10 +1558,10 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
-"Esta cena foi importada, portanto, as alterações à mesma não serão "
+"Esta Cena foi importada, portanto, as alterações à mesma não serão "
"mantidas.\n"
-"Instanciando-a ou herdando-a vai permitir efectuar alterções à mesma.\n"
-"Por favor, leia a documentação relevante sobre importação de cenas, para um "
+"Instanciando-a ou herdando-a vai permitir efetuar alterções à mesma.\n"
+"Por favor, leia a documentação relevante sobre importação de Cenas, para um "
"melhor entendimento do fluxo de trabalho."
#: editor/editor_node.cpp
@@ -1543,20 +1570,18 @@ msgid ""
"Please read the documentation relevant to debugging to better understand "
"this workflow."
msgstr ""
-"Este é um objecto remoto, portanto, as alterações ao mesmo não serão "
+"Este é um Objeto remoto, portanto, as alterações ao mesmo não serão "
"mantidas.\n"
"Por favor, leia a documentação relevante sobre depuração para um melhor "
"entendimento deste fluxo de trabalho."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand all properties"
msgstr "Expandir tudo"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Collapse all properties"
-msgstr "Colapsar tudo"
+msgstr "Colapsar todas as Propriedades"
#: editor/editor_node.cpp
msgid "Copy Params"
@@ -1575,9 +1600,8 @@ msgid "Copy Resource"
msgstr "Copiar Recurso"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Make Built-In"
-msgstr "Tornar Embutido"
+msgstr "Tornar incorporado"
#: editor/editor_node.cpp
msgid "Make Sub-Resources Unique"
@@ -1589,7 +1613,7 @@ msgstr "Abrir em Ajuda"
#: editor/editor_node.cpp
msgid "There is no defined scene to run."
-msgstr "Não existe nenhuma cena definida para executar."
+msgstr "Não existe nenhuma Cena definida para executar."
#: editor/editor_node.cpp
msgid ""
@@ -1597,8 +1621,8 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
-"Não foi definida nenhuma cena principal. Seleccionar uma?\n"
-"Poderá alterá-la depois nas \"Definições de Projecto\", na categoria "
+"Não foi definida nenhuma Cena principal. Selecionar uma?\n"
+"Poderá alterá-la depois nas \"Definições do Projeto\", na categoria "
"'aplicação'."
#: editor/editor_node.cpp
@@ -1607,8 +1631,8 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
-"A cena seleccionada '%s' não existe, seleccionar uma válida?\n"
-"Poderá alterá-la depois em \"Configurações de Projecto\", na categoria de "
+"A Cena selecionada '%s' não existe, selecionar uma válida?\n"
+"Poderá alterá-la depois em \"Configurações de Projeto\", na categoria de "
"'aplicação'."
#: editor/editor_node.cpp
@@ -1617,15 +1641,14 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
-"A cena seleccionada '%s' não é um ficheiro de cena, seleccionar um ficheiro "
+"A Cena selecionada '%s' não é um Ficheiro de Cena, selecione um Ficheiro "
"válido?\n"
-"Poderá alterá-la depois em \"Configurações de Projecto\", na categoria de "
+"Poderá alterá-la depois em \"Configurações de Projeto\", na categoria "
"'aplicação'."
#: editor/editor_node.cpp
msgid "Current scene was never saved, please save it prior to running."
-msgstr ""
-"A cena actual nunca foi guardada, por favor guarde-a antes de executar."
+msgstr "A Cena atual nunca foi guardada, por favor guarde-a antes de executar."
#: editor/editor_node.cpp
msgid "Could not start subprocess!"
@@ -1669,11 +1692,11 @@ msgstr "Sim"
#: editor/editor_node.cpp
msgid "This scene has never been saved. Save before running?"
-msgstr "Esta cena nunca foi guardada. Guardar antes de executar?"
+msgstr "Esta Cena nunca foi guardada. Guardar antes de executar?"
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "This operation can't be done without a scene."
-msgstr "Esta operação não pode ser efectuada sem uma cena."
+msgstr "Esta operação não pode ser efetuada sem uma Cena."
#: editor/editor_node.cpp
msgid "Export Mesh Library"
@@ -1681,23 +1704,23 @@ msgstr "Exportar Biblioteca de Mesh"
#: editor/editor_node.cpp
msgid "This operation can't be done without a root node."
-msgstr "Esta operação não pode ser efectuada sem um nó raíz."
+msgstr "Esta operação não pode ser efetuada sem um Nó raiz."
#: editor/editor_node.cpp
msgid "Export Tile Set"
-msgstr "Exportar Tile Set"
+msgstr "Exportar conjunto de tiles"
#: editor/editor_node.cpp
msgid "This operation can't be done without a selected node."
-msgstr "Esta operação não pode ser efectuada sem um nó seleccionado."
+msgstr "Esta operação não pode ser efetuada sem um Nó selecionado."
#: editor/editor_node.cpp
msgid "Current scene not saved. Open anyway?"
-msgstr "A cena actual não foi guardada. Abrir na mesma?"
+msgstr "A Cena atual não foi guardada. Abrir na mesma?"
#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
-msgstr "Não é possível recarregar uma cena que nunca foi guardada."
+msgstr "Impossível recarregar uma Cena que nunca foi guardada."
#: editor/editor_node.cpp
msgid "Revert"
@@ -1717,11 +1740,11 @@ msgstr "Sair"
#: editor/editor_node.cpp
msgid "Exit the editor?"
-msgstr "Sair do editor?"
+msgstr "Sair do Editor?"
#: editor/editor_node.cpp
msgid "Open Project Manager?"
-msgstr "Abrir Gestor de Projecto?"
+msgstr "Abrir Gestor de Projeto?"
#: editor/editor_node.cpp
msgid "Save & Quit"
@@ -1729,20 +1752,20 @@ msgstr "Guardar & Sair"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before quitting?"
-msgstr "Guardar alterações da(s) seguinte(s) cena(s) antes de sair?"
+msgstr "Guardar alterações da(s) seguinte(s) Cena(s) antes de sair?"
#: editor/editor_node.cpp
msgid "Save changes the following scene(s) before opening Project Manager?"
msgstr ""
-"Guardar alterações da(s) seguinte(s) cena(s) antes de abrir o Gestor de "
-"Projecto?"
+"Guardar alterações da(s) seguinte(s) Cena(s) antes de abrir o Gestor de "
+"Projeto?"
#: editor/editor_node.cpp
msgid ""
"This option is deprecated. Situations where refresh must be forced are now "
"considered a bug. Please report."
msgstr ""
-"Esta opção foi descontinuada. Situações onde a actualização tem que ser "
+"Esta opção foi descontinuada. Situações onde a atualização tem que ser "
"forçada, são agora consideras um defeito. Por favor, reporte."
#: editor/editor_node.cpp
@@ -1751,30 +1774,36 @@ msgstr "Escolha a Cena Principal"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
-msgstr ""
+msgstr "Incapaz de ativar plugin em: '%s' falha de análise ou configuração."
#: editor/editor_node.cpp
msgid "Unable to find script field for addon plugin at: 'res://addons/%s'."
-msgstr ""
+msgstr "Incapaz de encontrar campo Script para plugin em: 'res://addons/%s'."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s'."
-msgstr ""
+msgstr "Incapaz de carregar Script addon do Caminho: '%s'."
#: editor/editor_node.cpp
msgid ""
"Unable to load addon script from path: '%s' Base type is not EditorPlugin."
msgstr ""
+"Incapaz de carregar Script addon do Caminho: '%s' Tipo base não é "
+"EditorPlugin."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
msgstr ""
+"Incapaz de carregar Script addon do Caminho: '%s' Script não está no modo "
+"ferramenta."
#: editor/editor_node.cpp
msgid ""
"Scene '%s' was automatically imported, so it can't be modified.\n"
"To make changes to it, a new inherited scene can be created."
msgstr ""
+"Cena '%s' foi importada automaticamente, não podendo ser alterada.\n"
+"Para fazer alterações, pode ser criada uma nova Cena herdada."
#: editor/editor_node.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -1786,6 +1815,8 @@ msgid ""
"Error loading scene, it must be inside the project path. Use 'Import' to "
"open the scene, then save it inside the project path."
msgstr ""
+"Erro ao carregar a Cena, tem de estar no Caminho do Projeto. Use 'Importar' "
+"para abrir a Cena, e guarde-a dentro do Caminho do Projeto."
#: editor/editor_node.cpp
msgid "Scene '%s' has broken dependencies:"
@@ -1806,7 +1837,7 @@ msgstr "Apagar Modelo"
#: editor/editor_node.cpp editor/import_dock.cpp
#: editor/script_create_dialog.cpp
msgid "Default"
-msgstr "Por defeito"
+msgstr "Padrão"
#: editor/editor_node.cpp
msgid "Switch Scene Tab"
@@ -1814,15 +1845,15 @@ msgstr "Trocar Tab de Cena"
#: editor/editor_node.cpp
msgid "%d more files or folders"
-msgstr "%d mais ficheiros ou directorias"
+msgstr "%d mais Ficheiros ou diretorias"
#: editor/editor_node.cpp
msgid "%d more folders"
-msgstr "%d mais directorias"
+msgstr "%d mais diretorias"
#: editor/editor_node.cpp
msgid "%d more files"
-msgstr "%d mais ficheiros"
+msgstr "%d mais Ficheiros"
#: editor/editor_node.cpp
msgid "Dock Position"
@@ -1830,16 +1861,15 @@ msgstr "Posição do Painel"
#: editor/editor_node.cpp
msgid "Distraction Free Mode"
-msgstr ""
+msgstr "Modo livre de distrações"
#: editor/editor_node.cpp
msgid "Toggle distraction-free mode."
-msgstr ""
+msgstr "Alternar modo livre de distrações."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Add a new scene."
-msgstr "Adicionar novas bandas."
+msgstr "Adicionar nova Cena."
#: editor/editor_node.cpp
msgid "Scene"
@@ -1847,7 +1877,7 @@ msgstr "Cena"
#: editor/editor_node.cpp
msgid "Go to previously opened scene."
-msgstr "Ir para cena aberta anteriormente."
+msgstr "Ir para Cena aberta anteriormente."
#: editor/editor_node.cpp
msgid "Next tab"
@@ -1863,7 +1893,7 @@ msgstr "Filtrar Ficheiro.."
#: editor/editor_node.cpp
msgid "Operations with scene files."
-msgstr "Operações com ficheiros de cena."
+msgstr "Operações com Ficheiros de Cena."
#: editor/editor_node.cpp
msgid "New Scene"
@@ -1921,15 +1951,15 @@ msgstr "Reverter Cena"
#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
-msgstr "Ferramentas diversas atuantes no projeto ou cena."
+msgstr "Ferramentas diversas atuantes no Projeto ou Cena."
#: editor/editor_node.cpp
msgid "Project"
-msgstr "Projecto"
+msgstr "Projeto"
#: editor/editor_node.cpp
msgid "Project Settings"
-msgstr "Configurações de Projecto"
+msgstr "Configurações de Projeto"
#: editor/editor_node.cpp
msgid "Run Script"
@@ -1945,7 +1975,7 @@ msgstr "Ferramentas"
#: editor/editor_node.cpp
msgid "Quit to Project List"
-msgstr "Sair para a lista de Projectos"
+msgstr "Sair para a lista de Projetos"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Debug"
@@ -1960,10 +1990,12 @@ msgid ""
"When exporting or deploying, the resulting executable will attempt to "
"connect to the IP of this computer in order to be debugged."
msgstr ""
+"Ao exportar ou distribuir, o executável vai tentar ligar-se ao IP deste "
+"computador para depuração."
#: editor/editor_node.cpp
msgid "Small Deploy with Network FS"
-msgstr ""
+msgstr "Pequena distribuição com Network FS"
#: editor/editor_node.cpp
msgid ""
@@ -1974,6 +2006,11 @@ msgid ""
"On Android, deploy will use the USB cable for faster performance. This "
"option speeds up testing for games with a large footprint."
msgstr ""
+"Quando esta opção está ativa, exportação ou distribuição criará um "
+"executável mínimo.\n"
+"O Sistema de Ficheiros será fornecido ao Projeto pelo Editor sobre a rede.\n"
+"Em Android, a distribuição irá usar a ligação USB para melhor performance. "
+"Esta opção acelera o teste de jogos pesados."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
@@ -1984,6 +2021,8 @@ msgid ""
"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
"running game if this option is turned on."
msgstr ""
+"Com esta opção ativada, formas de colisão e Nós raycast (para 2D e 3D) "
+"serão visíveis no jogo em execução."
#: editor/editor_node.cpp
msgid "Visible Navigation"
@@ -1994,6 +2033,7 @@ msgid ""
"Navigation meshes and polygons will be visible on the running game if this "
"option is turned on."
msgstr ""
+"Com esta opção ativa, Meshes e Polígonos serão visíveis no jogo em execução."
#: editor/editor_node.cpp
msgid "Sync Scene Changes"
@@ -2006,6 +2046,10 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
+"Com esta opção ativa, alterações da Cena no Editor serão replicadas no jogo "
+"em execução.\n"
+"Quando usada num dispositivo remoto, é mais eficiente com um Sistema de "
+"Ficheiros em rede."
#: editor/editor_node.cpp
msgid "Sync Script Changes"
@@ -2018,11 +2062,14 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
+"Com esta opção ativa, qualquer Script guardado será recarregado no jogo em "
+"execução.\n"
+"Quando usada num dispositivo remoto, é mais eficiente com um Sistema de "
+"Ficheiros em rede."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Editor"
-msgstr "Editar"
+msgstr "Editor"
#: editor/editor_node.cpp editor/settings_config_dialog.cpp
msgid "Editor Settings"
@@ -2034,7 +2081,7 @@ msgstr "Apresentação do Editor"
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr ""
+msgstr "Alternar ecrã completo"
#: editor/editor_node.cpp editor/project_export.cpp
msgid "Manage Export Templates"
@@ -2070,7 +2117,7 @@ msgstr "Sobre"
#: editor/editor_node.cpp
msgid "Play the project."
-msgstr "Executar o projecto."
+msgstr "Executar o projeto."
#: editor/editor_node.cpp
msgid "Play"
@@ -2078,7 +2125,7 @@ msgstr "Executar"
#: editor/editor_node.cpp
msgid "Pause the scene"
-msgstr "Pausar a cena"
+msgstr "Pausar a Cena"
#: editor/editor_node.cpp
msgid "Pause Scene"
@@ -2086,7 +2133,7 @@ msgstr "Pausar a Cena"
#: editor/editor_node.cpp
msgid "Stop the scene."
-msgstr "Para a cena."
+msgstr "Para a Cena."
#: editor/editor_node.cpp
msgid "Stop"
@@ -2094,7 +2141,7 @@ msgstr "Parar"
#: editor/editor_node.cpp
msgid "Play the edited scene."
-msgstr "Executar a cena editada."
+msgstr "Executar a Cena editada."
#: editor/editor_node.cpp
msgid "Play Scene"
@@ -2102,7 +2149,7 @@ msgstr "Executar a Cena"
#: editor/editor_node.cpp
msgid "Play custom scene"
-msgstr "Executar a cena customizada"
+msgstr "Executar a Cena customizada"
#: editor/editor_node.cpp
msgid "Play Custom Scene"
@@ -2110,23 +2157,23 @@ msgstr "Executar Cena Customizada"
#: editor/editor_node.cpp
msgid "Spins when the editor window repaints!"
-msgstr ""
+msgstr "Roda quando a janela do Editor atualiza!"
#: editor/editor_node.cpp
msgid "Update Always"
-msgstr "Actualizar Sempre"
+msgstr "Atualizar Sempre"
#: editor/editor_node.cpp
msgid "Update Changes"
-msgstr "Actualizar Alterações"
+msgstr "Atualizar Alterações"
#: editor/editor_node.cpp
msgid "Disable Update Spinner"
-msgstr ""
+msgstr "Desativar a roleta de atualização"
#: editor/editor_node.cpp
msgid "Inspector"
-msgstr "Inspector"
+msgstr "Inspetor"
#: editor/editor_node.cpp
msgid "Create a new resource in memory and edit it."
@@ -2146,19 +2193,19 @@ msgstr "Guardar Como.."
#: editor/editor_node.cpp
msgid "Go to the previous edited object in history."
-msgstr "Ir para o objecto editado anteriormente no histórico."
+msgstr "Ir para o Objeto editado anteriormente no histórico."
#: editor/editor_node.cpp
msgid "Go to the next edited object in history."
-msgstr "Ir para o próximo objecto editado no histórico."
+msgstr "Ir para o próximo Objeto editado no histórico."
#: editor/editor_node.cpp
msgid "History of recently edited objects."
-msgstr "Histórico de objectos recentemente editados."
+msgstr "Histórico de Objetos recentemente editados."
#: editor/editor_node.cpp
msgid "Object properties."
-msgstr "Propriedades do objecto."
+msgstr "Propriedades do Objeto."
#: editor/editor_node.cpp
msgid "Changes may be lost!"
@@ -2187,11 +2234,11 @@ msgstr "Não Guardar"
#: editor/editor_node.cpp
msgid "Import Templates From ZIP File"
-msgstr "Importar Modelos a partir de um ficheiro ZIP"
+msgstr "Importar Modelos a partir de um Ficheiro ZIP"
#: editor/editor_node.cpp editor/project_export.cpp
msgid "Export Project"
-msgstr "Exportar Projecto"
+msgstr "Exportar Projeto"
#: editor/editor_node.cpp
msgid "Export Library"
@@ -2219,7 +2266,7 @@ msgstr "Carregar Erros"
#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp
msgid "Select"
-msgstr "Seleccionar"
+msgstr "Selecionar"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
@@ -2235,7 +2282,7 @@ msgstr "Abrir Editor de Scripts"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
-msgstr "Abrir Biblioteca de Activos"
+msgstr "Abrir Biblioteca de Ativos"
#: editor/editor_node.cpp
msgid "Open the next Editor"
@@ -2247,7 +2294,7 @@ msgstr "Abrir o Editor anterior"
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
-msgstr ""
+msgstr "A criar pré-visualizações de Mesh"
#: editor/editor_plugin.cpp
msgid "Thumbnail.."
@@ -2259,7 +2306,7 @@ msgstr "Plugins Instalados:"
#: editor/editor_plugin_settings.cpp
msgid "Update"
-msgstr "Actualizar"
+msgstr "Atualizar"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -2276,11 +2323,11 @@ msgstr "Estado:"
#: editor/editor_profiler.cpp
msgid "Stop Profiling"
-msgstr ""
+msgstr "Parar análise"
#: editor/editor_profiler.cpp
msgid "Start Profiling"
-msgstr ""
+msgstr "Começar análise"
#: editor/editor_profiler.cpp
msgid "Measure:"
@@ -2318,27 +2365,39 @@ msgstr "Auto"
msgid "Frame #:"
msgstr "# quadro:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Tempo:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Chamar"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
-msgstr "Seleccionar dispositivo da lista"
+msgstr "Selecionar dispositivo da lista"
#: editor/editor_run_native.cpp
msgid ""
"No runnable export preset found for this platform.\n"
"Please add a runnable preset in the export menu."
msgstr ""
+"Não foi encontrado um executável de exportação para esta plataforma.\n"
+"Adicione um executável pré-definido no menu de exportação."
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
-msgstr "Escreva a sua lógica no método _run()."
+msgstr "Escreva a sua lógica no Método _run()."
#: editor/editor_run_script.cpp
msgid "There is an edited scene already."
-msgstr "Já existe uma cena editada."
+msgstr "Já existe uma Cena editada."
#: editor/editor_run_script.cpp
msgid "Couldn't instance script:"
-msgstr "Não foi possível instanciar o script:"
+msgstr "Não foi possível instanciar o Script:"
#: editor/editor_run_script.cpp
msgid "Did you forget the 'tool' keyword?"
@@ -2346,7 +2405,7 @@ msgstr "Esqueceu-se da palavra chave 'tool'?"
#: editor/editor_run_script.cpp
msgid "Couldn't run script:"
-msgstr "Não foi possível executar o script:"
+msgstr "Não foi possível executar o Script:"
#: editor/editor_run_script.cpp
msgid "Did you forget the '_run' method?"
@@ -2354,11 +2413,11 @@ msgstr "Esqueceu-se do médodo '_run'?"
#: editor/editor_settings.cpp
msgid "Default (Same as Editor)"
-msgstr "Por defeito (Mesmo que o Editor)"
+msgstr "Padrão (mesmo que o Editor)"
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
-msgstr "Seleccionar Nó(s) para Importar"
+msgstr "Selecionar Nó(s) para importar"
#: editor/editor_sub_scene.cpp
msgid "Scene Path:"
@@ -2370,7 +2429,7 @@ msgstr "Importar do Nó:"
#: editor/export_template_manager.cpp
msgid "Re-Download"
-msgstr ""
+msgstr "Transferir novamente"
#: editor/export_template_manager.cpp
msgid "Uninstall"
@@ -2390,39 +2449,39 @@ msgstr "(Em Falta)"
#: editor/export_template_manager.cpp
msgid "(Current)"
-msgstr "(Actual)"
+msgstr "(Atual)"
#: editor/export_template_manager.cpp
msgid "Retrieving mirrors, please wait.."
-msgstr ""
+msgstr "A readquirir servidores, espere por favor..."
#: editor/export_template_manager.cpp
msgid "Remove template version '%s'?"
-msgstr "Remover versão de modelo '%s'?"
+msgstr "Remover versão de Modelo '%s'?"
#: editor/export_template_manager.cpp
msgid "Can't open export templates zip."
-msgstr "Não foi possível abrir o zip de modelos."
+msgstr "Impossível abrir o zip de Modelos."
#: editor/export_template_manager.cpp
msgid "Invalid version.txt format inside templates."
-msgstr "Formato de version.txt inválido, dentro dos modelos."
+msgstr "Formato de version.txt inválido, dentro dos Modelos."
#: editor/export_template_manager.cpp
msgid ""
"Invalid version.txt format inside templates. Revision is not a valid "
"identifier."
msgstr ""
-"Formato de version.txt inválido, dentro dos modelos. Revisão não é um "
+"Formato de version.txt inválido, dentro dos Modelos. Revisão não é um "
"identificador válido."
#: editor/export_template_manager.cpp
msgid "No version.txt found inside templates."
-msgstr "Não foi encontrado version.txt dentro dos modelos."
+msgstr "Não foi encontrado version.txt dentro dos Modelos."
#: editor/export_template_manager.cpp
msgid "Error creating path for templates:\n"
-msgstr "Erro ao criar o caminho para os modelos:\n"
+msgstr "Erro ao criar o Caminho para os Modelos:\n"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
@@ -2438,17 +2497,17 @@ msgid ""
"for official releases."
msgstr ""
"Não foram encontrados ligações para download para esta versão. Download "
-"directo está apenas disponível para os lançamentos oficiais."
+"direto está apenas disponível para os lançamentos oficiais."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve."
-msgstr "Não foi possível resolver."
+msgstr "Impossível resolver."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't connect."
-msgstr "Não foi possível conectar."
+msgstr "Impossível conectar."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -2457,13 +2516,14 @@ msgstr "Sem resposta."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "Pedido falhado."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Redirect Loop."
-msgstr ""
+msgstr "Redirecionar ciclo."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -2472,7 +2532,7 @@ msgstr "Falhou:"
#: editor/export_template_manager.cpp
msgid "Can't write file."
-msgstr "Não foi possível escrever o ficheiro."
+msgstr "Impossível escrever o Ficheiro."
#: editor/export_template_manager.cpp
msgid "Download Complete."
@@ -2480,16 +2540,15 @@ msgstr "Download Completo."
#: editor/export_template_manager.cpp
msgid "Error requesting url: "
-msgstr ""
+msgstr "Erro ao solicitar url: "
#: editor/export_template_manager.cpp
msgid "Connecting to Mirror.."
-msgstr ""
+msgstr "A ligar ao servidor..."
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Disconnected"
-msgstr "Discreto"
+msgstr "Desconectado"
#: editor/export_template_manager.cpp
msgid "Resolving"
@@ -2497,7 +2556,7 @@ msgstr "A resolver"
#: editor/export_template_manager.cpp
msgid "Can't Resolve"
-msgstr "Não foi possível resolver"
+msgstr "Impossível resolver"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -2505,8 +2564,9 @@ msgid "Connecting.."
msgstr "A ligar.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
-msgstr "Nºao foi possível conectar"
+#, fuzzy
+msgid "Can't Connect"
+msgstr "Impossível conectar"
#: editor/export_template_manager.cpp
msgid "Connected"
@@ -2515,11 +2575,11 @@ msgstr "Ligado"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Requesting.."
-msgstr ""
+msgstr "A solicitar..."
#: editor/export_template_manager.cpp
msgid "Downloading"
-msgstr ""
+msgstr "A transferir"
#: editor/export_template_manager.cpp
msgid "Connection Error"
@@ -2527,11 +2587,11 @@ msgstr "Erro de Ligação"
#: editor/export_template_manager.cpp
msgid "SSL Handshake Error"
-msgstr ""
+msgstr "Erro SSL Handshake"
#: editor/export_template_manager.cpp
msgid "Current Version:"
-msgstr "Versão Actual:"
+msgstr "Versão Atual:"
#: editor/export_template_manager.cpp
msgid "Installed Versions:"
@@ -2542,34 +2602,34 @@ msgid "Install From File"
msgstr "Instalar do Ficheiro"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Remove Template"
-msgstr "Remover Variável"
+msgstr "Remover Modelo"
#: editor/export_template_manager.cpp
msgid "Select template file"
-msgstr "Seleccionar ficheiro de modelo"
+msgstr "Selecionar Ficheiro de Modelo"
#: editor/export_template_manager.cpp
msgid "Export Template Manager"
msgstr "Exportar Gestor de Modelos"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Download Templates"
-msgstr "Remover Variável"
+msgstr "Transferir Modelos"
#: editor/export_template_manager.cpp
msgid "Select mirror from list: "
-msgstr ""
+msgstr "Selecionar servidor da lista: "
#: editor/file_type_cache.cpp
msgid "Can't open file_type_cache.cch for writing, not saving file type cache!"
msgstr ""
+"file_type_cache.cch não for guardada, por não se conseguir abrir para "
+"leitura!"
#: editor/filesystem_dock.cpp
msgid "Cannot navigate to '%s' as it has not been found in the file system!"
-msgstr ""
+msgstr "'%s' não foi encontrado no Sistema de Ficheiros!"
#: editor/filesystem_dock.cpp
msgid "View items as a grid of thumbnails"
@@ -2585,7 +2645,7 @@ msgid ""
"Status: Import of file failed. Please fix file and reimport manually."
msgstr ""
"\n"
-"Estado: A importação do ficheiro falhou. Corrija o ficheiro e importe "
+"Estado: A importação do Ficheiro falhou. Corrija o Ficheiro e importe "
"manualmente."
#: editor/filesystem_dock.cpp
@@ -2601,8 +2661,13 @@ msgid "Error moving:\n"
msgstr "Erro ao mover:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Erro ao carregar:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
-msgstr "Não foi possível actualizar as dependências:\n"
+msgstr "Não foi possível atualizar as dependências:\n"
#: editor/filesystem_dock.cpp
msgid "No name provided"
@@ -2610,7 +2675,7 @@ msgstr "Nenhum nome foi fornecido"
#: editor/filesystem_dock.cpp
msgid "Provided name contains invalid characters"
-msgstr "O nome contém caracteres inválidos"
+msgstr "O nome contém carateres inválidos"
#: editor/filesystem_dock.cpp
msgid "No name provided."
@@ -2618,20 +2683,29 @@ msgstr "Nome não fornecido."
#: editor/filesystem_dock.cpp
msgid "Name contains invalid characters."
-msgstr "O nome contém caracteres inválidos."
+msgstr "O nome contém carateres inválidos."
#: editor/filesystem_dock.cpp
msgid "A file or folder with this name already exists."
-msgstr "Um ficheiro ou directoria já existe com este nome."
+msgstr "Um Ficheiro ou diretoria já existe com este nome."
#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Renaming file:"
-msgstr "Alterar nome da Variável"
+msgstr "Mudar nome do Ficheiro:"
#: editor/filesystem_dock.cpp
msgid "Renaming folder:"
-msgstr "Renomear directoria:"
+msgstr "Renomear diretoria:"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Duplicado"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Renomear diretoria:"
#: editor/filesystem_dock.cpp
msgid "Expand all"
@@ -2642,10 +2716,6 @@ msgid "Collapse all"
msgstr "Colapsar tudo"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "Copiar Caminho"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "Renomear.."
@@ -2654,12 +2724,9 @@ msgid "Move To.."
msgstr "Mover para.."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "Nova Directoria.."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "Mostrar no Gestor de Ficheiros"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Abrir Cena"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2671,36 +2738,40 @@ msgstr "Editar Dependências.."
#: editor/filesystem_dock.cpp
msgid "View Owners.."
-msgstr ""
+msgstr "Ver proprietários..."
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Duplicado"
#: editor/filesystem_dock.cpp
msgid "Previous Directory"
-msgstr "Directoria anterior"
+msgstr "Diretoria anterior"
#: editor/filesystem_dock.cpp
msgid "Next Directory"
-msgstr "Directoria seguinte"
+msgstr "Diretoria seguinte"
#: editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
-msgstr ""
+msgstr "Carregar novamente o Sistema de Ficheiros"
#: editor/filesystem_dock.cpp
msgid "Toggle folder status as Favorite"
-msgstr ""
+msgstr "Alternar a pasta de situação como Favorita"
#: editor/filesystem_dock.cpp
msgid "Instance the selected scene(s) as child of the selected node."
-msgstr ""
-"Instancie a(s) cena(s) seleccionada(s) como filha(s) do nó seleccionado."
+msgstr "Instancie a(s) Cena(s) selecionada(s) como filha(s) do Nó selecionado."
#: editor/filesystem_dock.cpp
msgid ""
"Scanning Files,\n"
"Please Wait.."
msgstr ""
-"Analisando Ficheiros,\n"
-"Espere, por favor.."
+"A analisar Ficheiros,\n"
+"Espere, por favor..."
#: editor/filesystem_dock.cpp
msgid "Move"
@@ -2721,35 +2792,35 @@ msgstr "Remover do Grupo"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Single Scene"
-msgstr "Importar como Cena Única"
+msgstr "Importar como Cena única"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Animations"
-msgstr "Importar com Animações Separadas"
+msgstr "Importar com Animações separadas"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials"
-msgstr "Importar com Materiais Separados"
+msgstr "Importar com Materiais separados"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects"
-msgstr "Importar com Objectos Separados"
+msgstr "Importar com Objetos separados"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials"
-msgstr "Importar com Objectos e Materiais Separados"
+msgstr "Importar com Objetos e Materiais separados"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Animations"
-msgstr "Importar com Objectos e Animações Separados"
+msgstr "Importar com Objetos e Animações separados"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials+Animations"
-msgstr "Importar com Materiais e Animações Separados"
+msgstr "Importar com Materiais e Animações separados"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials+Animations"
-msgstr "Importar com Objectos, Materiais e Animações Separados"
+msgstr "Importar com Objetos, Materiais e Animações separados"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes"
@@ -2769,20 +2840,30 @@ msgid "Importing Scene.."
msgstr "A importar Cena.."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "A gerar AABB"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "A gerar AABB"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "A executar Script Customizado.."
#: editor/import/resource_importer_scene.cpp
msgid "Couldn't load post-import script:"
-msgstr ""
+msgstr "Não se conseguiu carregar o Script de pós-importação:"
#: editor/import/resource_importer_scene.cpp
msgid "Invalid/broken script for post-import (check console):"
-msgstr ""
+msgstr "Script inválido/danificado para pós-importação (verificar consola):"
#: editor/import/resource_importer_scene.cpp
msgid "Error running post-import script:"
-msgstr ""
+msgstr "Erro na execução do Script de pós-importação:"
#: editor/import/resource_importer_scene.cpp
msgid "Saving.."
@@ -2790,11 +2871,11 @@ msgstr "A guardar.."
#: editor/import_dock.cpp
msgid "Set as Default for '%s'"
-msgstr "Definir por defeito para '%s'"
+msgstr "Definir como padrão para '%s'"
#: editor/import_dock.cpp
msgid "Clear Default for '%s'"
-msgstr "Limpar por defeito para '%s'"
+msgstr "Limpar padrão para '%s'"
#: editor/import_dock.cpp
msgid " Files"
@@ -2814,7 +2895,7 @@ msgstr "Reimportar"
#: editor/multi_node_edit.cpp
msgid "MultiNode Set"
-msgstr ""
+msgstr "Conjunto MultiNode"
#: editor/node_dock.cpp
msgid "Groups"
@@ -2822,7 +2903,7 @@ msgstr "Grupos"
#: editor/node_dock.cpp
msgid "Select a Node to edit Signals and Groups."
-msgstr ""
+msgstr "Selecionar um Nó para editar sinais e grupos."
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
@@ -2851,7 +2932,7 @@ msgstr "Remover Polígono e Ponto"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Create a new polygon from scratch"
-msgstr "Criar um novo polígono de raíz"
+msgstr "Criar um novo Polígono de raíz"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid ""
@@ -2860,15 +2941,18 @@ msgid ""
"Ctrl+LMB: Split Segment.\n"
"RMB: Erase Point."
msgstr ""
+"Editar Polígono existente:\n"
+"LMB: Mover Ponto.\n"
+"Ctrl+LMB: Separar segmento.\n"
+"RMB: Apagar Ponto."
#: editor/plugins/abstract_polygon_2d_editor.cpp
-#, fuzzy
msgid "Delete points"
-msgstr "Apagar Seleccionados"
+msgstr "Apagar Pontos"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
-msgstr ""
+msgstr "Alternar reprodução automática"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Animation Name:"
@@ -2893,11 +2977,11 @@ msgstr "Remover Animação"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: Invalid animation name!"
-msgstr "ERRO: Nome de animação inválido!"
+msgstr "ERRO: Nome de Animação inválido!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: Animation name already exists!"
-msgstr "ERRO: O nome da animação já existe!"
+msgstr "ERRO: O nome da Animação já existe!"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -2911,11 +2995,11 @@ msgstr "Adicionar Animação"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Next Changed"
-msgstr ""
+msgstr "Misturar seguinte alterado"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Blend Time"
-msgstr ""
+msgstr "Mudar tempo de mistura"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load Animation"
@@ -2927,11 +3011,11 @@ msgstr "Duplicar Animação"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation to copy!"
-msgstr "ERRO: Sem animação para copiar!"
+msgstr "ERRO: Sem Animação para copiar!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation resource on clipboard!"
-msgstr ""
+msgstr "ERRO: nenhuma Animação na Ãrea de Transferência!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
@@ -2943,553 +3027,574 @@ msgstr "Colar Animação"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation to edit!"
-msgstr "ERRO: Sem animação para editar!"
+msgstr "ERRO: Sem Animação para editar!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
msgstr ""
+"Reproduzir a Animação selecionada para trás a partir da presente posição. (A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from end. (Shift+A)"
-msgstr ""
+msgstr "Reproduzir a Animação selecionada para trás a partir do fim. (Shift+A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Stop animation playback. (S)"
-msgstr ""
+msgstr "Parar reprodução da Animação. (S)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from start. (Shift+D)"
-msgstr ""
+msgstr "Reproduzir a Animação selecionada a partir do início. (Shift+D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from current pos. (D)"
-msgstr ""
+msgstr "Reproduzir a Animação selecionada a partir da presente posição. (D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation position (in seconds)."
-msgstr ""
+msgstr "Posição da Animação (em segundos)."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Scale animation playback globally for the node."
-msgstr ""
+msgstr "Escalar globalmente a reprodução da Animação para o Nó."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create new animation in player."
-msgstr ""
+msgstr "Criar uma nova Animação no reprodutor."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load animation from disk."
-msgstr ""
+msgstr "Abrir Animação do disco."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load an animation from disk."
-msgstr ""
+msgstr "Abrir uma Animação do disco."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Save the current animation"
-msgstr ""
+msgstr "Guardar a Animação atual"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Display list of animations in player."
-msgstr ""
+msgstr "Mostrar lista de Animações no reprodutor."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Autoplay on Load"
-msgstr ""
+msgstr "Reprodução automática no carregamento"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Edit Target Blend Times"
-msgstr ""
+msgstr "Editar tempos de mistura do alvo"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Tools"
-msgstr ""
+msgstr "Ferramentas de Animação"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Copy Animation"
-msgstr ""
+msgstr "Copiar Animação"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "Onion Skinning"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Ativar Onion Skinning"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "Descrição"
+msgstr "Direções"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Past"
-msgstr ""
+msgstr "Passado"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Future"
-msgstr ""
+msgstr "Futuro"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Profundidade"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 passo"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 passos"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 passos"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Apenas diferenças"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
-msgstr ""
+msgstr "Forçar modulação branca"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "Incluir ferramentas (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
-msgstr ""
+msgstr "Criar nova Animação"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Name:"
-msgstr ""
+msgstr "Nome da Animação:"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
#: editor/script_create_dialog.cpp
msgid "Error!"
-msgstr ""
+msgstr "Erro!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Times:"
-msgstr ""
+msgstr "Tempos de mistura:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Next (Auto Queue):"
-msgstr ""
+msgstr "Próximo (auto-fila):"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Cross-Animation Blend Times"
-msgstr ""
+msgstr "Tempos de mistura de Animação cruzada"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
-msgstr ""
+msgstr "Animação"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "New name:"
-msgstr ""
+msgstr "Novo nome:"
#: editor/plugins/animation_tree_editor_plugin.cpp
-#, fuzzy
msgid "Edit Filters"
-msgstr "Editar Variável:"
+msgstr "Editar filtros"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Scale:"
-msgstr ""
+msgstr "Escala:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Fade In (s):"
-msgstr ""
+msgstr "Aparecer (s):"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Fade Out (s):"
-msgstr ""
+msgstr "Desvanecer (s):"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend"
-msgstr ""
+msgstr "Misturar"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix"
-msgstr ""
+msgstr "Combinar"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Auto Restart:"
-msgstr ""
+msgstr "Reinício automático:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Restart (s):"
-msgstr ""
+msgstr "Reinício (s):"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Random Restart (s):"
-msgstr ""
+msgstr "Reinício aleatório (s):"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Start!"
-msgstr ""
+msgstr "Partida!"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Amount:"
-msgstr ""
+msgstr "Valor:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend:"
-msgstr ""
+msgstr "Mistura:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend 0:"
-msgstr ""
+msgstr "Mistura 0:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend 1:"
-msgstr ""
+msgstr "Mistura 1:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "X-Fade Time (s):"
-msgstr ""
+msgstr "Tempo X-Fade (s):"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Current:"
-msgstr ""
+msgstr "Atual:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Add Input"
-msgstr ""
+msgstr "Adicionar entrada"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Clear Auto-Advance"
-msgstr ""
+msgstr "Limpar avanço automático"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Set Auto-Advance"
-msgstr ""
+msgstr "Definir avanço automático"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Delete Input"
-msgstr ""
+msgstr "Apagar entrada"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation tree is valid."
-msgstr ""
+msgstr "Ãrvore de Animação válida."
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation tree is invalid."
-msgstr ""
+msgstr "Ãrvore de Animação inválida."
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation Node"
-msgstr ""
+msgstr "Nó Animation"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "OneShot Node"
-msgstr ""
+msgstr "Nó OneShot"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix Node"
-msgstr ""
+msgstr "Nó Mix"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend2 Node"
-msgstr ""
+msgstr "Nó Blend2"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend3 Node"
-msgstr ""
+msgstr "Nó Blend3"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend4 Node"
-msgstr ""
+msgstr "Nó Blend4"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "TimeScale Node"
-msgstr ""
+msgstr "Nó TimeScale"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "TimeSeek Node"
-msgstr ""
+msgstr "Nó TimeSeek"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Transition Node"
-msgstr ""
+msgstr "Nó Transition"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Import Animations.."
-msgstr ""
+msgstr "Importar Animações..."
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Edit Node Filters"
-msgstr ""
+msgstr "Editar filtros de Nó"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Filters.."
-msgstr ""
+msgstr "Filtros..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Free"
-msgstr ""
+msgstr "Livre"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Contents:"
-msgstr ""
+msgstr "Conteúdos:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "View Files"
-msgstr ""
+msgstr "Ver Ficheiros"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve hostname:"
-msgstr ""
+msgstr "Impossível resolver hostname:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Connection error, please try again."
-msgstr ""
+msgstr "Erro de ligação, tente novamente."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't connect to host:"
-msgstr ""
+msgstr "Impossível ligar ao host:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No response from host:"
-msgstr ""
+msgstr "Sem resposta do host:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, return code:"
-msgstr ""
+msgstr "Falha na solicitação, código de retorno:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, too many redirects"
-msgstr ""
+msgstr "Falha na solicitação, demasiados redirecionamentos"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Bad download hash, assuming file has been tampered with."
-msgstr ""
+msgstr "Mau hash na transferência, assume-se que o Ficheiro foi manipulado."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Expected:"
-msgstr ""
+msgstr "Esperado:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Got:"
-msgstr ""
+msgstr "Obtido:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Failed sha256 hash check"
-msgstr ""
+msgstr "Verificação hash sha256 falhada"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Asset Download Error:"
-msgstr ""
+msgstr "Erro na transferência de Ativo:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Fetching:"
-msgstr ""
+msgstr "Em busca:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Resolving.."
-msgstr ""
+msgstr "A resolver..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Error making request"
-msgstr ""
+msgstr "Erro na criação da solicitação"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Idle"
-msgstr ""
+msgstr "Inativo"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Retry"
-msgstr ""
+msgstr "Repetir"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download Error"
-msgstr ""
+msgstr "Erro na transferência"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download for this asset is already in progress!"
-msgstr ""
+msgstr "A transferência deste Ativo já está em andamento!"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "first"
-msgstr ""
+msgstr "primeiro"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "prev"
-msgstr ""
+msgstr "anterior"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "next"
-msgstr ""
+msgstr "seguinte"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "last"
-msgstr ""
+msgstr "último"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
-msgstr ""
+msgstr "Todos"
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/project_settings_editor.cpp
msgid "Plugins"
-msgstr ""
+msgstr "Plugins"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Sort:"
-msgstr ""
+msgstr "Ordenar:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Reverse"
-msgstr ""
+msgstr "Inverter"
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/project_settings_editor.cpp
msgid "Category:"
-msgstr ""
+msgstr "Categoria:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Site:"
-msgstr ""
+msgstr "Site:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Support.."
-msgstr ""
+msgstr "Suporte..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Official"
-msgstr ""
+msgstr "Oficial"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Testing"
-msgstr ""
+msgstr "A testar"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
+msgstr "Ficheiro de Ativos ZIP"
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
msgstr ""
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "Mudar raio da luz"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
-msgstr ""
+msgstr "Previsualização"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Configure Snap"
-msgstr ""
+msgstr "Configurar Ajuste"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Offset:"
-msgstr ""
+msgstr "Compensação da grelha:"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid Step:"
-msgstr ""
+msgstr "Passo da grelha:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Offset:"
-msgstr ""
+msgstr "Compensação da rotação:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotation Step:"
-msgstr ""
+msgstr "Passo da rotação:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Pivot"
-msgstr ""
+msgstr "Mover Eixo"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Action"
-msgstr ""
+msgstr "Mover ação"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move vertical guide"
-msgstr ""
+msgstr "Mover guia vertical"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create new vertical guide"
-msgstr ""
+msgstr "Criar nova guia vertical"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove vertical guide"
-msgstr "Remover Variável"
+msgstr "Remover guia vertical"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move horizontal guide"
-msgstr ""
+msgstr "Mover guia horizontal"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create new horizontal guide"
-msgstr ""
+msgstr "Criar nova guia horizontal"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Remove horizontal guide"
-msgstr "Remover Variável"
+msgstr "Remover guia horizontal"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create new horizontal and vertical guides"
-msgstr ""
+msgstr "Criar guias horizontal e vertical"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Edit IK Chain"
-msgstr ""
+msgstr "Editar corrente IK"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Edit CanvasItem"
-msgstr ""
+msgstr "Editar CanvasItem"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Anchors only"
-msgstr ""
+msgstr "Só âncoras"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change Anchors and Margins"
-msgstr ""
+msgstr "Mudar âncoras e margens"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change Anchors"
-msgstr ""
+msgstr "Mudar âncoras"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Paste Pose"
-msgstr ""
+msgstr "Colar Pose"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Select Mode"
-msgstr ""
+msgstr "Modo seleção"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Drag: Rotate"
-msgstr ""
+msgstr "Arrastar: Rotação"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+Drag: Move"
-msgstr ""
+msgstr "Alt+Arrastar: Mover"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)."
msgstr ""
+"Tecla 'v' para mudar Eixo, 'Shift+v' para arrastar Eixo (durante movimento)."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+RMB: Depth list selection"
-msgstr ""
+msgstr "Alt+RMB: seleção da lista de profundidade"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Mode"
-msgstr ""
+msgstr "Modo mover"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotate Mode"
-msgstr ""
+msgstr "Modo rodar"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -3497,892 +3602,900 @@ msgid ""
"Show a list of all objects at the position clicked\n"
"(same as Alt+RMB in select mode)."
msgstr ""
+"Mostra lista de todos os Objetos na posição clicada\n"
+"(o mesmo que Alt+RMB no modo seleção)."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Click to change object's rotation pivot."
-msgstr ""
+msgstr "Clique para mudar o Eixo de rotação do Objeto."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Pan Mode"
-msgstr ""
+msgstr "Modo deslocamento"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Toggles snapping"
-msgstr "Accionar Breakpoint"
+msgstr "Alternar Ajuste"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
-msgstr ""
+msgstr "Usar Ajuste"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snapping options"
-msgstr ""
+msgstr "Opções de Ajuste"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to grid"
-msgstr ""
+msgstr "Ajustar à grelha"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Rotation Snap"
-msgstr ""
+msgstr "Usar Ajuste na rotação"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Configure Snap..."
-msgstr ""
+msgstr "Configurar Ajuste..."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap Relative"
-msgstr ""
+msgstr "Ajuste relativo"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Pixel Snap"
-msgstr ""
+msgstr "Usar Ajuste de pixel"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Smart snapping"
-msgstr ""
+msgstr "Ajuste inteligente"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to parent"
-msgstr ""
+msgstr "Ajustar ao parente"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to node anchor"
-msgstr ""
+msgstr "Ajustar ao Nó âncora"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to node sides"
-msgstr ""
+msgstr "Ajustar aos lados do Nó"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to other nodes"
-msgstr ""
+msgstr "Ajustar a outros Nós"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to guides"
-msgstr ""
+msgstr "Ajustar às guias"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Lock the selected object in place (can't be moved)."
-msgstr ""
+msgstr "Bloquear a posição do Objeto selecionado (não pode ser movido)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
-msgstr ""
+msgstr "Desbloquear o Objeto selecionado (pode ser movido)."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
-msgstr ""
+msgstr "Assegura que os Objetos-filho não são selecionáveis."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
-msgstr ""
+msgstr "Restaura a capacidade de selecionar os Objetos-filho."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make Bones"
-msgstr ""
+msgstr "Criar ossos"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Bones"
-msgstr ""
+msgstr "Apagar ossos"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Bones"
-msgstr ""
+msgstr "Mostrar ossos"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
-msgstr ""
+msgstr "Criar corrente IK"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear IK Chain"
-msgstr ""
+msgstr "Apagar corrente IK"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View"
-msgstr ""
+msgstr "Ver"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Show Grid"
-msgstr ""
+msgstr "Mostrar grelha"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show helpers"
-msgstr ""
+msgstr "Mostrar ajudantes"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show rulers"
-msgstr ""
+msgstr "Mostrar réguas"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show guides"
-msgstr ""
+msgstr "Mostrar guias"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Selection"
-msgstr ""
+msgstr "Centrar seleção"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Frame Selection"
-msgstr ""
+msgstr "Emoldurar seleção"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Layout"
-msgstr ""
+msgstr "Esquema"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Keys"
-msgstr ""
+msgstr "Inserir chaves"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr ""
+msgstr "Inserir chave"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
-msgstr ""
+msgstr "Inserir chave (faixas existentes)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Copy Pose"
-msgstr ""
+msgstr "Copiar pose"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Pose"
-msgstr ""
+msgstr "Limpar pose"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Drag pivot from mouse position"
-msgstr ""
+msgstr "Arrastar Eixo da posição do rato"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Set pivot at mouse position"
-msgstr "Remover Sinal"
+msgstr "Definir Eixo na posição do rato"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
-msgstr ""
+msgstr "Multiplicar passo da grelha por 2"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Divide grid step by 2"
-msgstr ""
+msgstr "Dividir passo da grelha por 2"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
-msgstr ""
+msgstr "Adicionar %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Adding %s..."
-msgstr ""
+msgstr "A adicionar %s..."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Create Node"
-msgstr ""
+msgstr "Criar Nó"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Error instancing scene from %s"
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
+msgstr "Erro a instanciar Cena de %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
-msgstr ""
+msgstr "Esta operação requer um único Nó selecionado."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change default type"
-msgstr ""
+msgstr "Mudar tipo padrão"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
"Drag & drop + Shift : Add node as sibling\n"
"Drag & drop + Alt : Change node type"
msgstr ""
+"Arrastar & largar + Shift : Adiciona Nó como irmão\n"
+"Arrastar & largar + Alt : Altera o tipo de Nó"
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Create Poly3D"
-msgstr ""
+msgstr "Criar Poly3D"
#: editor/plugins/collision_shape_2d_editor_plugin.cpp
msgid "Set Handle"
-msgstr ""
+msgstr "Definir handle"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Remove item %d?"
-msgstr ""
+msgstr "Remover item %d?"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Add Item"
-msgstr ""
+msgstr "Adicionar item"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Remove Selected Item"
-msgstr ""
+msgstr "Remover item selecionado"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Import from Scene"
-msgstr ""
+msgstr "Importar da Cena"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Update from Scene"
-msgstr ""
+msgstr "Atualizar da Cena"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Flat0"
-msgstr ""
+msgstr "Flat0"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Flat1"
-msgstr ""
+msgstr "Flat1"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Ease in"
-msgstr ""
+msgstr "Ease in"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Ease out"
-msgstr ""
+msgstr "Ease out"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Smoothstep"
-msgstr ""
+msgstr "Smoothstep"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Modify Curve Point"
-msgstr ""
+msgstr "Modificar Ponto da curva"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Modify Curve Tangent"
-msgstr ""
+msgstr "Modificar tangente da curva"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Load Curve Preset"
-msgstr ""
+msgstr "Carregar curva predefinida"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Add point"
-msgstr "Adicionar Sinal"
+msgstr "Adicionar Ponto"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Remove point"
-msgstr "Remover Sinal"
+msgstr "Remover Ponto"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Left linear"
-msgstr ""
+msgstr "Linear esquerda"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Right linear"
-msgstr ""
+msgstr "Linear direita"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Load preset"
-msgstr ""
+msgstr "Carregar predefinição"
#: editor/plugins/curve_editor_plugin.cpp
-#, fuzzy
msgid "Remove Curve Point"
-msgstr "Remover Sinal"
+msgstr "Remover Ponto da curva"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Toggle Curve Linear Tangent"
-msgstr ""
+msgstr "Alternar tangente linear da curva"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Hold Shift to edit tangents individually"
-msgstr ""
+msgstr "Pressione Shift para editar tangentes individualmente"
#: editor/plugins/gi_probe_editor_plugin.cpp
msgid "Bake GI Probe"
-msgstr ""
+msgstr "Cozinhar a sonda GI"
#: editor/plugins/gradient_editor_plugin.cpp
msgid "Add/Remove Color Ramp Point"
-msgstr ""
+msgstr "Adicionar/remover Ponto da rampa de cores"
#: editor/plugins/gradient_editor_plugin.cpp
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Modify Color Ramp"
-msgstr ""
+msgstr "Modificar rampa de cores"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
-msgstr ""
+msgstr "Item %d"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Items"
-msgstr ""
+msgstr "Itens"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item List Editor"
-msgstr ""
+msgstr "Editor da lista de itens"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid ""
"No OccluderPolygon2D resource on this node.\n"
"Create and assign one?"
msgstr ""
+"Não há recurso OccluderPolygon2D neste Nó.\n"
+"Criar um e associar?"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create Occluder Polygon"
-msgstr ""
+msgstr "Criar Polígono oclusor"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create a new polygon from scratch."
-msgstr ""
+msgstr "Criar um novo Polígono a partir do zero."
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Edit existing polygon:"
-msgstr ""
+msgstr "Editar Polígono existente:"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "LMB: Move Point."
-msgstr ""
+msgstr "LMB: Mover Ponto."
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Ctrl+LMB: Split Segment."
-msgstr ""
+msgstr "Ctrl+LMB: Separar segmento."
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "RMB: Erase Point."
-msgstr ""
+msgstr "RMB: Apagar Ponto."
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh is empty!"
-msgstr ""
+msgstr "A Mesh está vazia!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Trimesh Body"
-msgstr ""
+msgstr "Criar corpo estático Trimesh"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Convex Body"
-msgstr ""
+msgstr "Criar corpo estático convexo"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "This doesn't work on scene root!"
-msgstr ""
+msgstr "Não funciona na raiz da Cena!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Shape"
-msgstr ""
+msgstr "Criar forma Trimesh"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Convex Shape"
-msgstr ""
+msgstr "Criar forma convexa"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Navigation Mesh"
+msgstr "Criar Mesh de navegação"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "MeshInstance lacks a Mesh!"
+msgid "UV Unwrap failed, mesh may not be manifold?"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Mesh has not surface to create outlines from!"
+msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-msgid "Could not create outline!"
+msgid "Model has no UV in this layer"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "MeshInstance lacks a Mesh!"
+msgstr "Falta uma Mesh a MeshInstance!"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr "A Mesh não tem superfície para criar contornos!"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Could not create outline!"
+msgstr "Contorno não pode ser criado!"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline"
-msgstr ""
+msgstr "Criar contorno"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh"
-msgstr ""
+msgstr "Mesh"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Static Body"
-msgstr ""
+msgstr "Criar corpo estático Trimesh"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Convex Static Body"
-msgstr ""
+msgstr "Criar corpo estático convexo"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Collision Sibling"
-msgstr ""
+msgstr "Criar irmão de colisão Trimesh"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Convex Collision Sibling"
-msgstr ""
+msgstr "Criar irmão de colisão convexa"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh.."
+msgstr "Criar Mesh contorno..."
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Ver"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Ver"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
-msgstr ""
+msgstr "Criar Mesh contorno"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Outline Size:"
-msgstr ""
+msgstr "Tamanho do contorno:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "No mesh source specified (and no MultiMesh set in node)."
-msgstr ""
+msgstr "Não há fonte de Mesh (nem MultiMesh no Nó)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "No mesh source specified (and MultiMesh contains no Mesh)."
-msgstr ""
+msgstr "Não há fonte de Mesh (e MultiMesh não contêm Mesh)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (invalid path)."
-msgstr ""
+msgstr "A fonte de Mesh é inválida (Caminho inválido)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (not a MeshInstance)."
-msgstr ""
+msgstr "A fonte de Mesh é inválida (não é MeshInstance)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (contains no Mesh resource)."
-msgstr ""
+msgstr "A fonte de Mesh é inválida (não contêm um recurso Mesh)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "No surface source specified."
-msgstr ""
+msgstr "Fonte de superfície não especificada."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (invalid path)."
-msgstr ""
+msgstr "A fonte de superfície é inválida (Caminho inválido)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (no geometry)."
-msgstr ""
+msgstr "A fonte de superfície é inválida (sem geometria)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (no faces)."
-msgstr ""
+msgstr "A fonte de superfície é inválida (sem faces)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Parent has no solid faces to populate."
-msgstr ""
+msgstr "O parente não tem faces sólidas para povoar."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Couldn't map area."
-msgstr ""
+msgstr "Ãrea não pode ser mapeada."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Select a Source Mesh:"
-msgstr ""
+msgstr "Selecione uma fonte Mesh:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Select a Target Surface:"
-msgstr ""
+msgstr "Selecione uma superfície alvo:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate Surface"
-msgstr ""
+msgstr "Povoar superfície"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate MultiMesh"
-msgstr ""
+msgstr "Povoar MultiMesh"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Target Surface:"
-msgstr ""
+msgstr "Superfície alvo:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Source Mesh:"
-msgstr ""
+msgstr "Mesh fonte:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "X-Axis"
-msgstr ""
+msgstr "Eixo X"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Y-Axis"
-msgstr ""
+msgstr "Eixo Y"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Z-Axis"
-msgstr ""
+msgstr "Eixo Z"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh Up Axis:"
-msgstr ""
+msgstr "Mesh Eixo cima:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Rotation:"
-msgstr ""
+msgstr "Rotação aleatória:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Tilt:"
-msgstr ""
+msgstr "Inclinação aleatória:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Scale:"
-msgstr ""
+msgstr "Escala aleatória:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate"
-msgstr ""
+msgstr "Povoar"
#: editor/plugins/navigation_mesh_editor_plugin.cpp
msgid "Bake!"
-msgstr ""
+msgstr "Cozinhar!"
#: editor/plugins/navigation_mesh_editor_plugin.cpp
msgid "Bake the navigation mesh.\n"
-msgstr ""
+msgstr "Cozinhar a Mesh de navegação.\n"
#: editor/plugins/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
-msgstr ""
+msgstr "Limpar a Mesh de navegação."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
-msgstr ""
+msgstr "A ajustar configuração..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
-msgstr ""
+msgstr "A calcular tamanho da grelha..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
-msgstr ""
+msgstr "A criar heightfield..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
-msgstr ""
+msgstr "A marcar triângulos caminháveis..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
-msgstr ""
+msgstr "A construir heightfield compacto..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Eroding walkable area..."
-msgstr ""
+msgstr "A corroer a Ãrea caminhável..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Partitioning..."
-msgstr ""
+msgstr "A segmentar..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Creating contours..."
-msgstr ""
+msgstr "A criar contornos..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
-msgstr ""
+msgstr "A criar polymesh..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Converting to native navigation mesh..."
-msgstr ""
+msgstr "A converter para Mesh de navegação nativa..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
-msgstr ""
+msgstr "Configuração do gerador da Mesh de navegação:"
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
-msgstr ""
+msgstr "A analisar geometria..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Done!"
-msgstr ""
+msgstr "Feito!"
#: editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "Create Navigation Polygon"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
+msgstr "Criar Polígono de navegação"
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
-msgstr ""
+msgstr "A gerar AABB"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Can only set point into a ParticlesMaterial process material"
-msgstr ""
+msgstr "Só pode definir um Ponto num Material ParticlesMaterial"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Error loading image:"
-msgstr ""
+msgstr "Erro ao carregar imagem:"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "No pixels with transparency > 128 in image.."
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr ""
+msgstr "Sem pixeis com transparência > 128 na imagem..."
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
-msgstr ""
+msgstr "Gerar Visibilidade do Rect"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Load Emission Mask"
-msgstr ""
+msgstr "Carregar máscara de emissão"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "Limpar máscara de emissão"
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
-msgstr ""
+msgstr "Partículas"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generated Point Count:"
-msgstr ""
+msgstr "Contagem de Pontos gerados:"
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generation Time (sec):"
-msgstr ""
+msgstr "Tempo de geração (s):"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Emission Mask"
-msgstr ""
+msgstr "Máscara de emissão"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Capture from Pixel"
-msgstr ""
+msgstr "Capturar a partir do pixel"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Emission Colors"
-msgstr ""
+msgstr "Cores de emissão"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Node does not contain geometry."
-msgstr ""
+msgstr "O Nó não contêm geometria."
#: editor/plugins/particles_editor_plugin.cpp
msgid "Node does not contain geometry (faces)."
-msgstr ""
+msgstr "O Nó não contêm geometria (faces)."
#: editor/plugins/particles_editor_plugin.cpp
msgid "A processor material of type 'ParticlesMaterial' is required."
-msgstr ""
+msgstr "É necessário um Material processador do tipo 'ParticlesMaterial'."
#: editor/plugins/particles_editor_plugin.cpp
msgid "Faces contain no area!"
-msgstr ""
+msgstr "As faces não contêm Ãrea!"
#: editor/plugins/particles_editor_plugin.cpp
msgid "No faces!"
-msgstr ""
+msgstr "Sem faces!"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generate AABB"
-msgstr ""
+msgstr "Gerar AABB"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emission Points From Mesh"
-msgstr ""
+msgstr "Criar Pontos de emissão a partir da Mesh"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emission Points From Node"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
+msgstr "Criar Pontos de emissão a partir do Nó"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
-msgstr ""
+msgstr "Criar emissor"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Emission Points:"
-msgstr ""
+msgstr "Pontos de emissão:"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Surface Points"
-msgstr ""
+msgstr "Pontos de superfície"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Surface Points+Normal (Directed)"
-msgstr ""
+msgstr "Pontos de superfície+Normal (dirigida)"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Volume"
-msgstr ""
+msgstr "Volume"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Emission Source: "
-msgstr ""
+msgstr "Fonte de emissão: "
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generate Visibility AABB"
-msgstr ""
+msgstr "Gerar visibilidade AABB"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove Point from Curve"
-msgstr ""
+msgstr "Remover Ponto da curva"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove Out-Control from Curve"
-msgstr ""
+msgstr "Remover Out-Control da curva"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove In-Control from Curve"
-msgstr ""
+msgstr "Remover In-Control da curva"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Add Point to Curve"
-msgstr ""
+msgstr "Adicionar Ponto à curva"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Point in Curve"
-msgstr ""
+msgstr "Mover Ponto na curva"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move In-Control in Curve"
-msgstr ""
+msgstr "Mover In-Control na curva"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Out-Control in Curve"
-msgstr ""
+msgstr "Mover Out-Control na curva"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Select Points"
-msgstr ""
+msgstr "Selecionar Pontos"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Shift+Drag: Select Control Points"
-msgstr ""
+msgstr "Shift+Arrastar: Selecionar Pontos de controlo"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Click: Add Point"
-msgstr ""
+msgstr "Click: Adicionar Ponto"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Right Click: Delete Point"
-msgstr ""
+msgstr "Click direito: Apagar Ponto"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Select Control Points (Shift+Drag)"
-msgstr ""
+msgstr "Selecionar Pontos de controlo (Shift+Arrastar)"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Add Point (in empty space)"
-msgstr ""
+msgstr "Adicionar Ponto (num espaço vazio)"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Split Segment (in curve)"
-msgstr ""
+msgstr "Separar segmento (na curva)"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Delete Point"
-msgstr ""
+msgstr "Apagar Ponto"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Close Curve"
-msgstr ""
+msgstr "Fechar curva"
#: editor/plugins/path_editor_plugin.cpp
msgid "Curve Point #"
-msgstr ""
+msgstr "Ponto #"
#: editor/plugins/path_editor_plugin.cpp
-#, fuzzy
msgid "Set Curve Point Position"
-msgstr "Remover Sinal"
+msgstr "Definir posição do Ponto da curva"
#: editor/plugins/path_editor_plugin.cpp
-#, fuzzy
msgid "Set Curve In Position"
-msgstr "Remover Sinal"
+msgstr "Definir curva na posição"
#: editor/plugins/path_editor_plugin.cpp
-#, fuzzy
msgid "Set Curve Out Position"
-msgstr "Remover Sinal"
+msgstr "Definir posição Curve Out"
#: editor/plugins/path_editor_plugin.cpp
msgid "Split Path"
-msgstr ""
+msgstr "Separar Caminho"
#: editor/plugins/path_editor_plugin.cpp
msgid "Remove Path Point"
-msgstr ""
+msgstr "Remover Ponto de Caminho"
#: editor/plugins/path_editor_plugin.cpp
-#, fuzzy
msgid "Remove Out-Control Point"
-msgstr "Remover Função"
+msgstr "Remover Ponto Out-Control"
#: editor/plugins/path_editor_plugin.cpp
msgid "Remove In-Control Point"
-msgstr ""
+msgstr "Remover Ponto In-Control"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create UV Map"
-msgstr ""
+msgstr "Criar mapa UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Transform UV Map"
-msgstr ""
+msgstr "Transformar mapa UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon 2D UV Editor"
-msgstr ""
+msgstr "Editor UV de Polígono 2D"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Move Point"
-msgstr ""
+msgstr "Mover Ponto"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Ctrl: Rotate"
-msgstr ""
+msgstr "Ctrl: Rodar"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
-msgstr ""
+msgstr "Shift: Mover tudo"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
-msgstr ""
+msgstr "Shift+Ctrl: Escalar"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Move Polygon"
-msgstr ""
+msgstr "Mover Polígono"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Rotate Polygon"
-msgstr ""
+msgstr "Rodar Polígono"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Scale Polygon"
-msgstr ""
+msgstr "Escalar Polígono"
#: editor/plugins/polygon_2d_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
@@ -4394,746 +4507,758 @@ msgstr "Editar"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon->UV"
-msgstr ""
+msgstr "Polígono->UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "UV->Polygon"
-msgstr ""
+msgstr "UV->Polígono"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Clear UV"
-msgstr ""
+msgstr "Limpar UV"
#: editor/plugins/polygon_2d_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap"
-msgstr ""
+msgstr "Ajustar"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Enable Snap"
-msgstr ""
+msgstr "Ativar Ajuste"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Grid"
-msgstr ""
+msgstr "Grelha"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "ERROR: Couldn't load resource!"
-msgstr ""
+msgstr "ERRO: Não foi possível carregar recurso!"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Add Resource"
-msgstr ""
+msgstr "Adicionar recurso"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Rename Resource"
-msgstr ""
+msgstr "Renomear recurso"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Delete Resource"
-msgstr ""
+msgstr "Apagar recurso"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Resource clipboard is empty!"
-msgstr ""
+msgstr "Ãrea de transferência de recursos vazia!"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Load Resource"
-msgstr ""
+msgstr "Carregar recurso"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Paste"
-msgstr ""
+msgstr "Colar"
#: editor/plugins/script_editor_plugin.cpp
msgid "Clear Recent Files"
-msgstr ""
+msgstr "Limpar Ficheiros recentes"
#: editor/plugins/script_editor_plugin.cpp
msgid ""
"Close and save changes?\n"
"\""
msgstr ""
+"Fechar e guardar alterações?\n"
+"\""
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme"
-msgstr ""
+msgstr "Erro ao guardar tema"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error saving"
-msgstr ""
+msgstr "Erro ao guardar"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error importing theme"
-msgstr ""
+msgstr "Erro ao importar tema"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error importing"
-msgstr ""
+msgstr "Erro ao importar"
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme"
-msgstr ""
+msgstr "Importar tema"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save Theme As.."
-msgstr ""
+msgstr "Guardar tema como..."
#: editor/plugins/script_editor_plugin.cpp
msgid " Class Reference"
-msgstr ""
+msgstr " Referência de classe"
#: editor/plugins/script_editor_plugin.cpp
msgid "Sort"
-msgstr ""
+msgstr "Ordenar"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
-msgstr ""
+msgstr "Mover para cima"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
-msgstr ""
+msgstr "Mover para baixo"
#: editor/plugins/script_editor_plugin.cpp
msgid "Next script"
-msgstr ""
+msgstr "Próximo Script"
#: editor/plugins/script_editor_plugin.cpp
msgid "Previous script"
-msgstr ""
+msgstr "Script anterior"
#: editor/plugins/script_editor_plugin.cpp
msgid "File"
-msgstr ""
+msgstr "Ficheiro"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
-msgstr ""
+msgstr "Novo"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save All"
-msgstr ""
+msgstr "Guardar tudo"
#: editor/plugins/script_editor_plugin.cpp
msgid "Soft Reload Script"
-msgstr ""
+msgstr "Script de Recarregamento"
+
+#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Copiar Caminho"
#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
-msgstr ""
+msgstr "Histórico anterior"
#: editor/plugins/script_editor_plugin.cpp
msgid "History Next"
-msgstr ""
+msgstr "Histórico seguinte"
#: editor/plugins/script_editor_plugin.cpp
msgid "Reload Theme"
-msgstr ""
+msgstr "Recarregar tema"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save Theme"
-msgstr ""
+msgstr "Guardar tema"
#: editor/plugins/script_editor_plugin.cpp
msgid "Save Theme As"
-msgstr ""
+msgstr "Guardar tema como"
#: editor/plugins/script_editor_plugin.cpp
msgid "Close Docs"
-msgstr ""
+msgstr "Fechar documentos"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Close All"
-msgstr "Fechar"
+msgstr "Fechar tudo"
#: editor/plugins/script_editor_plugin.cpp
msgid "Close Other Tabs"
-msgstr ""
+msgstr "Fechar outros separadores"
#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
msgid "Run"
-msgstr ""
+msgstr "Executar"
#: editor/plugins/script_editor_plugin.cpp
msgid "Toggle Scripts Panel"
-msgstr ""
+msgstr "Alternar painel de Scripts"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
msgid "Find.."
-msgstr ""
+msgstr "Encontrar..."
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
msgid "Find Next"
-msgstr ""
+msgstr "Encontrar seguinte"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Step Over"
-msgstr ""
+msgstr "Passar sobre"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Step Into"
-msgstr ""
+msgstr "Passar dentro"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Break"
-msgstr ""
+msgstr "Interrupção"
#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
#: editor/script_editor_debugger.cpp
msgid "Continue"
-msgstr ""
+msgstr "Continuar"
#: editor/plugins/script_editor_plugin.cpp
msgid "Keep Debugger Open"
-msgstr ""
+msgstr "Manter depurador aberto"
#: editor/plugins/script_editor_plugin.cpp
msgid "Debug with external editor"
-msgstr ""
+msgstr "Depurar com Editor externo"
#: editor/plugins/script_editor_plugin.cpp
msgid "Open Godot online documentation"
-msgstr ""
+msgstr "Abrir documentação online do Godot"
#: editor/plugins/script_editor_plugin.cpp
msgid "Search the class hierarchy."
-msgstr ""
+msgstr "Procurar na hierarquia de classe."
#: editor/plugins/script_editor_plugin.cpp
msgid "Search the reference documentation."
-msgstr ""
+msgstr "Procurar na documentação de referência."
#: editor/plugins/script_editor_plugin.cpp
msgid "Go to previous edited document."
-msgstr ""
+msgstr "Ir para o documento previamente editado."
#: editor/plugins/script_editor_plugin.cpp
msgid "Go to next edited document."
-msgstr ""
+msgstr "Ir para o próximo documento editado."
#: editor/plugins/script_editor_plugin.cpp
msgid "Discard"
-msgstr ""
+msgstr "Descartar"
#: editor/plugins/script_editor_plugin.cpp
msgid "Create Script"
-msgstr ""
+msgstr "Criar Script"
#: editor/plugins/script_editor_plugin.cpp
msgid ""
"The following files are newer on disk.\n"
"What action should be taken?:"
msgstr ""
+"Os seguintes Ficheiros são mais recentes no disco.\n"
+"Que ação deve ser tomada?:"
#: editor/plugins/script_editor_plugin.cpp
msgid "Reload"
-msgstr ""
+msgstr "Recarregar"
#: editor/plugins/script_editor_plugin.cpp
msgid "Resave"
-msgstr ""
+msgstr "Reguardar"
#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Debugger"
-msgstr ""
+msgstr "Depurador"
#: editor/plugins/script_editor_plugin.cpp
msgid ""
"Built-in scripts can only be edited when the scene they belong to is loaded"
msgstr ""
+"Scripts incorporados só podem ser editados quando a Cena a que pertencem é "
+"carregada"
#: editor/plugins/script_text_editor.cpp
msgid "Only resources from filesystem can be dropped."
-msgstr ""
+msgstr "Só podem ser largados recursos do Sistema de Ficheiros ."
#: editor/plugins/script_text_editor.cpp
msgid "Pick Color"
-msgstr ""
+msgstr "Escolher cor"
#: editor/plugins/script_text_editor.cpp
msgid "Convert Case"
-msgstr ""
+msgstr "Converter maiúsculas/minúsculas"
#: editor/plugins/script_text_editor.cpp
msgid "Uppercase"
-msgstr ""
+msgstr "Maiúsculas"
#: editor/plugins/script_text_editor.cpp
msgid "Lowercase"
-msgstr ""
+msgstr "Minúsculas"
#: editor/plugins/script_text_editor.cpp
msgid "Capitalize"
-msgstr ""
+msgstr "Capitalizar"
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
-msgstr ""
+msgstr "Cortar"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Copy"
-msgstr ""
+msgstr "Copiar"
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Select All"
-msgstr ""
+msgstr "Selecionar tudo"
#: editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Delete Line"
-msgstr "Apagar Seleccionados"
+msgstr "Apagar linha"
#: editor/plugins/script_text_editor.cpp
msgid "Indent Left"
-msgstr ""
+msgstr "Indentar à esquerda"
#: editor/plugins/script_text_editor.cpp
msgid "Indent Right"
-msgstr ""
+msgstr "Indentar à direita"
#: editor/plugins/script_text_editor.cpp
msgid "Toggle Comment"
-msgstr ""
+msgstr "Alternar comentário"
#: editor/plugins/script_text_editor.cpp
msgid "Clone Down"
-msgstr ""
+msgstr "Clonar abaixo"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
-msgstr "Apagar Seleccionados"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
+msgid "Fold/Unfold Line"
+msgstr "Mostrar linha"
#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
-msgstr ""
+msgstr "Esconder todas as linhas"
#: editor/plugins/script_text_editor.cpp
msgid "Unfold All Lines"
-msgstr ""
+msgstr "Mostrar todas as linhas"
#: editor/plugins/script_text_editor.cpp
msgid "Complete Symbol"
-msgstr ""
+msgstr "Completar símbolo"
#: editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
-msgstr ""
+msgstr "Apagar espaços nos limites"
#: editor/plugins/script_text_editor.cpp
msgid "Convert Indent To Spaces"
-msgstr ""
+msgstr "Converter Indentação em espaços"
#: editor/plugins/script_text_editor.cpp
msgid "Convert Indent To Tabs"
-msgstr ""
+msgstr "Converter Indentação em tabulação"
#: editor/plugins/script_text_editor.cpp
msgid "Auto Indent"
-msgstr ""
+msgstr "Indentação automática"
#: editor/plugins/script_text_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Toggle Breakpoint"
-msgstr "Accionar Breakpoint"
+msgstr "Acionar Breakpoint"
#: editor/plugins/script_text_editor.cpp
msgid "Remove All Breakpoints"
-msgstr ""
+msgstr "Remover todos os Pontos de paragem"
#: editor/plugins/script_text_editor.cpp
msgid "Goto Next Breakpoint"
-msgstr ""
+msgstr "Ir para próximo Ponto de paragem"
#: editor/plugins/script_text_editor.cpp
msgid "Goto Previous Breakpoint"
-msgstr ""
+msgstr "Ir para Ponto de paragem anterior"
#: editor/plugins/script_text_editor.cpp
msgid "Convert To Uppercase"
-msgstr ""
+msgstr "Converter em maiúsculas"
#: editor/plugins/script_text_editor.cpp
msgid "Convert To Lowercase"
-msgstr ""
+msgstr "Converter em minúsculas"
#: editor/plugins/script_text_editor.cpp
msgid "Find Previous"
-msgstr ""
+msgstr "Encontrar anterior"
#: editor/plugins/script_text_editor.cpp
msgid "Replace.."
-msgstr ""
+msgstr "Substituir..."
#: editor/plugins/script_text_editor.cpp
msgid "Goto Function.."
-msgstr ""
+msgstr "Ir para Função..."
#: editor/plugins/script_text_editor.cpp
msgid "Goto Line.."
-msgstr ""
+msgstr "Ir para linha..."
#: editor/plugins/script_text_editor.cpp
msgid "Contextual Help"
-msgstr ""
+msgstr "Ajuda contextual"
#: editor/plugins/shader_editor_plugin.cpp
msgid "Shader"
-msgstr ""
+msgstr "Shader"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
-msgstr ""
+msgstr "Mudar constante escalar"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Constant"
-msgstr ""
+msgstr "Mudar constante vetorial"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change RGB Constant"
-msgstr ""
+msgstr "Mudar constante RGB"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Operator"
-msgstr ""
+msgstr "Mudar operador escalar"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Operator"
-msgstr ""
+msgstr "Mudar operador vetorial"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Scalar Operator"
-msgstr ""
+msgstr "Mudar operador escalar/vetorial"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change RGB Operator"
-msgstr ""
+msgstr "Mudar operador RGB"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Toggle Rot Only"
-msgstr ""
+msgstr "Alternar só rotação"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Function"
-msgstr ""
+msgstr "Mudar Função escalar"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Function"
-msgstr ""
+msgstr "Mudar Função vetorial"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Uniform"
-msgstr ""
+msgstr "Mudar uniforme escalar"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Uniform"
-msgstr ""
+msgstr "Mudar uniforme vetorial"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change RGB Uniform"
-msgstr ""
+msgstr "Mudar uniforme RGB"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Default Value"
-msgstr ""
+msgstr "Mudar valor padrão"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change XForm Uniform"
-msgstr ""
+msgstr "Mudar uniforme XForm"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Texture Uniform"
-msgstr ""
+msgstr "Mudar uniforme textura"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Cubemap Uniform"
-msgstr ""
+msgstr "Mudar uniforme Cubemap"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Comment"
-msgstr ""
+msgstr "Mudar comentário"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Add/Remove to Color Ramp"
-msgstr ""
+msgstr "Adicionar/remover da rampa de cores"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Add/Remove to Curve Map"
-msgstr ""
+msgstr "Adicionar/remover do mapa de curva"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Modify Curve Map"
-msgstr ""
+msgstr "Modificar mapa de curva"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Input Name"
-msgstr ""
+msgstr "Mudar nome de entrada"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Connect Graph Nodes"
-msgstr ""
+msgstr "Conectar Nós do gráfico"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Disconnect Graph Nodes"
-msgstr ""
+msgstr "Desconectar Nós do gráfico"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Remove Shader Graph Node"
-msgstr ""
+msgstr "Remover Nó Shader"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Move Shader Graph Node"
-msgstr ""
+msgstr "Mover Nó Shader"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Duplicate Graph Node(s)"
-msgstr ""
+msgstr "Duplicar Nó(s)"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Delete Shader Graph Node(s)"
-msgstr ""
+msgstr "Apagar Nó(s) Shader"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Error: Cyclic Connection Link"
-msgstr ""
+msgstr "Erro: conexão cíclica"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Error: Missing Input Connections"
-msgstr ""
+msgstr "Erro: Faltam conexões de entrada"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Add Shader Graph Node"
-msgstr ""
+msgstr "Adicionar Nó Shader"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orthogonal"
-msgstr ""
+msgstr "Ortogonal"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Perspective"
-msgstr ""
+msgstr "Perspetiva"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
-msgstr ""
+msgstr "Transformação abortada."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "X-Axis Transform."
-msgstr ""
+msgstr "Transformação no Eixo X."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Y-Axis Transform."
-msgstr ""
+msgstr "Transformação no Eixo Y."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Z-Axis Transform."
-msgstr ""
+msgstr "Transformação no Eixo Z."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Plane Transform."
-msgstr ""
+msgstr "Ver transformação do plano."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
-msgstr ""
+msgstr "A escalar: "
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Translating: "
-msgstr "Transições"
+msgstr "A traduzir: "
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotating %s degrees."
-msgstr ""
+msgstr "A rodar %s graus."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View."
-msgstr ""
+msgstr "Vista de fundo."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom"
-msgstr ""
+msgstr "Fundo"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View."
-msgstr ""
+msgstr "Vista de topo."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View."
-msgstr ""
+msgstr "Vista de trás."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear"
-msgstr ""
+msgstr "Trás"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View."
-msgstr ""
+msgstr "Vista de frente."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front"
-msgstr ""
+msgstr "Frente"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View."
-msgstr ""
+msgstr "Vista de esquerda."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left"
-msgstr ""
+msgstr "Esquerda"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View."
-msgstr ""
+msgstr "Vista de direita."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right"
-msgstr ""
+msgstr "Direita"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Keying is disabled (no key inserted)."
-msgstr ""
+msgstr "Edição desativada (nenhum Ponto inserido)."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Animation Key Inserted."
-msgstr ""
+msgstr "Ponto de Animação inserido."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Objects Drawn"
-msgstr ""
+msgstr "Objetos desenhados"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Material Changes"
-msgstr ""
+msgstr "Mudanças de Material"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Shader Changes"
-msgstr "Alterar"
+msgstr "Alterações do Shader"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Surface Changes"
-msgstr ""
+msgstr "Mudanças de superfície"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Draw Calls"
-msgstr ""
+msgstr "Chamadas de desenho"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Vertices"
-msgstr ""
+msgstr "Vértices"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS"
-msgstr ""
+msgstr "FPS"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align with view"
-msgstr ""
+msgstr "Alinhar com a vista"
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "OK :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "Sem parente para criar instância de filho."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
-msgstr ""
+msgstr "Vista normal"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Wireframe"
-msgstr ""
+msgstr "Vista wireframe"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Overdraw"
-msgstr ""
+msgstr "Vista Overdraw"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Unshaded"
-msgstr ""
+msgstr "Vista sem sombras"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Environment"
-msgstr ""
+msgstr "Ver ambiente"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Gizmos"
-msgstr ""
+msgstr "Ver ferramentas"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Information"
-msgstr ""
+msgstr "Ver informação"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View FPS"
-msgstr ""
+msgstr "Ver FPS"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Half Resolution"
-msgstr "Escalar Selecção"
+msgstr "Meia resolução"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Audio Listener"
-msgstr ""
+msgstr "Audição de áudio"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Doppler Enable"
-msgstr ""
+msgstr "Efeito doppler"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
-msgstr ""
+msgstr "Vista livre esquerda"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Right"
-msgstr ""
+msgstr "Vista livre direita"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Forward"
-msgstr ""
+msgstr "Vista livre frente"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Backwards"
-msgstr ""
+msgstr "Vista livre trás"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Up"
-msgstr ""
+msgstr "Vista livre cima"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Down"
-msgstr ""
+msgstr "Vista livre baixo"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Speed Modifier"
-msgstr ""
+msgstr "Modificador de velocidade Freelook"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "preview"
-msgstr ""
+msgstr "Pré-visualização"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
-msgstr ""
+msgstr "Diálogo XForm"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)\n"
-msgstr ""
+msgstr "Modo seleção (Q)\n"
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
@@ -5141,734 +5266,759 @@ msgid ""
"Alt+Drag: Move\n"
"Alt+RMB: Depth list selection"
msgstr ""
+"Arrastar: Rodar\n"
+"Alt+Arrastar: Mover\n"
+"Alt+RMB: Seleção lista de profundidade"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Move Mode (W)"
-msgstr ""
+msgstr "Modo mover (W)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Mode (E)"
-msgstr ""
+msgstr "Modo rodar (E)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Mode (R)"
-msgstr ""
+msgstr "Modo escalar (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "Coordenadas locais"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "Modo escalar (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Modo Ajuste:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
-msgstr ""
+msgstr "Vista de fundo"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View"
-msgstr ""
+msgstr "Vista de topo"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View"
-msgstr ""
+msgstr "Vista de trás"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View"
-msgstr ""
+msgstr "Vista de frente"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View"
-msgstr ""
+msgstr "Vista esquerda"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View"
-msgstr ""
+msgstr "Vista direita"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Switch Perspective/Orthogonal view"
-msgstr ""
+msgstr "Alternar vista perspetiva/ortogonal"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Insert Animation Key"
-msgstr ""
+msgstr "Inserir Ponto de Animação"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Origin"
-msgstr ""
+msgstr "Focar na origem"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Selection"
-msgstr ""
+msgstr "Focar na seleção"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Selection With View"
-msgstr ""
+msgstr "Alinhar seleção com vista"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Tool Select"
-msgstr "Apagar Seleccionados"
+msgstr "Seleção de ferramenta"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Tool Move"
-msgstr ""
+msgstr "Ferramenta Mover"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Tool Rotate"
-msgstr ""
+msgstr "Ferramenta Rodar"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Tool Scale"
-msgstr ""
+msgstr "Ferramenta escalar"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "Toggle Freelook"
-msgstr "Accionar Breakpoint"
+msgstr "Alternar Freelook"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform"
-msgstr ""
+msgstr "Transformar"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Configure Snap.."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
+msgstr "Configurar Ajuste..."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
-msgstr ""
+msgstr "Diálogo de transformação..."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "1 Viewport"
-msgstr ""
+msgstr "1 Vista"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports"
-msgstr ""
+msgstr "2 vistas"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports (Alt)"
-msgstr ""
+msgstr "2 vistas (Alt)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports"
-msgstr ""
+msgstr "3 vistas"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports (Alt)"
-msgstr ""
+msgstr "3 vistas (Alt)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "4 Viewports"
-msgstr ""
+msgstr "4 vistas"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Origin"
-msgstr ""
+msgstr "Ver origem"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Grid"
-msgstr ""
+msgstr "Ver grelha"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings"
+msgstr "Configuração"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
-msgstr ""
+msgstr "Configuração do Ajuste"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translate Snap:"
-msgstr ""
+msgstr "Ajuste de translação:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Snap (deg.):"
-msgstr ""
+msgstr "Ajuste de rotação (graus):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Snap (%):"
-msgstr ""
+msgstr "Ajuste de escala (%):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Viewport Settings"
-msgstr ""
+msgstr "Configuração de vista"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Perspective FOV (deg.):"
-msgstr ""
+msgstr "Perspetiva FOV (graus):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Near:"
-msgstr ""
+msgstr "Ver Z-Near:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Far:"
-msgstr ""
+msgstr "Ver Z-Far:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Change"
-msgstr ""
+msgstr "Mudar Transformação"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translate:"
-msgstr ""
+msgstr "Translação:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate (deg.):"
-msgstr ""
+msgstr "Rotação (graus):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale (ratio):"
-msgstr ""
+msgstr "Escala (prop.):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Type"
-msgstr ""
+msgstr "Tipo de transformação"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Pre"
-msgstr ""
+msgstr "Pré"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Post"
-msgstr ""
+msgstr "Pós"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "ERROR: Couldn't load frame resource!"
-msgstr ""
+msgstr "ERRO: Recurso de Frame não carregado!"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Frame"
-msgstr ""
+msgstr "Adicionar Frame"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Resource clipboard is empty or not a texture!"
-msgstr ""
+msgstr "Recurso da Ãrea de Transferência vazio ou não é textura!"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Paste Frame"
-msgstr ""
+msgstr "Colar Frame"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Empty"
-msgstr ""
+msgstr "Adicionar vazio"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr ""
+msgstr "Mudar ciclo de Animação"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
-msgstr ""
+msgstr "Mudar FPS da Animação"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "(empty)"
-msgstr ""
+msgstr "(vazio)"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Animations"
-msgstr ""
+msgstr "Animações"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Speed (FPS):"
-msgstr ""
+msgstr "Velocidade (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Loop"
-msgstr ""
+msgstr "Ciclo"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Animation Frames"
-msgstr ""
+msgstr "Frames da Animação"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Insert Empty (Before)"
-msgstr ""
+msgstr "Inserir vazio (antes)"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Insert Empty (After)"
-msgstr ""
+msgstr "Inserir vazio (depois)"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Move (Before)"
-msgstr ""
+msgstr "Mover (antes)"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Move (After)"
-msgstr ""
+msgstr "Mover (depois)"
#: editor/plugins/style_box_editor_plugin.cpp
msgid "StyleBox Preview:"
-msgstr ""
+msgstr "Pré-visualização StyleBox:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Set Region Rect"
-msgstr ""
+msgstr "Definir região Rect"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap Mode:"
-msgstr ""
+msgstr "Modo Ajuste:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "<None>"
-msgstr ""
+msgstr "<Nenhum>"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Pixel Snap"
-msgstr ""
+msgstr "Ajuste de pixel"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Snap"
-msgstr ""
+msgstr "Ajuste de grelha"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Auto Slice"
-msgstr ""
+msgstr "Corte automático"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Offset:"
-msgstr ""
+msgstr "Compensação:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Step:"
-msgstr ""
+msgstr "Passo:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Separation:"
-msgstr ""
+msgstr "Separação:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Texture Region"
-msgstr ""
+msgstr "Região de textura"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Texture Region Editor"
-msgstr ""
+msgstr "Editor da região de textura"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Can't save theme to file:"
-msgstr ""
+msgstr "Impossível guardar tema para Ficheiro:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add All Items"
-msgstr ""
+msgstr "Adicionar todos os itens"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add All"
-msgstr ""
+msgstr "Adicionar tudo"
#: editor/plugins/theme_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove Item"
-msgstr ""
+msgstr "Remover item"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All Items"
-msgstr "Remover Variável"
+msgstr "Remover todos os itens"
#: editor/plugins/theme_editor_plugin.cpp
-#, fuzzy
msgid "Remove All"
-msgstr "Remover Sinal"
+msgstr "Remover tudo"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Edit theme.."
-msgstr ""
+msgstr "Editar tema..."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme editing menu."
-msgstr ""
+msgstr "Menu edição de tema."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
-msgstr ""
+msgstr "Adicionar itens de classe"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
-msgstr ""
+msgstr "Remover itens de classe"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create Empty Template"
-msgstr ""
+msgstr "Criar Modelo vazio"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create Empty Editor Template"
-msgstr ""
+msgstr "Criar Modelo Editor vazio"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create From Current Editor Theme"
-msgstr ""
+msgstr "Criar a partir de tema Editor atual"
#: editor/plugins/theme_editor_plugin.cpp
msgid "CheckBox Radio1"
-msgstr ""
+msgstr "Caixa de seleção Radio1"
#: editor/plugins/theme_editor_plugin.cpp
msgid "CheckBox Radio2"
-msgstr ""
+msgstr "Caixa de seleção Radio2"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Item"
-msgstr ""
+msgstr "Item"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Check Item"
-msgstr ""
+msgstr "Verificar item"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Checked Item"
-msgstr ""
+msgstr "Item verificado"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Has"
-msgstr ""
+msgstr "Tem"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Many"
-msgstr ""
+msgstr "Muitos"
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
msgid "Options"
-msgstr ""
+msgstr "Opções"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Have,Many,Several,Options!"
-msgstr ""
+msgstr "Tem,Muitos,Vários,Opções!"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Tab 1"
-msgstr ""
+msgstr "Aba 1"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Tab 2"
-msgstr ""
+msgstr "Aba 2"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Tab 3"
-msgstr ""
+msgstr "Aba 3"
#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
#: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp
msgid "Type:"
-msgstr ""
+msgstr "Tipo:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Data Type:"
-msgstr ""
+msgstr "Tipo de dados:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Icon"
-msgstr ""
+msgstr "Ãcone"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Style"
-msgstr ""
+msgstr "Estilo"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Font"
-msgstr ""
+msgstr "Letra"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Color"
-msgstr ""
+msgstr "Cor"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
-msgstr ""
+msgstr "Apagar seleção"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint TileMap"
-msgstr ""
+msgstr "Pintar TileMap"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Line Draw"
-msgstr ""
+msgstr "Desenhar linha"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Rectangle Paint"
-msgstr ""
+msgstr "Pintar retângulo"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Bucket Fill"
-msgstr ""
+msgstr "Preencher"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase TileMap"
-msgstr ""
+msgstr "Apagar TileMap"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase selection"
-msgstr ""
+msgstr "Apagar seleção"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Find tile"
-msgstr ""
+msgstr "Encontrar tile"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Transpose"
-msgstr ""
+msgstr "Transpor"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Mirror X"
-msgstr ""
+msgstr "Espelho X"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Mirror Y"
-msgstr ""
+msgstr "Espelho Y"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint Tile"
-msgstr ""
+msgstr "Pintar tile"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Pick Tile"
-msgstr ""
+msgstr "Escolher tile"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate 0 degrees"
-msgstr ""
+msgstr "Rodar 0 graus"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate 90 degrees"
-msgstr ""
+msgstr "Rodar 90 graus"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate 180 degrees"
-msgstr ""
+msgstr "Rodar 180 graus"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate 270 degrees"
-msgstr ""
+msgstr "Rodar 270 graus"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Could not find tile:"
-msgstr ""
+msgstr "Tile não encontrado:"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Item name or ID:"
-msgstr ""
+msgstr "Nome ou ID do item:"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from scene?"
-msgstr ""
+msgstr "Criar a partir da Cena?"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Merge from scene?"
-msgstr ""
+msgstr "Fundir a partir da Cena?"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet.."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
-msgstr ""
+msgstr "Criar a partir da Cena"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Merge from Scene"
-msgstr ""
+msgstr "Fundir a partir da Cena"
#: editor/plugins/tile_set_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Error"
-msgstr ""
+msgstr "Erro"
+
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Cancelar"
#: editor/project_export.cpp
msgid "Runnable"
-msgstr ""
+msgstr "Executável"
#: editor/project_export.cpp
msgid "Delete patch '%s' from list?"
-msgstr ""
+msgstr "Apagar correção '%s' da lista?"
#: editor/project_export.cpp
msgid "Delete preset '%s'?"
-msgstr ""
+msgstr "Apagar predefinição '%s'?"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing/corrupted: "
msgstr ""
+"Modelos de exportação para esta plataforma estão ausentes/corrompidos: "
#: editor/project_export.cpp
msgid "Presets"
-msgstr ""
+msgstr "Predefinições"
#: editor/project_export.cpp editor/project_settings_editor.cpp
msgid "Add.."
-msgstr ""
+msgstr "Adicionar..."
#: editor/project_export.cpp
msgid "Resources"
-msgstr ""
+msgstr "Recursos"
#: editor/project_export.cpp
msgid "Export all resources in the project"
-msgstr ""
+msgstr "Exportar todos os recursos do Projeto"
#: editor/project_export.cpp
msgid "Export selected scenes (and dependencies)"
-msgstr ""
+msgstr "Exportar Cenas (e dependências) selecionadas"
#: editor/project_export.cpp
msgid "Export selected resources (and dependencies)"
-msgstr ""
+msgstr "Exportar recursos (e dependências) selecionados"
#: editor/project_export.cpp
msgid "Export Mode:"
-msgstr ""
+msgstr "Modo exportação:"
#: editor/project_export.cpp
msgid "Resources to export:"
-msgstr ""
+msgstr "Recursos a exportar:"
#: editor/project_export.cpp
msgid ""
"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)"
msgstr ""
+"Filtros para exportar Ficheiros não-recursos (separados por vírgula, ex: *."
+"json, *.txt)"
#: editor/project_export.cpp
msgid ""
"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)"
msgstr ""
+"Filtros para excluir Ficheiros do Projeto (separados por vírgula, ex: *."
+"json, *.txt)"
#: editor/project_export.cpp
msgid "Patches"
-msgstr ""
+msgstr "Correções"
#: editor/project_export.cpp
msgid "Make Patch"
-msgstr ""
+msgstr "Fazer correção"
#: editor/project_export.cpp
msgid "Features"
-msgstr ""
+msgstr "Características"
#: editor/project_export.cpp
msgid "Custom (comma-separated):"
-msgstr ""
+msgstr "Personalizado (separados por vírgula):"
#: editor/project_export.cpp
msgid "Feature List:"
-msgstr ""
+msgstr "Lista de características:"
#: editor/project_export.cpp
msgid "Export PCK/Zip"
-msgstr ""
+msgstr "Exportar PCK/Zip"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing:"
-msgstr ""
+msgstr "Não existem Modelos de exportação para esta plataforma:"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing/corrupted:"
msgstr ""
+"Modelos de exportação para esta plataforma estão ausentes/corrompidos :"
#: editor/project_export.cpp
msgid "Export With Debug"
-msgstr ""
+msgstr "Exportar com depuração"
#: editor/project_manager.cpp
msgid "The path does not exist."
-msgstr ""
+msgstr "O Caminho não existe."
#: editor/project_manager.cpp
msgid "Please choose a 'project.godot' file."
-msgstr ""
+msgstr "Escolha um Ficheiro 'project.godot'."
#: editor/project_manager.cpp
msgid ""
"Your project will be created in a non empty folder (you might want to create "
"a new folder)."
msgstr ""
+"O Projeto será criado numa pasta não vazia (poderá preferir criar uma nova "
+"pasta)."
#: editor/project_manager.cpp
msgid "Please choose a folder that does not contain a 'project.godot' file."
-msgstr ""
+msgstr "Escolha uma pasta que não contenha um Ficheiro 'project.godot'."
#: editor/project_manager.cpp
msgid "Imported Project"
-msgstr ""
-
-#: editor/project_manager.cpp
-msgid " "
-msgstr ""
+msgstr "Projeto importado"
#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
-msgstr ""
+msgstr "Seria uma boa ideia dar um nome ao Projeto."
#: editor/project_manager.cpp
msgid "Invalid project path (changed anything?)."
-msgstr ""
+msgstr "Caminho de Projeto inválido (alguma alteração?)."
#: editor/project_manager.cpp
msgid "Couldn't get project.godot in project path."
-msgstr ""
+msgstr "Impossível encontrar project.godot no Caminho do Projeto."
#: editor/project_manager.cpp
msgid "Couldn't edit project.godot in project path."
-msgstr ""
+msgstr "Impossível editar project.godot no Caminho do Projeto."
#: editor/project_manager.cpp
msgid "Couldn't create project.godot in project path."
-msgstr ""
+msgstr "Impossível criar project.godot no Caminho do Projeto."
#: editor/project_manager.cpp
msgid "The following files failed extraction from package:"
-msgstr ""
+msgstr "Falhou a extração dos seguintes Ficheiros do pacote:"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Rename Project"
-msgstr "Alterar nome da Função"
+msgstr "Renomear Projeto"
#: editor/project_manager.cpp
msgid "Couldn't get project.godot in the project path."
-msgstr ""
+msgstr "Impossível encontrar project.godot no Caminho do Projeto."
#: editor/project_manager.cpp
msgid "New Game Project"
-msgstr ""
+msgstr "Novo Projeto de jogo"
#: editor/project_manager.cpp
msgid "Import Existing Project"
-msgstr ""
+msgstr "Importar Projeto existente"
#: editor/project_manager.cpp
msgid "Create New Project"
-msgstr ""
+msgstr "Criar novo Projeto"
#: editor/project_manager.cpp
msgid "Install Project:"
-msgstr ""
+msgstr "Instalar Projeto:"
#: editor/project_manager.cpp
msgid "Project Name:"
-msgstr ""
+msgstr "Nome do Projeto:"
#: editor/project_manager.cpp
msgid "Create folder"
-msgstr ""
+msgstr "Criar pasta"
#: editor/project_manager.cpp
msgid "Project Path:"
-msgstr ""
+msgstr "Caminho do Projeto:"
#: editor/project_manager.cpp
msgid "Browse"
-msgstr ""
+msgstr "Navegar"
#: editor/project_manager.cpp
msgid "That's a BINGO!"
-msgstr ""
+msgstr "É um BINGO!"
#: editor/project_manager.cpp
msgid "Unnamed Project"
-msgstr ""
+msgstr "Projeto sem nome"
#: editor/project_manager.cpp
msgid "Can't open project"
-msgstr ""
+msgstr "Impossível abrir Projeto"
#: editor/project_manager.cpp
msgid "Are you sure to open more than one project?"
-msgstr ""
+msgstr "Está seguro que quer abrir mais do que um Projeto?"
#: editor/project_manager.cpp
msgid ""
@@ -5876,1086 +6026,1156 @@ msgid ""
"Please edit the project and set the main scene in \"Project Settings\" under "
"the \"Application\" category."
msgstr ""
+"Impossível executar o Projeto: Cena principal não definida.\n"
+"Edite o Projeto e defina a Cena principal em \"Definições do Projeto\" "
+"dentro da categoria \"Aplicação\"."
#: editor/project_manager.cpp
msgid ""
"Can't run project: Assets need to be imported.\n"
"Please edit the project to trigger the initial import."
msgstr ""
+"Impossível executar o Projeto: Ativos têm de ser importados.\n"
+"Edite o Projeto para desencadear a importação inicial."
#: editor/project_manager.cpp
msgid "Are you sure to run more than one project?"
-msgstr ""
+msgstr "Está seguro que quer executar mais do que um Projeto?"
#: editor/project_manager.cpp
msgid "Remove project from the list? (Folder contents will not be modified)"
-msgstr ""
+msgstr "Remover Projeto da lista? (O conteúdo da pasta não será modificado)"
#: editor/project_manager.cpp
msgid ""
"Language changed.\n"
"The UI will update next time the editor or project manager starts."
msgstr ""
+"Linguagem alterada.\n"
+"A interface será atualizada da próxima vez que o Editor ou o Gestor de "
+"Projetos arrancar."
#: editor/project_manager.cpp
msgid ""
"You are about the scan %s folders for existing Godot projects. Do you "
"confirm?"
msgstr ""
+"Está prestes a analisar %s pastas para Projetos Godot existentes. Confirma?"
#: editor/project_manager.cpp
msgid "Project List"
-msgstr ""
+msgstr "Lista de Projetos"
#: editor/project_manager.cpp
msgid "Scan"
-msgstr ""
+msgstr "Analisar"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
-msgstr ""
+msgstr "Selecione uma pasta para analisar"
#: editor/project_manager.cpp
msgid "New Project"
-msgstr ""
+msgstr "Novo Projeto"
#: editor/project_manager.cpp
-#, fuzzy
msgid "Templates"
-msgstr "Remover Variável"
+msgstr "Modelos"
#: editor/project_manager.cpp
msgid "Exit"
-msgstr ""
+msgstr "Sair"
#: editor/project_manager.cpp
msgid "Restart Now"
-msgstr ""
+msgstr "Reiniciar agora"
#: editor/project_manager.cpp
msgid "Can't run project"
-msgstr ""
+msgstr "Impossível executar o Projeto"
#: editor/project_manager.cpp
msgid ""
"You don't currently have any projects.\n"
"Would you like to explore the official example projects in the Asset Library?"
msgstr ""
+"Atualmente não tem quaisquer Projetos.\n"
+"Gostaria de explorar os Projetos de exemplo oficiais na Biblioteca de Ativos?"
#: editor/project_settings_editor.cpp
msgid "Key "
-msgstr ""
+msgstr "Tecla "
#: editor/project_settings_editor.cpp
msgid "Joy Button"
-msgstr ""
+msgstr "Botão do joystick"
#: editor/project_settings_editor.cpp
msgid "Joy Axis"
-msgstr ""
+msgstr "Eixo do joystick"
#: editor/project_settings_editor.cpp
msgid "Mouse Button"
-msgstr ""
+msgstr "Botão do rato"
#: editor/project_settings_editor.cpp
msgid "Invalid action (anything goes but '/' or ':')."
-msgstr ""
+msgstr "Ação inválida (tudo menos '/' ou ':')."
#: editor/project_settings_editor.cpp
msgid "Action '%s' already exists!"
-msgstr ""
+msgstr "Ação '%s' já existe!"
#: editor/project_settings_editor.cpp
msgid "Rename Input Action Event"
-msgstr ""
+msgstr "Renomear evento ação de entrada"
#: editor/project_settings_editor.cpp
msgid "Add Input Action Event"
-msgstr ""
+msgstr "Adicionar evento ação de entrada"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Shift+"
-msgstr ""
+msgstr "Shift+"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Alt+"
-msgstr ""
+msgstr "Alt+"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Control+"
-msgstr ""
+msgstr "Control+"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key.."
-msgstr ""
+msgstr "Pressione uma tecla..."
#: editor/project_settings_editor.cpp
msgid "Mouse Button Index:"
-msgstr ""
+msgstr "Ãndice do botão do rato:"
#: editor/project_settings_editor.cpp
msgid "Left Button"
-msgstr ""
+msgstr "Botão esquerdo"
#: editor/project_settings_editor.cpp
msgid "Right Button"
-msgstr ""
+msgstr "Botão direito"
#: editor/project_settings_editor.cpp
msgid "Middle Button"
-msgstr ""
+msgstr "Botão do meio"
#: editor/project_settings_editor.cpp
msgid "Wheel Up Button"
-msgstr ""
+msgstr "Botão roda para cima"
#: editor/project_settings_editor.cpp
msgid "Wheel Down Button"
-msgstr ""
+msgstr "Botão roda para baixo"
#: editor/project_settings_editor.cpp
msgid "Button 6"
-msgstr ""
+msgstr "Botão 6"
#: editor/project_settings_editor.cpp
msgid "Button 7"
-msgstr ""
+msgstr "Botão 7"
#: editor/project_settings_editor.cpp
msgid "Button 8"
-msgstr ""
+msgstr "Botão 8"
#: editor/project_settings_editor.cpp
msgid "Button 9"
-msgstr ""
+msgstr "Botão 9"
#: editor/project_settings_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Change"
-msgstr "Alterar"
+msgstr "Mudar"
#: editor/project_settings_editor.cpp
msgid "Joypad Axis Index:"
-msgstr ""
+msgstr "Ãndice do Eixo do joystick:"
#: editor/project_settings_editor.cpp
msgid "Axis"
-msgstr ""
+msgstr "Eixo"
#: editor/project_settings_editor.cpp
msgid "Joypad Button Index:"
-msgstr ""
+msgstr "Ãndice do botão do joypad:"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr ""
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Apagar evento ação de entrada"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
-msgstr ""
+msgstr "Apagar evento ação de entrada"
#: editor/project_settings_editor.cpp
msgid "Add Event"
-msgstr ""
+msgstr "Adicionar evento"
#: editor/project_settings_editor.cpp
msgid "Device"
-msgstr ""
+msgstr "Dispositivo"
#: editor/project_settings_editor.cpp
msgid "Button"
-msgstr ""
+msgstr "Botão"
#: editor/project_settings_editor.cpp
msgid "Left Button."
-msgstr ""
+msgstr "Botão esquerdo."
#: editor/project_settings_editor.cpp
msgid "Right Button."
-msgstr ""
+msgstr "Botão direito."
#: editor/project_settings_editor.cpp
msgid "Middle Button."
-msgstr ""
+msgstr "Botão do meio."
#: editor/project_settings_editor.cpp
msgid "Wheel Up."
-msgstr ""
+msgstr "Roda para cima."
#: editor/project_settings_editor.cpp
msgid "Wheel Down."
-msgstr ""
+msgstr "Roda para baixo."
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Add Global Property"
-msgstr "Adicionar propriedade Getter"
+msgstr "Adicionar Propriedade global"
#: editor/project_settings_editor.cpp
msgid "Select a setting item first!"
-msgstr ""
+msgstr "Selecione primeiro um item de configuração!"
#: editor/project_settings_editor.cpp
msgid "No property '%s' exists."
-msgstr ""
+msgstr "Não existe a Propriedade '%s'."
#: editor/project_settings_editor.cpp
msgid "Setting '%s' is internal, and it can't be deleted."
-msgstr ""
+msgstr "Configuração '%s' é interna e não pode ser removida."
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Delete Item"
-msgstr "Apagar Seleccionados"
+msgstr "Apagar item"
#: editor/project_settings_editor.cpp
msgid "Can't contain '/' or ':'"
-msgstr ""
+msgstr "Não pode conter '/' ou ':'"
#: editor/project_settings_editor.cpp
msgid "Already existing"
-msgstr ""
+msgstr "Já existe"
+
+#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "Adicionar ação de entrada"
#: editor/project_settings_editor.cpp
msgid "Error saving settings."
-msgstr ""
+msgstr "Erro ao guardar configuração."
#: editor/project_settings_editor.cpp
msgid "Settings saved OK."
-msgstr ""
+msgstr "Configuração guardada."
#: editor/project_settings_editor.cpp
msgid "Override for Feature"
-msgstr ""
+msgstr "Sobrepor por característica"
#: editor/project_settings_editor.cpp
msgid "Add Translation"
-msgstr ""
+msgstr "Adicionar tradução"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
-msgstr ""
+msgstr "Remover tradução"
#: editor/project_settings_editor.cpp
msgid "Add Remapped Path"
-msgstr ""
+msgstr "Adicionar correção remapeada"
#: editor/project_settings_editor.cpp
msgid "Resource Remap Add Remap"
-msgstr ""
+msgstr "Recurso Remap Adicionar Remap"
#: editor/project_settings_editor.cpp
msgid "Change Resource Remap Language"
-msgstr ""
+msgstr "Mudar Recurso Linguagem Remap"
#: editor/project_settings_editor.cpp
msgid "Remove Resource Remap"
-msgstr ""
+msgstr "Remover remapeamento de recurso"
#: editor/project_settings_editor.cpp
msgid "Remove Resource Remap Option"
-msgstr ""
+msgstr "Remover Recurso Opção Remap"
#: editor/project_settings_editor.cpp
msgid "Changed Locale Filter"
-msgstr ""
+msgstr "Filtro de localização alterado"
#: editor/project_settings_editor.cpp
msgid "Changed Locale Filter Mode"
-msgstr ""
+msgstr "Modo filtro de localização alterado"
#: editor/project_settings_editor.cpp
msgid "Project Settings (project.godot)"
-msgstr ""
+msgstr "Definições do Projeto (project.godot)"
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "General"
-msgstr ""
+msgstr "Geral"
#: editor/project_settings_editor.cpp editor/property_editor.cpp
msgid "Property:"
-msgstr ""
+msgstr "Propriedade:"
#: editor/project_settings_editor.cpp
msgid "Override For.."
-msgstr ""
+msgstr "Sobrepor por..."
#: editor/project_settings_editor.cpp
msgid "Input Map"
-msgstr ""
+msgstr "Mapa de entrada"
#: editor/project_settings_editor.cpp
msgid "Action:"
-msgstr ""
+msgstr "Ação:"
#: editor/project_settings_editor.cpp
msgid "Device:"
-msgstr ""
+msgstr "Dispositivo:"
#: editor/project_settings_editor.cpp
msgid "Index:"
-msgstr ""
+msgstr "Ãndice:"
#: editor/project_settings_editor.cpp
msgid "Localization"
-msgstr ""
+msgstr "Localização"
#: editor/project_settings_editor.cpp
msgid "Translations"
-msgstr ""
+msgstr "Traduções"
#: editor/project_settings_editor.cpp
msgid "Translations:"
-msgstr ""
+msgstr "Traduções:"
#: editor/project_settings_editor.cpp
msgid "Remaps"
-msgstr ""
+msgstr "Remapeamentos"
#: editor/project_settings_editor.cpp
msgid "Resources:"
-msgstr ""
+msgstr "Recursos:"
#: editor/project_settings_editor.cpp
msgid "Remaps by Locale:"
-msgstr ""
+msgstr "Remapear por localização:"
#: editor/project_settings_editor.cpp
msgid "Locale"
-msgstr ""
+msgstr "Localização"
#: editor/project_settings_editor.cpp
msgid "Locales Filter"
-msgstr ""
+msgstr "Filtro de localização"
#: editor/project_settings_editor.cpp
msgid "Show all locales"
-msgstr ""
+msgstr "Mostrar todas as localizações"
#: editor/project_settings_editor.cpp
msgid "Show only selected locales"
-msgstr ""
+msgstr "Mostrar apenas localizações selecionadas"
#: editor/project_settings_editor.cpp
msgid "Filter mode:"
-msgstr ""
+msgstr "Modo de filtro:"
#: editor/project_settings_editor.cpp
msgid "Locales:"
-msgstr ""
+msgstr "Localizações:"
#: editor/project_settings_editor.cpp
msgid "AutoLoad"
-msgstr ""
+msgstr "Carregamento automático"
#: editor/property_editor.cpp
msgid "Pick a Viewport"
-msgstr ""
+msgstr "Escolha uma vista"
#: editor/property_editor.cpp
msgid "Ease In"
-msgstr ""
+msgstr "Ease In"
#: editor/property_editor.cpp
msgid "Ease Out"
-msgstr ""
+msgstr "Ease Out"
#: editor/property_editor.cpp
msgid "Zero"
-msgstr ""
+msgstr "Zero"
#: editor/property_editor.cpp
msgid "Easing In-Out"
-msgstr ""
+msgstr "Easing In-Out"
#: editor/property_editor.cpp
msgid "Easing Out-In"
-msgstr ""
+msgstr "Easing Out-In"
#: editor/property_editor.cpp
msgid "File.."
-msgstr ""
+msgstr "Ficheiro..."
#: editor/property_editor.cpp
msgid "Dir.."
-msgstr ""
+msgstr "Diretoria..."
#: editor/property_editor.cpp
msgid "Assign"
-msgstr ""
+msgstr "Atribuir"
#: editor/property_editor.cpp
-#, fuzzy
msgid "Select Node"
-msgstr "Adicionar propriedade Setter"
+msgstr "Selecionar Nó"
#: editor/property_editor.cpp
msgid "New Script"
+msgstr "Novo Script"
+
+#: editor/property_editor.cpp
+msgid "New %s"
msgstr ""
#: editor/property_editor.cpp
msgid "Make Unique"
-msgstr ""
+msgstr "Fazer único"
#: editor/property_editor.cpp
msgid "Show in File System"
-msgstr ""
+msgstr "Mostrar no Sistema de Ficheiros"
#: editor/property_editor.cpp
msgid "Convert To %s"
-msgstr ""
+msgstr "Converter em %s"
#: editor/property_editor.cpp
msgid "Error loading file: Not a resource!"
-msgstr ""
+msgstr "Erro ao carregar Ficheiro: Não é um recurso!"
#: editor/property_editor.cpp
msgid "Selected node is not a Viewport!"
-msgstr ""
+msgstr "Nó selecionado não é uma vista!"
#: editor/property_editor.cpp
msgid "Pick a Node"
-msgstr ""
+msgstr "Escolha um Nó"
#: editor/property_editor.cpp
msgid "Bit %d, val %d."
-msgstr ""
+msgstr "Bit %d, val %d."
#: editor/property_editor.cpp
msgid "On"
-msgstr ""
+msgstr "On"
+
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "Adicionar vazio"
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
-msgstr ""
+msgstr "Definir"
#: editor/property_editor.cpp
msgid "Properties:"
-msgstr ""
-
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
+msgstr "Propriedades:"
#: editor/property_selector.cpp
-#, fuzzy
msgid "Select Property"
-msgstr "Adicionar propriedade Setter"
+msgstr "Selecionar Propriedade"
#: editor/property_selector.cpp
msgid "Select Virtual Method"
-msgstr ""
+msgstr "Selecione Método virtual"
#: editor/property_selector.cpp
msgid "Select Method"
-msgstr ""
+msgstr "Selecione Método"
#: editor/pvrtc_compress.cpp
msgid "Could not execute PVRTC tool:"
-msgstr ""
+msgstr "Impossível executar ferramenta PVRTC:"
#: editor/pvrtc_compress.cpp
msgid "Can't load back converted image using PVRTC tool:"
-msgstr ""
+msgstr "Impossível carregar imagem convertida com a ferramenta PVRTC:"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent Node"
-msgstr ""
+msgstr "Recolocar Nó"
#: editor/reparent_dialog.cpp
msgid "Reparent Location (Select new Parent):"
-msgstr ""
+msgstr "Recolocar localização (selecionar novo parente):"
#: editor/reparent_dialog.cpp
msgid "Keep Global Transform"
-msgstr ""
+msgstr "Manter transformação global"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent"
-msgstr ""
+msgstr "Recolocar"
#: editor/run_settings_dialog.cpp
msgid "Run Mode:"
-msgstr ""
+msgstr "Modo Execução:"
#: editor/run_settings_dialog.cpp
msgid "Current Scene"
-msgstr ""
+msgstr "Cena atual"
#: editor/run_settings_dialog.cpp
msgid "Main Scene"
-msgstr ""
+msgstr "Cena principal"
#: editor/run_settings_dialog.cpp
msgid "Main Scene Arguments:"
-msgstr ""
+msgstr "Argumentos da Cena principal:"
#: editor/run_settings_dialog.cpp
msgid "Scene Run Settings"
-msgstr ""
+msgstr "Configurações de execução da Cena"
#: editor/scene_tree_dock.cpp editor/script_create_dialog.cpp
#: scene/gui/dialogs.cpp
msgid "OK"
-msgstr ""
+msgstr "OK"
#: editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
-msgstr ""
+msgstr "Nenhum parente para instanciar a Cena."
#: editor/scene_tree_dock.cpp
msgid "Error loading scene from %s"
-msgstr ""
+msgstr "Erro ao carregar a Cena de %s"
#: editor/scene_tree_dock.cpp
msgid "Ok"
-msgstr ""
+msgstr "Ok"
#: editor/scene_tree_dock.cpp
msgid ""
"Cannot instance the scene '%s' because the current scene exists within one "
"of its nodes."
msgstr ""
+"Impossível instanciar a Cena '%s' porque a Cena atual existe dentro de um "
+"dos seus Nós."
#: editor/scene_tree_dock.cpp
msgid "Instance Scene(s)"
-msgstr ""
+msgstr "Cena(s) da Instância"
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on the tree root."
-msgstr ""
+msgstr "Esta operação não pode ser feita na raiz da árvore."
#: editor/scene_tree_dock.cpp
msgid "Move Node In Parent"
-msgstr ""
+msgstr "Mover Nó no parente"
#: editor/scene_tree_dock.cpp
msgid "Move Nodes In Parent"
-msgstr ""
+msgstr "Mover Nós no parente"
#: editor/scene_tree_dock.cpp
msgid "Duplicate Node(s)"
-msgstr ""
+msgstr "Duplicar Nó(s)"
#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
-msgstr ""
+msgstr "Apagar Nó(s)?"
#: editor/scene_tree_dock.cpp
msgid "Can not perform with the root node."
-msgstr ""
+msgstr "Impossível executar com o Nó raiz."
#: editor/scene_tree_dock.cpp
msgid "This operation can't be done on instanced scenes."
-msgstr ""
+msgstr "Esta operação não pode ser feita numa Cena instanciada."
#: editor/scene_tree_dock.cpp
msgid "Save New Scene As.."
-msgstr ""
+msgstr "Guardar nova Cena como..."
#: editor/scene_tree_dock.cpp
msgid "Editable Children"
-msgstr ""
+msgstr "Filhos editáveis"
#: editor/scene_tree_dock.cpp
msgid "Load As Placeholder"
-msgstr ""
+msgstr "Carregar como marcador de posição"
#: editor/scene_tree_dock.cpp
msgid "Discard Instancing"
-msgstr ""
+msgstr "Descartar instância"
#: editor/scene_tree_dock.cpp
msgid "Makes Sense!"
-msgstr ""
+msgstr "Faz sentido!"
#: editor/scene_tree_dock.cpp
msgid "Can't operate on nodes from a foreign scene!"
-msgstr ""
+msgstr "Impossível operar em Nós de uma Cena externa!"
#: editor/scene_tree_dock.cpp
msgid "Can't operate on nodes the current scene inherits from!"
-msgstr ""
+msgstr "Impossível operar em Nós herdados pela Cena atual!"
#: editor/scene_tree_dock.cpp
msgid "Remove Node(s)"
-msgstr ""
+msgstr "Remover Nó(s)"
#: editor/scene_tree_dock.cpp
msgid ""
"Couldn't save new scene. Likely dependencies (instances) couldn't be "
"satisfied."
msgstr ""
+"Impossível guardar nova Cena. Provavelmente dependências (instâncias) não "
+"foram satisfeitas."
#: editor/scene_tree_dock.cpp
msgid "Error saving scene."
-msgstr ""
+msgstr "Erro ao guardar Cena."
#: editor/scene_tree_dock.cpp
msgid "Error duplicating scene to save it."
-msgstr ""
+msgstr "Erro ao duplicar Cena para guardar."
#: editor/scene_tree_dock.cpp
msgid "Sub-Resources:"
-msgstr ""
+msgstr "Sub-recursos:"
#: editor/scene_tree_dock.cpp
msgid "Clear Inheritance"
-msgstr ""
+msgstr "Limpar herança"
#: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp
msgid "Open in Editor"
-msgstr ""
+msgstr "Abrir no Editor"
#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)"
-msgstr ""
+msgstr "Apagar Nó(s)"
#: editor/scene_tree_dock.cpp
msgid "Add Child Node"
-msgstr ""
+msgstr "Adicionar Nó filho"
#: editor/scene_tree_dock.cpp
msgid "Instance Child Scene"
-msgstr ""
+msgstr "Instanciar Cena filha"
#: editor/scene_tree_dock.cpp
msgid "Change Type"
-msgstr ""
+msgstr "Mudar tipo"
#: editor/scene_tree_dock.cpp
msgid "Attach Script"
-msgstr ""
+msgstr "Anexar Script"
#: editor/scene_tree_dock.cpp
msgid "Clear Script"
-msgstr ""
+msgstr "Limpar Script"
#: editor/scene_tree_dock.cpp
msgid "Merge From Scene"
-msgstr ""
+msgstr "Fundir a partir da Cena"
#: editor/scene_tree_dock.cpp
msgid "Save Branch as Scene"
-msgstr ""
+msgstr "Guardar ramo como Cena"
#: editor/scene_tree_dock.cpp
msgid "Copy Node Path"
-msgstr ""
+msgstr "Copiar Caminho do Nó"
#: editor/scene_tree_dock.cpp
msgid "Delete (No Confirm)"
-msgstr ""
+msgstr "Apagar (sem confirmação)"
#: editor/scene_tree_dock.cpp
msgid "Add/Create a New Node"
-msgstr ""
+msgstr "Adicionar/criar novo Nó"
#: editor/scene_tree_dock.cpp
msgid ""
"Instance a scene file as a Node. Creates an inherited scene if no root node "
"exists."
msgstr ""
+"Instanciar Ficheiro de Cena como Nó. Cria uma Cena herdada se não existir Nó "
+"raiz."
#: editor/scene_tree_dock.cpp
msgid "Filter nodes"
-msgstr ""
+msgstr "Filtrar Nós"
#: editor/scene_tree_dock.cpp
msgid "Attach a new or existing script for the selected node."
-msgstr ""
+msgstr "Anexar Script novo ou existente ao Nó selecionado."
#: editor/scene_tree_dock.cpp
msgid "Clear a script for the selected node."
-msgstr ""
+msgstr "Limpar Script do Nó selecionado."
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Remote"
-msgstr "Remover Sinal"
+msgstr "Remoto"
#: editor/scene_tree_dock.cpp
msgid "Local"
-msgstr ""
+msgstr "Local"
#: editor/scene_tree_dock.cpp
msgid "Clear Inheritance? (No Undo!)"
-msgstr ""
+msgstr "Limpar herança? (Sem retrocesso!)"
#: editor/scene_tree_dock.cpp
msgid "Clear!"
-msgstr ""
+msgstr "Limpo!"
#: editor/scene_tree_editor.cpp
msgid "Toggle Spatial Visible"
-msgstr ""
+msgstr "Alternar visibilidade espacial"
#: editor/scene_tree_editor.cpp
msgid "Toggle CanvasItem Visible"
-msgstr ""
+msgstr "Alternar visibilidade do CanvasItem"
#: editor/scene_tree_editor.cpp
msgid "Node configuration warning:"
-msgstr ""
+msgstr "Aviso de configuração do Nó:"
#: editor/scene_tree_editor.cpp
msgid ""
"Node has connection(s) and group(s)\n"
"Click to show signals dock."
msgstr ""
+"Nó tem conexões e grupo(s).\n"
+"Clique para mostrar doca dos sinais."
#: editor/scene_tree_editor.cpp
msgid ""
"Node has connections.\n"
"Click to show signals dock."
msgstr ""
+"Nó tem conexões.\n"
+"Clique para mostrar doca dos sinais."
#: editor/scene_tree_editor.cpp
msgid ""
"Node is in group(s).\n"
"Click to show groups dock."
msgstr ""
+"Nó está em grupo(s).\n"
+"Clique para mostrar doca dos grupos."
#: editor/scene_tree_editor.cpp
msgid "Instance:"
-msgstr ""
+msgstr "Instância:"
#: editor/scene_tree_editor.cpp
msgid "Open script"
-msgstr ""
+msgstr "Abrir Script"
#: editor/scene_tree_editor.cpp
msgid ""
"Node is locked.\n"
"Click to unlock"
msgstr ""
+"Nó está bloqueado.\n"
+"Clique para desbloquear"
#: editor/scene_tree_editor.cpp
msgid ""
"Children are not selectable.\n"
"Click to make selectable"
msgstr ""
+"Filhos não são selecionáveis.\n"
+"Clique para os tornar selecionáveis"
#: editor/scene_tree_editor.cpp
msgid "Toggle Visibility"
-msgstr ""
+msgstr "Alternar visibilidade"
#: editor/scene_tree_editor.cpp
msgid "Invalid node name, the following characters are not allowed:"
-msgstr ""
+msgstr "Nome de Nó inválido, os carateres seguintes não são permitidos:"
#: editor/scene_tree_editor.cpp
msgid "Rename Node"
-msgstr ""
+msgstr "Renomear Nó"
#: editor/scene_tree_editor.cpp
msgid "Scene Tree (Nodes):"
-msgstr ""
+msgstr "Ãrvore de Cena (Nós):"
#: editor/scene_tree_editor.cpp
msgid "Node Configuration Warning!"
-msgstr ""
+msgstr "Aviso de configuração de Nó!"
#: editor/scene_tree_editor.cpp
msgid "Select a Node"
-msgstr ""
+msgstr "Selecione um Nó"
#: editor/script_create_dialog.cpp
msgid "Error loading template '%s'"
-msgstr ""
+msgstr "Erro ao carregar Modelo '%s'"
#: editor/script_create_dialog.cpp
msgid "Error - Could not create script in filesystem."
-msgstr ""
+msgstr "Erro - Impossível criar Script no Sistema de Ficheiros."
#: editor/script_create_dialog.cpp
msgid "Error loading script from %s"
-msgstr ""
+msgstr "Erro ao carregar Script de '%s'"
#: editor/script_create_dialog.cpp
msgid "N/A"
-msgstr ""
+msgstr "N/A"
#: editor/script_create_dialog.cpp
msgid "Path is empty"
-msgstr ""
+msgstr "Caminho está vazio"
#: editor/script_create_dialog.cpp
msgid "Path is not local"
-msgstr ""
+msgstr "Caminho não é local"
#: editor/script_create_dialog.cpp
msgid "Invalid base path"
-msgstr ""
+msgstr "Caminho base inválido"
#: editor/script_create_dialog.cpp
msgid "Directory of the same name exists"
-msgstr ""
+msgstr "Já existe diretoria com o mesmo nome"
#: editor/script_create_dialog.cpp
msgid "File exists, will be reused"
-msgstr ""
+msgstr "O Ficheiro já existe, será reutilizado"
#: editor/script_create_dialog.cpp
msgid "Invalid extension"
-msgstr ""
+msgstr "Extensão inválida"
#: editor/script_create_dialog.cpp
msgid "Wrong extension chosen"
-msgstr ""
+msgstr "Escolhida uma extensão errada"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Invalid Path"
-msgstr ": Argumentos inválidos: "
+msgstr "Caminho inválido"
#: editor/script_create_dialog.cpp
msgid "Invalid class name"
-msgstr ""
+msgstr "Nome de classe inválida"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Invalid inherited parent name or path"
-msgstr "Nome de índice propriedade inválido."
+msgstr "Nome ou Caminho de parente herdado inválido"
#: editor/script_create_dialog.cpp
msgid "Script valid"
-msgstr ""
+msgstr "Script inválido"
#: editor/script_create_dialog.cpp
msgid "Allowed: a-z, A-Z, 0-9 and _"
-msgstr ""
+msgstr "Permitido: a-z, A-Z, 0-9 e _"
#: editor/script_create_dialog.cpp
msgid "Built-in script (into scene file)"
-msgstr ""
+msgstr "Script incorporado (no Ficheiro da Cena)"
#: editor/script_create_dialog.cpp
msgid "Create new script file"
-msgstr ""
+msgstr "Criar novo Ficheiro de Script"
#: editor/script_create_dialog.cpp
msgid "Load existing script file"
-msgstr ""
+msgstr "Carregar Ficheiro de Script existente"
#: editor/script_create_dialog.cpp
msgid "Language"
-msgstr ""
+msgstr "Linguagem"
#: editor/script_create_dialog.cpp
msgid "Inherits"
-msgstr ""
+msgstr "Herdar"
#: editor/script_create_dialog.cpp
msgid "Class Name"
-msgstr ""
+msgstr "Nome de classe"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Template"
-msgstr "Remover Variável"
+msgstr "Modelo"
#: editor/script_create_dialog.cpp
msgid "Built-in Script"
-msgstr ""
+msgstr "Script incorporado"
#: editor/script_create_dialog.cpp
msgid "Attach Node Script"
-msgstr ""
+msgstr "Anexar Script de Nó"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Remote "
-msgstr "Remover Sinal"
+msgstr "Remoto "
#: editor/script_editor_debugger.cpp
msgid "Bytes:"
-msgstr ""
+msgstr "Bytes:"
#: editor/script_editor_debugger.cpp
msgid "Warning"
-msgstr ""
+msgstr "Aviso"
#: editor/script_editor_debugger.cpp
msgid "Error:"
-msgstr ""
+msgstr "Erro:"
#: editor/script_editor_debugger.cpp
msgid "Source:"
-msgstr ""
+msgstr "Fonte:"
#: editor/script_editor_debugger.cpp
msgid "Function:"
-msgstr ""
+msgstr "Função:"
#: editor/script_editor_debugger.cpp
msgid "Pick one or more items from the list to display the graph."
-msgstr ""
+msgstr "Escolha um ou mais itens da lista para exibir o gráfico."
#: editor/script_editor_debugger.cpp
msgid "Errors"
-msgstr ""
+msgstr "Erros"
#: editor/script_editor_debugger.cpp
msgid "Child Process Connected"
-msgstr ""
+msgstr "Processo filho conectado"
#: editor/script_editor_debugger.cpp
msgid "Inspect Previous Instance"
-msgstr ""
+msgstr "Inspecionar instância anterior"
#: editor/script_editor_debugger.cpp
msgid "Inspect Next Instance"
-msgstr ""
+msgstr "Inspecionar próxima instância"
#: editor/script_editor_debugger.cpp
msgid "Stack Frames"
-msgstr ""
+msgstr "Empilhar Frames"
#: editor/script_editor_debugger.cpp
msgid "Variable"
-msgstr ""
+msgstr "Variável"
#: editor/script_editor_debugger.cpp
msgid "Errors:"
-msgstr ""
+msgstr "Erros:"
#: editor/script_editor_debugger.cpp
msgid "Stack Trace (if applicable):"
-msgstr ""
+msgstr "Rastreamento de pilha (se aplicável):"
#: editor/script_editor_debugger.cpp
msgid "Profiler"
-msgstr ""
+msgstr "Profiler"
#: editor/script_editor_debugger.cpp
msgid "Monitor"
-msgstr ""
+msgstr "Monitor"
#: editor/script_editor_debugger.cpp
msgid "Value"
-msgstr ""
+msgstr "Valor"
#: editor/script_editor_debugger.cpp
msgid "Monitors"
-msgstr ""
+msgstr "Monitores"
#: editor/script_editor_debugger.cpp
msgid "List of Video Memory Usage by Resource:"
-msgstr ""
+msgstr "Lista de utilização de Memória Vídeo por recurso:"
#: editor/script_editor_debugger.cpp
msgid "Total:"
-msgstr ""
+msgstr "Total:"
#: editor/script_editor_debugger.cpp
msgid "Video Mem"
-msgstr ""
+msgstr "Memória Vídeo"
#: editor/script_editor_debugger.cpp
msgid "Resource Path"
-msgstr ""
+msgstr "Caminho de recurso"
#: editor/script_editor_debugger.cpp
msgid "Type"
-msgstr ""
+msgstr "Tipo"
#: editor/script_editor_debugger.cpp
msgid "Format"
-msgstr ""
+msgstr "Formato"
#: editor/script_editor_debugger.cpp
msgid "Usage"
-msgstr ""
+msgstr "Uso"
#: editor/script_editor_debugger.cpp
msgid "Misc"
-msgstr ""
+msgstr "Misc"
#: editor/script_editor_debugger.cpp
msgid "Clicked Control:"
-msgstr ""
+msgstr "Controlo clicado:"
#: editor/script_editor_debugger.cpp
msgid "Clicked Control Type:"
-msgstr ""
+msgstr "Tipo de controlo clicado:"
#: editor/script_editor_debugger.cpp
msgid "Live Edit Root:"
-msgstr ""
+msgstr "Raiz de edição ao vivo:"
#: editor/script_editor_debugger.cpp
msgid "Set From Tree"
-msgstr ""
+msgstr "Definir a partir da árvore"
#: editor/settings_config_dialog.cpp
msgid "Shortcuts"
+msgstr "Atalhos"
+
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
msgstr ""
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
-msgstr ""
+msgstr "Mudar raio da luz"
#: editor/spatial_editor_gizmos.cpp
msgid "Change AudioStreamPlayer3D Emission Angle"
-msgstr ""
+msgstr "Mudar ângulo de emissão de AudioStreamPlayer3D"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Camera FOV"
-msgstr ""
+msgstr "Mudar FOV da câmara"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Camera Size"
-msgstr ""
+msgstr "Mudar tamanho da câmara"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Sphere Shape Radius"
-msgstr ""
+msgstr "Mudar raio da forma esfera"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Box Shape Extents"
-msgstr ""
+msgstr "Mudar medidas da forma caixa"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Capsule Shape Radius"
-msgstr ""
+msgstr "Mudar raio da forma cápsula"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Capsule Shape Height"
-msgstr ""
+msgstr "Mudar altura da forma cápsula"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Ray Shape Length"
-msgstr ""
+msgstr "Mudar comprimento da forma raio"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Notifier Extents"
-msgstr ""
+msgstr "Mudar extensões de notificador"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Particles AABB"
-msgstr ""
+msgstr "Mudar partículas AABB"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Probe Extents"
+msgstr "Mudar extensões de sonda"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
-msgid "Library"
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
-msgid "Status"
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Remover Ponto da curva"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
-msgid "Libraries: "
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
msgstr ""
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "Biblioteca"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "GDNative"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Library"
+msgstr "Biblioteca"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Status"
+msgstr "Status"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Libraries: "
+msgstr "Bibliotecas: "
+
#: modules/gdnative/register_types.cpp
msgid "GDNative"
-msgstr ""
+msgstr "GDNative"
#: modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -6974,15 +7194,15 @@ msgstr "o argumento \"step\" é zero!"
#: modules/gdscript/gdscript_functions.cpp
msgid "Not a script with an instance"
-msgstr "Não é um script com uma instância"
+msgstr "Não é um Script com uma instância"
#: modules/gdscript/gdscript_functions.cpp
msgid "Not based on a script"
-msgstr "Não é baseado num script"
+msgstr "Não é baseado num Script"
#: modules/gdscript/gdscript_functions.cpp
msgid "Not based on a resource file"
-msgstr "Não é baseado num ficheiro de recurso"
+msgstr "Não é baseado num Ficheiro de recurso"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (missing @path)"
@@ -6992,11 +7212,11 @@ msgstr "Formato de dicionário de instância inválido (falta @path)"
msgid "Invalid instance dictionary format (can't load script at @path)"
msgstr ""
"Formato de dicionário de instância inválido (não foi possível carregar o "
-"script em @path)"
+"Script em @path)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (invalid script at @path)"
-msgstr "Formato de dicionário de instância inválido (script inválido em @path)"
+msgstr "Formato de dicionário de instância inválido (Script inválido em @path)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary (invalid subclasses)"
@@ -7004,132 +7224,130 @@ msgstr "Dicionário de instância inválido (subclasses inválidas)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Object can't provide a length."
-msgstr ""
+msgstr "Objeto não fornece um comprimento."
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Delete Selection"
-msgstr "Apagar Seleccionados"
+msgstr "Apagar seleção GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Duplicate Selection"
-msgstr ""
+msgstr "Seleção duplicada de GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Floor:"
-msgstr ""
+msgstr "Piso:"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
-msgstr ""
+msgstr "Mapa de grelha"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Snap View"
-msgstr ""
+msgstr "Vista de Ajuste"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Previous Floor"
-msgstr ""
+msgstr "Piso anterior"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Next Floor"
-msgstr ""
+msgstr "Próximo Piso"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clip Disabled"
-msgstr ""
+msgstr "Recorte desativado"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clip Above"
-msgstr ""
+msgstr "Recorte ativado"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clip Below"
-msgstr ""
+msgstr "Recorte abaixo"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit X Axis"
-msgstr ""
+msgstr "Editar Eixo X"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit Y Axis"
-msgstr ""
+msgstr "Editar Eixo Y"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Edit Z Axis"
-msgstr ""
+msgstr "Editar Eixo Z"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Rotate X"
-msgstr ""
+msgstr "Rodar Cursor X"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Rotate Y"
-msgstr ""
+msgstr "Rodar Cursor Y"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Rotate Z"
-msgstr ""
+msgstr "Rodar Cursor Z"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Back Rotate X"
-msgstr ""
+msgstr "Rodar para trás Cursor X"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Back Rotate Y"
-msgstr ""
+msgstr "Rodar para trás Cursor Y"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Back Rotate Z"
-msgstr ""
+msgstr "Rodar para trás Cursor Z"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Cursor Clear Rotation"
-msgstr ""
+msgstr "Limpar rotação do Cursor"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Create Area"
-msgstr ""
+msgstr "Criar Ãrea"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Create Exterior Connector"
-msgstr ""
+msgstr "Criar Conector exterior"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Erase Area"
-msgstr ""
+msgstr "Apagar Ãrea"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Clear Selection"
-msgstr "Escalar Selecção"
+msgstr "Limpar Seleção"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Settings"
-msgstr ""
+msgstr "Configurações do GridMap"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Pick Distance:"
-msgstr ""
+msgstr "Distância de escolha:"
#: modules/mono/editor/mono_bottom_panel.cpp
msgid "Builds"
-msgstr ""
+msgstr "Builds"
#: modules/visual_script/visual_script.cpp
msgid ""
"A node yielded without working memory, please read the docs on how to yield "
"properly!"
msgstr ""
-"Um nó fez yield sem memória para usar, por favor leia os documentos para "
-"saber como fazer yield correctamente!"
+"Um Nó fez yield sem memória para usar, por favor leia os documentos para "
+"saber como fazer yield corretamente!"
#: modules/visual_script/visual_script.cpp
msgid ""
"Node yielded, but did not return a function state in the first working "
"memory."
msgstr ""
-"O nó fez yield, mas não retornou um estado de função na primeira memória de "
+"O Nó fez yield, mas não retornou um estado de Função na primeira memória de "
"trabalho."
#: modules/visual_script/visual_script.cpp
@@ -7138,42 +7356,40 @@ msgid ""
"your node please."
msgstr ""
"O valor de retorno deve ser atribuído ao primeiro elemento da memória de "
-"trabalho de nós! Corrija o seu nó por favor."
+"trabalho de Nós! Corrija o seu Nó por favor."
#: modules/visual_script/visual_script.cpp
msgid "Node returned an invalid sequence output: "
-msgstr "O nó retornou uma sequência de saída (output) incorrecta: "
+msgstr "O Nó retornou uma sequência de saída (output) incorreta: "
#: modules/visual_script/visual_script.cpp
msgid "Found sequence bit but not the node in the stack, report bug!"
msgstr ""
-"A sequência foi encontrada mas não o nó na pilha (stack), faça report de bug!"
+"A sequência foi encontrada mas não o Nó na pilha (stack), faça report de bug!"
#: modules/visual_script/visual_script.cpp
msgid "Stack overflow with stack depth: "
msgstr "Stack overflow com a profundidade da pilha (stack): "
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Signal Arguments"
-msgstr "Editar Argumentos do Sinal:"
+msgstr "Mudar argumentos do sinal"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Argument Type"
-msgstr ""
+msgstr "Mudar tipo de argumento"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Argument name"
-msgstr ""
+msgstr "Mudar nome do argumento"
#: modules/visual_script/visual_script_editor.cpp
msgid "Set Variable Default Value"
-msgstr ""
+msgstr "Definir valor padrão da variável"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Set Variable Type"
-msgstr "Editar Variável:"
+msgstr "Definir tipo de variável"
#: modules/visual_script/visual_script_editor.cpp
msgid "Functions:"
@@ -7193,15 +7409,15 @@ msgstr "Este nome já está a ser usado por outro func/var/signal:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Function"
-msgstr "Alterar nome da Função"
+msgstr "Mudar nome da Função"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Variable"
-msgstr "Alterar nome da Variável"
+msgstr "Mudar nome da Variável"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Signal"
-msgstr "Alterar nome do Sinal"
+msgstr "Mudar nome do Sinal"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Function"
@@ -7217,49 +7433,51 @@ msgstr "Adicionar Sinal"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Expression"
-msgstr ""
+msgstr "Mudar Expressão"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node"
msgstr "Adicionar Nó"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove VisualScript Nodes"
-msgstr "Remover Variável"
+msgstr "Remover Nós VisualScript"
#: modules/visual_script/visual_script_editor.cpp
msgid "Duplicate VisualScript Nodes"
-msgstr ""
+msgstr "Duplicar Nós VisualScript"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
+"Pressione %s para largar um Getter. Pressione Shift para largar uma "
+"Assinatura genérica."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
+"Pressione Ctrl para largar um Getter. Pressione Shift para largar uma "
+"Assinatura genérica."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold %s to drop a simple reference to the node."
-msgstr ""
+msgstr "Pressione %s para largar uma referência simples no Nó."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a simple reference to the node."
-msgstr ""
+msgstr "Pressione Ctrl para largar uma referência simples no Nó."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold %s to drop a Variable Setter."
-msgstr ""
+msgstr "Pressione %s para largar um Setter variável."
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Variable Setter."
-msgstr ""
+msgstr "Pressione Ctrl para largar um Setter variável."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Preload Node"
-msgstr "Adicionar Nó"
+msgstr "Adicionar Nó de carregamento prévio"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
@@ -7267,99 +7485,95 @@ msgstr "Adicionar Nó da Ãrvore"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Getter Property"
-msgstr "Adicionar propriedade Getter"
+msgstr "Adicionar Propriedade Getter"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Setter Property"
-msgstr "Adicionar propriedade Setter"
+msgstr "Adicionar Propriedade Setter"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Base Type"
-msgstr "Tipo de Base:"
+msgstr "Mudar tipo base"
#: modules/visual_script/visual_script_editor.cpp
msgid "Move Node(s)"
-msgstr ""
+msgstr "Mover Nó(s)"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove VisualScript Node"
-msgstr "Remover Variável"
+msgstr "Remover Nó VisualScript"
#: modules/visual_script/visual_script_editor.cpp
msgid "Connect Nodes"
-msgstr ""
+msgstr "Conectar Nós"
#: modules/visual_script/visual_script_editor.cpp
msgid "Condition"
-msgstr ""
+msgstr "Condição"
#: modules/visual_script/visual_script_editor.cpp
msgid "Sequence"
-msgstr ""
+msgstr "Sequência"
#: modules/visual_script/visual_script_editor.cpp
msgid "Switch"
-msgstr ""
+msgstr "Trocar"
#: modules/visual_script/visual_script_editor.cpp
msgid "Iterator"
-msgstr ""
+msgstr "Iterador"
#: modules/visual_script/visual_script_editor.cpp
msgid "While"
-msgstr ""
+msgstr "Enquanto"
#: modules/visual_script/visual_script_editor.cpp
msgid "Return"
-msgstr ""
+msgstr "Voltar"
#: modules/visual_script/visual_script_editor.cpp
msgid "Call"
-msgstr ""
+msgstr "Chamar"
#: modules/visual_script/visual_script_editor.cpp
msgid "Get"
-msgstr ""
+msgstr "Obter"
#: modules/visual_script/visual_script_editor.cpp
msgid "Script already has function '%s'"
-msgstr ""
+msgstr "Script já tem uma Função '%s'"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Input Value"
-msgstr ""
+msgstr "Mudar valor de entrada"
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
-msgstr ""
+msgstr "Impossível copiar o Nó Função."
#: modules/visual_script/visual_script_editor.cpp
msgid "Clipboard is empty!"
-msgstr ""
+msgstr "Ãrea de Transferência está vazia!"
#: modules/visual_script/visual_script_editor.cpp
msgid "Paste VisualScript Nodes"
-msgstr ""
+msgstr "Colar Nós VisualScript"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Function"
msgstr "Remover Função"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Edit Variable"
-msgstr "Editar Variável:"
+msgstr "Editar variável"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Variable"
msgstr "Remover Variável"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Edit Signal"
-msgstr "A editar Sinal:"
+msgstr "Editar sinal"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Signal"
@@ -7383,7 +7597,7 @@ msgstr "Nós Disponíveis:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Select or create a function to edit graph"
-msgstr "Seleccione ou crie uma função para editar o grafo"
+msgstr "Selecione ou crie uma Função para editar o grafo"
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit Signal Arguments:"
@@ -7395,24 +7609,23 @@ msgstr "Editar Variável:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Delete Selected"
-msgstr "Apagar Seleccionados"
+msgstr "Apagar Selecionados"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Find Node Type"
-msgstr "Encontrar Tipo de Nó"
+msgstr "Encontrar tipo de Nó"
#: modules/visual_script/visual_script_editor.cpp
msgid "Copy Nodes"
-msgstr ""
+msgstr "Copiar Nós"
#: modules/visual_script/visual_script_editor.cpp
msgid "Cut Nodes"
-msgstr ""
+msgstr "Cortar Nós"
#: modules/visual_script/visual_script_editor.cpp
msgid "Paste Nodes"
-msgstr ""
+msgstr "Colar Nós"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
@@ -7428,11 +7641,11 @@ msgstr "O iterador tornou-se inválido: "
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name."
-msgstr "Nome de índice propriedade inválido."
+msgstr "Nome de índice Propriedade inválido."
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Base object is not a Node!"
-msgstr "Objecto de base não é um Nó!"
+msgstr "Objeto de base não é um Nó!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Path does not lead Node!"
@@ -7440,7 +7653,7 @@ msgstr "Caminho não aponta para nenhum Nó!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name '%s' in node %s."
-msgstr "Nome de propriedade índice '%s' inválido em nó %s."
+msgstr "Nome de Propriedade índice '%s' inválido em Nó %s."
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
@@ -7452,62 +7665,68 @@ msgstr ": Argumentos inválidos: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableGet not found in script: "
-msgstr ""
+msgstr "VariableGet não encontrada no Script: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "VariableSet not found in script: "
-msgstr ""
+msgstr "VariableSet não encontrada no Script: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "Custom node has no _step() method, can't process graph."
-msgstr ""
+msgstr "Impossível processar gráfico, Nó personalizado com Método no_step()."
#: modules/visual_script/visual_script_nodes.cpp
msgid ""
"Invalid return value from _step(), must be integer (seq out), or string "
"(error)."
msgstr ""
+"Valor de retorno from _step() inválido, tem de ser inteiro (seq out), ou "
+"string (error)."
#: platform/javascript/export/export.cpp
msgid "Run in Browser"
-msgstr ""
+msgstr "Executar no Navegador"
#: platform/javascript/export/export.cpp
msgid "Run exported HTML in the system's default browser."
-msgstr ""
+msgstr "Executar HTML exportado no Navegador padrão do sistema."
#: platform/javascript/export/export.cpp
msgid "Could not write file:\n"
-msgstr ""
+msgstr "Impossível escrever Ficheiro:\n"
#: platform/javascript/export/export.cpp
msgid "Could not open template for export:\n"
-msgstr ""
+msgstr "Impossível abrir Modelo para exportar:\n"
#: platform/javascript/export/export.cpp
-#, fuzzy
msgid "Invalid export template:\n"
-msgstr "Nome de índice propriedade inválido."
+msgstr "Modelo de exportação inválido:\n"
#: platform/javascript/export/export.cpp
msgid "Could not read custom HTML shell:\n"
-msgstr ""
+msgstr "Impossível ler Shell HTML personalizado:\n"
#: platform/javascript/export/export.cpp
msgid "Could not read boot splash image file:\n"
-msgstr ""
+msgstr "Impossível ler Ficheiro do ecrã de inicialização:\n"
#: scene/2d/animated_sprite.cpp
msgid ""
"A SpriteFrames resource must be created or set in the 'Frames' property in "
"order for AnimatedSprite to display frames."
msgstr ""
+"Um recurso SpriteFrames tem de ser criado ou definido na Propriedade "
+"'Frames' para que AnimatedSprite mostre Frames."
#: scene/2d/canvas_modulate.cpp
msgid ""
"Only one visible CanvasModulate is allowed per scene (or set of instanced "
"scenes). The first created one will work, while the rest will be ignored."
msgstr ""
+"Só é permitido um CanvasModulate visível por Cena (ou grupo de Cenas "
+"instanciadas). O primeiro a ser criado funcionará, enquanto o resto será "
+"ignorado."
#: scene/2d/collision_polygon_2d.cpp
msgid ""
@@ -7515,10 +7734,13 @@ msgid ""
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
+"CollisionPolygon2D serve apenas para fornecer uma forma de colisão a um Nó "
+"derivado de CollisionObject2D. Use-o apenas como um filho de Area2D, "
+"StaticBody2D, RigidBody2D, KinematicBody2D, etc. para lhes dar uma forma."
#: scene/2d/collision_polygon_2d.cpp
msgid "An empty CollisionPolygon2D has no effect on collision."
-msgstr ""
+msgstr "Um CollisionPolygon2D vazio não tem efeito na colisão."
#: scene/2d/collision_shape_2d.cpp
msgid ""
@@ -7526,54 +7748,72 @@ msgid ""
"CollisionObject2D derived node. Please only use it as a child of Area2D, "
"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
msgstr ""
+"CollisionShape2D serve apenas para fornecer uma forma de colisão a um Nó "
+"derivado de CollisionObject2D. Use-o apenas como um filho de Area2D, "
+"StaticBody2D, RigidBody2D, KinematicBody2D, etc. para lhes dar uma forma."
#: scene/2d/collision_shape_2d.cpp
msgid ""
"A shape must be provided for CollisionShape2D to function. Please create a "
"shape resource for it!"
msgstr ""
+"Uma forma tem de ser fornecida para CollisionShape2D funcionar. Crie um "
+"recurso forma!"
#: scene/2d/light_2d.cpp
msgid ""
"A texture with the shape of the light must be supplied to the 'texture' "
"property."
msgstr ""
+"Uma textura com a forma da luz tem de ser disponibilizada na Propriedade "
+"'textura'."
#: scene/2d/light_occluder_2d.cpp
msgid ""
"An occluder polygon must be set (or drawn) for this occluder to take effect."
msgstr ""
+"Um Polígono oclusor tem de definido (ou desenhado) para este Oclusor ter "
+"efeito."
#: scene/2d/light_occluder_2d.cpp
msgid "The occluder polygon for this occluder is empty. Please draw a polygon!"
-msgstr ""
+msgstr "O Polígono oclusor deste Oclusor está vazio. Desenhe um Polígono!"
#: scene/2d/navigation_polygon.cpp
msgid ""
"A NavigationPolygon resource must be set or created for this node to work. "
"Please set a property or draw a polygon."
msgstr ""
+"Um recurso NavigationPolygon tem de ser definido ou criado para este Nó "
+"funcionar. Defina a Propriedade ou desenhe o Polígono."
#: scene/2d/navigation_polygon.cpp
msgid ""
"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
"node. It only provides navigation data."
msgstr ""
+"NavigationPolygonInstance tem de ser filho ou neto de um Nó Navigation2D. "
+"Apenas fornece dados de navegação."
#: scene/2d/parallax_layer.cpp
msgid ""
"ParallaxLayer node only works when set as child of a ParallaxBackground node."
msgstr ""
+"O Nó ParallaxLayer só funciona quando definido como filho de um Nó "
+"ParallaxBackground."
#: scene/2d/particles_2d.cpp scene/3d/particles.cpp
msgid ""
"A material to process the particles is not assigned, so no behavior is "
"imprinted."
msgstr ""
+"Não foi atribuído um Material para processar as partículas, não possuindo um "
+"comportamento."
#: scene/2d/path_2d.cpp
msgid "PathFollow2D only works when set as a child of a Path2D node."
msgstr ""
+"PathFollow2D apenas funciona quando definido como filho de um Nó Path2D."
#: scene/2d/physics_body_2d.cpp
msgid ""
@@ -7581,44 +7821,74 @@ msgid ""
"by the physics engine when running.\n"
"Change the size in children collision shapes instead."
msgstr ""
+"Mudanças no tamanho do RigidBody2D (em modos caráter ou rígido) serão "
+"reescritas pelo motor de física na execução.\n"
+"Mude antes o tamanho das formas de colisão filhas."
#: scene/2d/remote_transform_2d.cpp
msgid "Path property must point to a valid Node2D node to work."
msgstr ""
+"Para funcionar, a Propriedade Caminho tem de apontar para um Nó Node2D "
+"válido."
#: scene/2d/visibility_notifier_2d.cpp
msgid ""
"VisibilityEnable2D works best when used with the edited scene root directly "
"as parent."
msgstr ""
+"VisibilityEnable2D funciona melhor quando usado diretamente como parente na "
+"Cena raiz editada."
#: scene/3d/arvr_nodes.cpp
msgid "ARVRCamera must have an ARVROrigin node as its parent"
-msgstr ""
+msgstr "ARVRCamera precisa de um Nó ARVROrigin como parente"
#: scene/3d/arvr_nodes.cpp
msgid "ARVRController must have an ARVROrigin node as its parent"
-msgstr ""
+msgstr "ARVRController precisa de um Nó ARVROrigin como parente"
#: scene/3d/arvr_nodes.cpp
msgid ""
"The controller id must not be 0 or this controller will not be bound to an "
"actual controller"
msgstr ""
+"O id do controlador não pode ser 0 senão este controlador não será vinculado "
+"a um controlador real"
#: scene/3d/arvr_nodes.cpp
msgid "ARVRAnchor must have an ARVROrigin node as its parent"
-msgstr ""
+msgstr "ARVRAnchor precisa de um Nó ARVROrigin como parente"
#: scene/3d/arvr_nodes.cpp
msgid ""
"The anchor id must not be 0 or this anchor will not be bound to an actual "
"anchor"
msgstr ""
+"O id da âncora não pode ser 0 senão esta âncora não será vinculada a uma "
+"âncora real"
#: scene/3d/arvr_nodes.cpp
msgid "ARVROrigin requires an ARVRCamera child node"
-msgstr ""
+msgstr "ARVROrigin exige um Nó filho ARVRCamera"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "A desenhar Meshes"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "A desenhar Meshes"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr "A concluir desenho"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "A desenhar Meshes"
#: scene/3d/collision_polygon.cpp
msgid ""
@@ -7626,10 +7896,13 @@ msgid ""
"CollisionObject derived node. Please only use it as a child of Area, "
"StaticBody, RigidBody, KinematicBody, etc. to give them a shape."
msgstr ""
+"CollisionPolygon serve apenas para fornecer uma forma de colisão a um Nó "
+"derivado de CollisionObject. Use-o apenas como um filho de Area, StaticBody, "
+"RigidBody, KinematicBody, etc. para lhes dar uma forma."
#: scene/3d/collision_polygon.cpp
msgid "An empty CollisionPolygon has no effect on collision."
-msgstr ""
+msgstr "Um CollisionPolygon vazio não tem efeito na colisão."
#: scene/3d/collision_shape.cpp
msgid ""
@@ -7637,35 +7910,41 @@ msgid ""
"derived node. Please only use it as a child of Area, StaticBody, RigidBody, "
"KinematicBody, etc. to give them a shape."
msgstr ""
+"CollisionShape serve apenas para fornecer uma forma de colisão a um Nó "
+"derivado de CollisionObject. Use-o apenas como um filho de Area, StaticBody, "
+"RigidBody, KinematicBody, etc. para lhes dar uma forma."
#: scene/3d/collision_shape.cpp
msgid ""
"A shape must be provided for CollisionShape to function. Please create a "
"shape resource for it!"
msgstr ""
+"Uma forma tem de ser fornecida para CollisionShape funcionar. Crie um "
+"recurso forma!"
#: scene/3d/gi_probe.cpp
msgid "Plotting Meshes"
-msgstr ""
-
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
+msgstr "A desenhar Meshes"
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
+"Um recurso NavigationMesh tem de ser definido ou criado para este Nó "
+"funcionar."
#: scene/3d/navigation_mesh.cpp
msgid ""
"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
"It only provides navigation data."
msgstr ""
+"NavigationMeshInstance tem de ser filho ou neto de um Nó Navigation. Apenas "
+"fornece dados de navegação."
#: scene/3d/particles.cpp
msgid ""
"Nothing is visible because meshes have not been assigned to draw passes."
msgstr ""
+"Nada é visível porque não foram atribuídas Meshes aos passos de desenho."
#: scene/3d/physics_body.cpp
msgid ""
@@ -7673,52 +7952,58 @@ msgid ""
"the physics engine when running.\n"
"Change the size in children collision shapes instead."
msgstr ""
+"Mudanças no tamanho do RigidBody (em modos caráter ou rígido) serão "
+"reescritas pelo motor de física na execução.\n"
+"Mude antes o tamanho das formas de colisão filhas."
#: scene/3d/remote_transform.cpp
msgid "Path property must point to a valid Spatial node to work."
msgstr ""
+"Para funcionar, a Propriedade Caminho tem de apontar para um Nó Spatial "
+"válido."
#: scene/3d/scenario_fx.cpp
msgid ""
"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)."
msgstr ""
+"Apenas um WorldEnvironment é permitido por Cena (ou grupo de cenas "
+"instanciadas)."
#: scene/3d/sprite_3d.cpp
msgid ""
"A SpriteFrames resource must be created or set in the 'Frames' property in "
"order for AnimatedSprite3D to display frames."
msgstr ""
+"Um recurso SpriteFrames tem de ser criado ou definido na Propriedade "
+"'Frames' de forma a que AnimatedSprite3D mostre frames."
#: scene/3d/vehicle_body.cpp
msgid ""
"VehicleWheel serves to provide a wheel system to a VehicleBody. Please use "
"it as a child of a VehicleBody."
msgstr ""
+"VehicleWheel fornece um sistema de rodas a um VehicleBody. Use-o como um "
+"filho de VehicleBody."
#: scene/gui/color_picker.cpp
msgid "Raw Mode"
-msgstr ""
+msgstr "Modo Raw"
#: scene/gui/color_picker.cpp
msgid "Add current color as a preset"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr ""
+msgstr "Adicionar cor atual como predefinição"
#: scene/gui/dialogs.cpp
msgid "Alert!"
-msgstr ""
+msgstr "Alerta!"
#: scene/gui/dialogs.cpp
msgid "Please Confirm..."
-msgstr ""
+msgstr "Confirme por favor..."
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select this Folder"
-msgstr "Adicionar propriedade Setter"
+msgstr "Selecionar esta pasta"
#: scene/gui/popup.cpp
msgid ""
@@ -7726,6 +8011,9 @@ msgid ""
"functions. Making them visible for editing is fine though, but they will "
"hide upon running."
msgstr ""
+"Popups estão escondidas por defeito a não ser que chame popup() ou qualquer "
+"das funções popup*(). Torná-las visíveis para edição é aceitável, mas serão "
+"escondidas na execução."
#: scene/gui/scroll_container.cpp
msgid ""
@@ -7733,16 +8021,21 @@ msgid ""
"Use a container as child (VBox,HBox,etc), or a Control and set the custom "
"minimum size manually."
msgstr ""
+"ScrollContainer está destinado a funcionar com um único controlo filho.\n"
+"Use um contentor como filho (VBox,HBox,etc), um um Control e defina o "
+"tamanho mínimo manualmente."
#: scene/gui/tree.cpp
msgid "(Other)"
-msgstr ""
+msgstr "(Outro)"
#: scene/main/scene_tree.cpp
msgid ""
"Default Environment as specified in Project Setings (Rendering -> Viewport -"
"> Default Environment) could not be loaded."
msgstr ""
+"Ambiente padrão especificado em Configuração do Projeto (Rendering -> "
+"Viewport -> Default Environment) não pode ser carregado."
#: scene/main/viewport.cpp
msgid ""
@@ -7751,22 +8044,50 @@ msgid ""
"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
"texture to some node for display."
msgstr ""
+"Esta vista não está definida como alvo de Renderização. Se pretende "
+"apresentar o seu conteúdo diretamente no ecrã, torne-a um filho de um "
+"Control de modo a que obtenha um tamanho. Caso contrário, torne-a um "
+"RenderTarget e atribua a sua textura interna a outro Nó para visualizar."
#: scene/resources/dynamic_font.cpp
msgid "Error initializing FreeType."
-msgstr ""
+msgstr "Erro ao inicializar FreeType."
#: scene/resources/dynamic_font.cpp
msgid "Unknown font format."
-msgstr ""
+msgstr "Formato de letra inválido."
#: scene/resources/dynamic_font.cpp
msgid "Error loading font."
-msgstr ""
+msgstr "Erro ao carregar letra."
#: scene/resources/dynamic_font.cpp
msgid "Invalid font size."
-msgstr "Tamanho de fonte inválido."
+msgstr "Tamanho de letra inválido."
+
+#~ msgid "Move Add Key"
+#~ msgstr "Mover Adicionar Chave"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Criar subscrição"
+
+#~ msgid "List:"
+#~ msgstr "Lista:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "Definir máscara de emissão"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "Limpar emissor"
+
+#~ msgid "Fold Line"
+#~ msgstr "Dobrar linha"
+
+#~ msgid " "
+#~ msgstr " "
+
+#~ msgid "Sections:"
+#~ msgstr "Secções:"
#, fuzzy
#~ msgid "Invalid unique name."
diff --git a/editor/translations/ru.po b/editor/translations/ru.po
index 0a85fe0477..3403a2789d 100644
--- a/editor/translations/ru.po
+++ b/editor/translations/ru.po
@@ -17,8 +17,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2017-11-22 20:31+0000\n"
-"Last-Translator: outbools <drag4e@yandex.ru>\n"
+"PO-Revision-Date: 2017-11-29 10:40+0000\n"
+"Last-Translator: ijet <my-ijet@mail.ru>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/"
"godot/ru/>\n"
"Language: ru\n"
@@ -38,8 +38,9 @@ msgid "All Selection"
msgstr "Ð’Ñе выбранные Ñлементы"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Подвинуть ключ"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Изменить значение"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -50,7 +51,8 @@ msgid "Anim Change Transform"
msgstr "Изменить положение"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Изменить значение"
#: editor/animation_editor.cpp
@@ -544,8 +546,9 @@ msgid "Connecting Signal:"
msgstr "Подключение Ñигнала:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Создать подпиÑку"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "ПриÑоединить '%s' к '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -561,7 +564,8 @@ msgid "Signals"
msgstr "Сигналы"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Создать новый"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -576,7 +580,7 @@ msgstr "Ðедавнее:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "ПоиÑк:"
@@ -617,6 +621,7 @@ msgstr ""
"Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²ÑтупÑÑ‚ в Ñилу поÑле перезапуÑка."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "ЗавиÑимоÑти"
@@ -719,9 +724,10 @@ msgid "Delete selected files?"
msgstr "Удалить выбранные файлы?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Удалить"
@@ -864,6 +870,11 @@ msgid "Rename Audio Bus"
msgstr "Переименовать аудио шину"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Переключить аудио шину - Ñоло"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Переключить аудио шину - Ñоло"
@@ -911,8 +922,8 @@ msgstr "Bypass"
msgid "Bus options"
msgstr "Параметры шины"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Дублировать"
@@ -925,6 +936,10 @@ msgid "Delete Effect"
msgstr "Удалить Ñффект"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "Добавить аудио шину"
@@ -1081,7 +1096,8 @@ msgstr "Путь:"
msgid "Node Name:"
msgstr "Ð˜Ð¼Ñ Ð£Ð·Ð»Ð°:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "ИмÑ"
@@ -1089,10 +1105,6 @@ msgstr "ИмÑ"
msgid "Singleton"
msgstr "Синглтон"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "СпиÑок:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "Обновление Ñцены"
@@ -1105,6 +1117,15 @@ msgstr "Сохранение локальных изменений.."
msgid "Updating scene.."
msgstr "Обновление Ñцены.."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(пуÑто)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "ПожалуйÑта, выберите базовый каталог"
@@ -1151,9 +1172,24 @@ msgid "File Exists, Overwrite?"
msgstr "Файл ÑущеÑтвует, перезапиÑать?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "Создать папку"
+msgstr "Выбрать текущую папку"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Копировать путь"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "ПроÑмотреть в проводнике"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ°.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Обновить"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1202,10 +1238,6 @@ msgid "Go Up"
msgstr "Вверх"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Обновить"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "Скрыть файлы"
@@ -1385,7 +1417,8 @@ msgstr "Вывод:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "ОчиÑтить"
@@ -1543,14 +1576,12 @@ msgstr ""
"понÑть Ñтот процеÑÑ."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand all properties"
-msgstr "Развернуть вÑе"
+msgstr "Развернуть вÑе ÑвойÑтва"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Collapse all properties"
-msgstr "Свернуть вÑе"
+msgstr "Свернуть вÑе ÑвойÑтва"
#: editor/editor_node.cpp
msgid "Copy Params"
@@ -2334,6 +2365,16 @@ msgstr "СущноÑть"
msgid "Frame #:"
msgstr "Кадр #:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "ВремÑ:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Вызов"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "Выберите уÑтройÑтво из ÑпиÑка"
@@ -2475,7 +2516,8 @@ msgstr "Ðет ответа."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ðµ прошёл."
#: editor/export_template_manager.cpp
@@ -2522,7 +2564,8 @@ msgid "Connecting.."
msgstr "Подключение.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "Ðе удаётÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑÑ"
#: editor/export_template_manager.cpp
@@ -2619,6 +2662,11 @@ msgid "Error moving:\n"
msgstr "Ошибка перемещениÑ:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Ошибка при загрузке:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "Ðе удаётÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ завиÑимоÑти:\n"
@@ -2651,6 +2699,16 @@ msgid "Renaming folder:"
msgstr "Переименование папки:"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Дублировать"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Переименование папки:"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "Развернуть вÑе"
@@ -2659,10 +2717,6 @@ msgid "Collapse all"
msgstr "Свернуть вÑе"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "Копировать путь"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "Переименовать.."
@@ -2671,12 +2725,9 @@ msgid "Move To.."
msgstr "ПеремеÑтить в.."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ°.."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "ПроÑмотреть в проводнике"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Открыть Ñцену"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2691,6 +2742,11 @@ msgid "View Owners.."
msgstr "ПроÑмотреть владельцев.."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Дублировать"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "Предыдущий каталог"
@@ -2785,6 +2841,16 @@ msgid "Importing Scene.."
msgstr "Импортирование Ñцены.."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "Передача в карты оÑвещениÑ:"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "Генерировать AABB"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "ЗапуÑк пользовательÑкого Ñкрипта.."
@@ -3033,54 +3099,51 @@ msgstr "Копировать анимацию"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "Режим кальки"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Включить режим кальки"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "Разделы:"
+msgstr "ÐаправлениÑ"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Past"
-msgstr "Ð’Ñтавить"
+msgstr "Прошлые"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Future"
-msgstr "СвойÑтва"
+msgstr "Будущие"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Глубина"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 шаг"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 шага"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 шага"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Только разница"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
-msgstr ""
+msgstr "Принудительно раÑкрашивание белым"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "Включать 3D гизмо"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -3357,6 +3420,7 @@ msgid "last"
msgstr "поÑледний"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Ð’Ñе"
@@ -3398,6 +3462,28 @@ msgstr "ТеÑтируемые"
msgid "Assets ZIP File"
msgstr "ZIP файл аÑÑетов"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "Передача в карты оÑвещениÑ:"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "ПредпроÑмотр"
@@ -3536,7 +3622,6 @@ msgid "Toggles snapping"
msgstr "Переключение прилипаниÑ"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "ИÑпользовать привÑзку"
@@ -3716,16 +3801,6 @@ msgstr "Ошибка Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñцены из %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "Ок :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "Ðе выбран родитель Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ‚Ð¾Ð¼ÐºÐ°."
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr "Эта Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ одного выбранного узла."
@@ -3837,7 +3912,7 @@ msgstr "Удерживайте Shift, чтобы изменить каÑател
#: editor/plugins/gi_probe_editor_plugin.cpp
msgid "Bake GI Probe"
-msgstr "Запечь GI Probe"
+msgstr "Запечь GI пробу"
#: editor/plugins/gradient_editor_plugin.cpp
msgid "Add/Remove Color Ramp Point"
@@ -3921,6 +3996,22 @@ msgid "Create Navigation Mesh"
msgstr "Создать полиÑетку навигации"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr "Ð’ MeshInstance нет полиÑетки!"
@@ -3961,6 +4052,20 @@ msgid "Create Outline Mesh.."
msgstr "Создать полиÑетку обводки.."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Обзор"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Обзор"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr "Создать полиÑетку обводки"
@@ -4137,10 +4242,6 @@ msgid "Create Navigation Polygon"
msgstr "Создать Navigation Polygon"
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr "МаÑка выброÑа очищена"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr "Генерировать AABB"
@@ -4158,10 +4259,6 @@ msgid "No pixels with transparency > 128 in image.."
msgstr "Ðикаких пикÑелей Ñ Ð¿Ñ€Ð¾Ð·Ñ€Ð°Ñ‡Ð½Ð¾Ñтью > 128 в изображении.."
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "УÑтановлена маÑка выброÑа"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
msgstr "Создать облаÑть видимоÑти"
@@ -4170,6 +4267,10 @@ msgid "Load Emission Mask"
msgstr "МаÑка выброÑа загружена"
#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "МаÑка выброÑа очищена"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
msgstr "ЧаÑтицы"
@@ -4228,10 +4329,6 @@ msgid "Create Emission Points From Node"
msgstr "Создать излучатель из узла"
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "ОчиÑтить излучатель"
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr "Создать излучатель"
@@ -4516,11 +4613,13 @@ msgstr "Сортировать"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "ПеремеÑтить вверх"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "ПеремеÑтить вниз"
@@ -4536,7 +4635,7 @@ msgstr "Предыдущий Ñкрипт"
msgid "File"
msgstr "Файл"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "Ðовый"
@@ -4549,6 +4648,11 @@ msgid "Soft Reload Script"
msgstr "МÑгко перезагрузить Ñкрипты"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Копировать путь"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr "Предыдущий файл"
@@ -4739,11 +4843,8 @@ msgid "Clone Down"
msgstr "Копировать вниз"
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr "Свернуть Ñтроку"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+#, fuzzy
+msgid "Fold/Unfold Line"
msgstr "Развернуть Ñтроку"
#: editor/plugins/script_text_editor.cpp
@@ -5065,12 +5166,20 @@ msgstr "Вершины"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "FPS"
-msgstr "Кадров/Ñек"
+msgstr "FPS"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align with view"
msgstr "СовмеÑтить Ñ Ð²Ð¸Ð´Ð¾Ð¼"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "Ок :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "Ðе выбран родитель Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ‚Ð¾Ð¼ÐºÐ°."
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "Режим нормалей"
@@ -5178,6 +5287,20 @@ msgid "Scale Mode (R)"
msgstr "Режим маÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (R)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "Локальные координаты"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "Режим маÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Режим привÑзки:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "Вид Снизу"
@@ -5250,10 +5373,6 @@ msgid "Configure Snap.."
msgstr "ÐаÑтроить привÑзку.."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "Локальные координаты"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr "Окно преобразованиÑ.."
@@ -5295,6 +5414,10 @@ msgid "Settings"
msgstr "ÐаÑтройки"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr "Параметры привÑзки"
@@ -5677,6 +5800,11 @@ msgid "Merge from scene?"
msgstr "СлиÑние из Ñцены?"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "Ðабор тайлов.."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "Создать из Ñцены"
@@ -5688,6 +5816,10 @@ msgstr "СлиÑние из Ñцены"
msgid "Error"
msgstr "Ошибка"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Отмена"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "Ðктивный"
@@ -5807,10 +5939,6 @@ msgid "Imported Project"
msgstr "Импортированный проект"
#: editor/project_manager.cpp
-msgid " "
-msgstr " "
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr "Было бы неплохо назвать ваш проект."
@@ -5969,6 +6097,8 @@ msgid ""
"You don't currently have any projects.\n"
"Would you like to explore the official example projects in the Asset Library?"
msgstr ""
+"Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ñƒ Ð²Ð°Ñ Ð½ÐµÑ‚ каких-либо проектов.\n"
+"Хотите изучить официальные примеры в библиотеке шаблонов?"
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -6076,8 +6206,9 @@ msgid "Joypad Button Index:"
msgstr "Ð˜Ð½Ð´ÐµÐºÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸ джойÑтика:"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "Добавить дейÑтвие"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Удалить дейÑтвие"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6144,6 +6275,10 @@ msgid "Already existing"
msgstr "Уже ÑущеÑтвует"
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "Добавить дейÑтвие"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "Ошибка ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð½Ð°Ñтроек."
@@ -6320,6 +6455,10 @@ msgid "New Script"
msgstr "Ðовый Ñкрипт"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr "Сделать уникальным"
@@ -6351,6 +6490,11 @@ msgstr "Бит %d, значение %d."
msgid "On"
msgstr "Вкл"
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "Добавить пуÑтоту"
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "Задать"
@@ -6359,10 +6503,6 @@ msgstr "Задать"
msgid "Properties:"
msgstr "СвойÑтва:"
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr "Разделы:"
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "Выбрать ÑвойÑтво"
@@ -6931,6 +7071,10 @@ msgstr "УÑтановить из дерева"
msgid "Shortcuts"
msgstr "ГорÑчие клавиши"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "Изменить Ñ€Ð°Ð´Ð¸ÑƒÑ Ñвета"
@@ -6979,15 +7123,55 @@ msgstr "Изменить AABB чаÑтиц"
msgid "Change Probe Extents"
msgstr "Изменить Probe Extents"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Удалить точку кривой"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Platform"
+msgstr "Скопировать на платформу.."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "Библиотека"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "GDNative"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr "Библиотека"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr "СтатуÑ"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr "Библиотеки: "
@@ -7056,7 +7240,7 @@ msgstr "Этаж:"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
-msgstr "Сетка"
+msgstr "Ð¡ÐµÑ‚Ð¾Ñ‡Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð°"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Snap View"
@@ -7688,6 +7872,25 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr "ARVROrigin требует дочерний узел ARVRCamera"
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "ПоÑтроение Ñетки"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "ПоÑтроение Ñетки"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr "Завершение поÑтроениÑ"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "ПоÑтроение Ñетки"
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7724,10 +7927,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr "ПоÑтроение Ñетки"
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr "Завершение поÑтроениÑ"
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7792,10 +7991,6 @@ msgid "Add current color as a preset"
msgstr "Добавить текущий цвет как преÑет"
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Отмена"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Внимание!"
@@ -7804,9 +7999,8 @@ msgid "Please Confirm..."
msgstr "Подтверждение..."
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select this Folder"
-msgstr "Выбрать метод"
+msgstr "Выбрать Ñту папку"
#: scene/gui/popup.cpp
msgid ""
@@ -7870,6 +8064,30 @@ msgstr "Ошибка загрузки шрифта."
msgid "Invalid font size."
msgstr "ÐедопуÑтимый размер шрифта."
+#~ msgid "Move Add Key"
+#~ msgstr "Подвинуть ключ"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Создать подпиÑку"
+
+#~ msgid "List:"
+#~ msgstr "СпиÑок:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "УÑтановлена маÑка выброÑа"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "ОчиÑтить излучатель"
+
+#~ msgid "Fold Line"
+#~ msgstr "Свернуть Ñтроку"
+
+#~ msgid " "
+#~ msgstr " "
+
+#~ msgid "Sections:"
+#~ msgstr "Разделы:"
+
#~ msgid "Cannot navigate to '"
#~ msgstr "Ðе удалоÑÑŒ перейти к '"
@@ -8409,9 +8627,6 @@ msgstr "ÐедопуÑтимый размер шрифта."
#~ msgid "Making BVH"
#~ msgstr "Создание BVH"
-#~ msgid "Transfer to Lightmaps:"
-#~ msgstr "Передача в карты оÑвещениÑ:"
-
#~ msgid "Allocating Texture #"
#~ msgstr "Выделение текÑтуры #"
@@ -8563,9 +8778,6 @@ msgstr "ÐедопуÑтимый размер шрифта."
#~ msgid "Del"
#~ msgstr "Удалить"
-#~ msgid "Copy To Platform.."
-#~ msgstr "Скопировать на платформу.."
-
#~ msgid "just pressed"
#~ msgstr "проÑто нажата"
diff --git a/editor/translations/sk.po b/editor/translations/sk.po
index 24c9c81792..aaa15bab4b 100644
--- a/editor/translations/sk.po
+++ b/editor/translations/sk.po
@@ -27,7 +27,7 @@ msgid "All Selection"
msgstr "Všetky vybrané"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
+msgid "Anim Change Keyframe Time"
msgstr ""
#: editor/animation_editor.cpp
@@ -39,7 +39,7 @@ msgid "Anim Change Transform"
msgstr ""
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+msgid "Anim Change Keyframe Value"
msgstr ""
#: editor/animation_editor.cpp
@@ -532,7 +532,7 @@ msgid "Connecting Signal:"
msgstr ""
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
+msgid "Disconnect '%s' from '%s'"
msgstr ""
#: editor/connections_dialog.cpp
@@ -549,8 +549,9 @@ msgid "Signals"
msgstr ""
#: editor/create_dialog.cpp
-msgid "Create New"
-msgstr ""
+#, fuzzy
+msgid "Create New %s"
+msgstr "Vytvoriť adresár"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -564,7 +565,7 @@ msgstr ""
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr ""
@@ -601,6 +602,7 @@ msgid ""
msgstr ""
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr ""
@@ -701,9 +703,10 @@ msgid "Delete selected files?"
msgstr ""
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr ""
@@ -845,6 +848,11 @@ msgid "Rename Audio Bus"
msgstr "Všetky vybrané"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Všetky vybrané"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr ""
@@ -892,8 +900,8 @@ msgstr ""
msgid "Bus options"
msgstr ""
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr ""
@@ -906,6 +914,10 @@ msgid "Delete Effect"
msgstr ""
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr ""
@@ -1057,7 +1069,8 @@ msgstr "Cesta:"
msgid "Node Name:"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr ""
@@ -1065,10 +1078,6 @@ msgstr ""
msgid "Singleton"
msgstr ""
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr ""
@@ -1081,6 +1090,14 @@ msgstr ""
msgid "Updating scene.."
msgstr ""
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr ""
@@ -1131,6 +1148,23 @@ msgstr ""
msgid "Select Current Folder"
msgstr "Vytvoriť adresár"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+#, fuzzy
+msgid "New Folder.."
+msgstr "Vytvoriť adresár"
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr "Všetko rozpoznané"
@@ -1178,10 +1212,6 @@ msgid "Go Up"
msgstr ""
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr ""
@@ -1362,7 +1392,8 @@ msgstr ""
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr ""
@@ -2259,6 +2290,14 @@ msgstr ""
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr ""
@@ -2394,7 +2433,7 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+msgid "Request Failed."
msgstr ""
#: editor/export_template_manager.cpp
@@ -2442,7 +2481,7 @@ msgid "Connecting.."
msgstr ""
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+msgid "Can't Connect"
msgstr ""
#: editor/export_template_manager.cpp
@@ -2535,6 +2574,10 @@ msgid "Error moving:\n"
msgstr ""
#: editor/filesystem_dock.cpp
+msgid "Error duplicating:\n"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr ""
@@ -2567,15 +2610,19 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
+msgid "Duplicating file:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
+msgid "Duplicating folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
+msgid "Expand all"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
@@ -2588,12 +2635,8 @@ msgstr ""
#: editor/filesystem_dock.cpp
#, fuzzy
-msgid "New Folder.."
-msgstr "Vytvoriť adresár"
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr ""
+msgid "Open Scene(s)"
+msgstr "Otvoriť súbor(y)"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2608,6 +2651,10 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+msgid "Duplicate.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2700,6 +2747,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3269,6 +3324,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr ""
@@ -3310,6 +3366,27 @@ msgstr ""
msgid "Assets ZIP File"
msgstr ""
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3447,7 +3524,6 @@ msgid "Toggles snapping"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3628,16 +3704,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3833,6 +3899,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3873,6 +3955,20 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Súbor:"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Súbor:"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4049,10 +4145,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4070,15 +4162,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4140,10 +4232,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4430,11 +4518,13 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4451,7 +4541,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4464,6 +4554,10 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+msgid "Copy Script Path"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4650,11 +4744,7 @@ msgid "Clone Down"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+msgid "Fold/Unfold Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -4982,6 +5072,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5087,6 +5185,18 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5162,10 +5272,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5207,6 +5313,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5594,6 +5704,11 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "Súbor:"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5605,6 +5720,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr ""
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5722,10 +5841,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -5985,8 +6100,9 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr ""
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Všetky vybrané"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6053,6 +6169,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6231,6 +6351,10 @@ msgid "New Script"
msgstr "Popis:"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6263,6 +6387,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6271,10 +6399,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6835,6 +6959,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6883,15 +7011,52 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Všetky vybrané"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7559,6 +7724,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7587,10 +7768,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7643,10 +7820,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr ""
@@ -7712,10 +7885,6 @@ msgstr ""
#~ msgid "Filter:"
#~ msgstr "Filter:"
-#, fuzzy
-#~ msgid "Tiles"
-#~ msgstr "Súbor:"
-
#~ msgid "Ctrl+"
#~ msgstr "Ctrl+"
diff --git a/editor/translations/sl.po b/editor/translations/sl.po
index 2e1fad7e6f..6856af3469 100644
--- a/editor/translations/sl.po
+++ b/editor/translations/sl.po
@@ -4,13 +4,14 @@
# This file is distributed under the same license as the Godot source code.
#
# matevž lapajne <sivar.lapajne@gmail.com>, 2016-2017.
+# Matjaž Vitas <matjaz.vitas@gmail.com>, 2017.
# Simon Å ander <simon.sand3r@gmail.com>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-29 08:12+0000\n"
-"Last-Translator: matevž lapajne <sivar.lapajne@gmail.com>\n"
+"PO-Revision-Date: 2017-12-07 02:49+0000\n"
+"Last-Translator: Matjaž Vitas <matjaz.vitas@gmail.com>\n"
"Language-Team: Slovenian <https://hosted.weblate.org/projects/godot-engine/"
"godot/sl/>\n"
"Language: sl\n"
@@ -29,7 +30,7 @@ msgid "All Selection"
msgstr "Vsa izbira"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
+msgid "Anim Change Keyframe Time"
msgstr ""
#: editor/animation_editor.cpp
@@ -41,7 +42,7 @@ msgid "Anim Change Transform"
msgstr ""
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+msgid "Anim Change Keyframe Value"
msgstr ""
#: editor/animation_editor.cpp
@@ -69,9 +70,8 @@ msgid "Remove Anim Track"
msgstr ""
#: editor/animation_editor.cpp
-#, fuzzy
msgid "Set Transitions to:"
-msgstr "Izberi Prevod:"
+msgstr "Nastavite Prehode na:"
#: editor/animation_editor.cpp
msgid "Anim Track Rename"
@@ -90,12 +90,14 @@ msgid "Anim Track Change Wrap Mode"
msgstr ""
#: editor/animation_editor.cpp
+#, fuzzy
msgid "Edit Node Curve"
-msgstr ""
+msgstr "Uredi Node Krivuljo"
#: editor/animation_editor.cpp
+#, fuzzy
msgid "Edit Selection Curve"
-msgstr ""
+msgstr "Uredi Izbor Krivulje"
#: editor/animation_editor.cpp
msgid "Anim Delete Keys"
@@ -177,11 +179,11 @@ msgstr ""
#: editor/animation_editor.cpp
msgid "Transitions"
-msgstr ""
+msgstr "Prehodi"
#: editor/animation_editor.cpp
msgid "Optimize Animation"
-msgstr ""
+msgstr "Optimiziraj Animacijo"
#: editor/animation_editor.cpp
msgid "Clean-Up Animation"
@@ -202,7 +204,7 @@ msgstr ""
#: editor/plugins/particles_editor_plugin.cpp editor/project_manager.cpp
#: editor/script_create_dialog.cpp
msgid "Create"
-msgstr "Naredi"
+msgstr "Ustvari"
#: editor/animation_editor.cpp
msgid "Anim Create & Insert"
@@ -338,11 +340,11 @@ msgstr ""
#: editor/animation_editor.cpp
msgid "Clean-up all animations"
-msgstr ""
+msgstr "Pobriši vse animacije"
#: editor/animation_editor.cpp
msgid "Clean-Up Animation(s) (NO UNDO!)"
-msgstr ""
+msgstr "Izbriši Animacij(o/e) (BREZ VRNITVE)"
#: editor/animation_editor.cpp
msgid "Clean-Up"
@@ -534,7 +536,7 @@ msgid "Connecting Signal:"
msgstr ""
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
+msgid "Disconnect '%s' from '%s'"
msgstr ""
#: editor/connections_dialog.cpp
@@ -551,8 +553,9 @@ msgid "Signals"
msgstr ""
#: editor/create_dialog.cpp
-msgid "Create New"
-msgstr ""
+#, fuzzy
+msgid "Create New %s"
+msgstr "Ustvari"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -566,7 +569,7 @@ msgstr ""
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr ""
@@ -603,6 +606,7 @@ msgid ""
msgstr ""
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr ""
@@ -703,9 +707,10 @@ msgid "Delete selected files?"
msgstr ""
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr ""
@@ -845,6 +850,11 @@ msgid "Rename Audio Bus"
msgstr "Preimenuj Funkcijo"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Preimenuj Funkcijo"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr ""
@@ -893,8 +903,8 @@ msgstr ""
msgid "Bus options"
msgstr ""
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr ""
@@ -908,6 +918,10 @@ msgid "Delete Effect"
msgstr "Izbriši Izbrano"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr ""
@@ -1058,7 +1072,8 @@ msgstr ""
msgid "Node Name:"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr ""
@@ -1066,10 +1081,6 @@ msgstr ""
msgid "Singleton"
msgstr ""
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr ""
@@ -1082,6 +1093,14 @@ msgstr ""
msgid "Updating scene.."
msgstr ""
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr ""
@@ -1132,6 +1151,22 @@ msgstr ""
msgid "Select Current Folder"
msgstr "Dodaj Setter Lastnost"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr ""
@@ -1179,10 +1214,6 @@ msgid "Go Up"
msgstr ""
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr ""
@@ -1361,7 +1392,8 @@ msgstr ""
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr ""
@@ -2252,6 +2284,14 @@ msgstr ""
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr ""
@@ -2387,7 +2427,7 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+msgid "Request Failed."
msgstr ""
#: editor/export_template_manager.cpp
@@ -2434,7 +2474,7 @@ msgid "Connecting.."
msgstr ""
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+msgid "Can't Connect"
msgstr ""
#: editor/export_template_manager.cpp
@@ -2527,6 +2567,10 @@ msgid "Error moving:\n"
msgstr ""
#: editor/filesystem_dock.cpp
+msgid "Error duplicating:\n"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr ""
@@ -2560,31 +2604,32 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Preimenuj Spremenljivko"
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
+msgid "Duplicating folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
+msgid "Expand all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Rename.."
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Move To.."
+msgid "Rename.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
+msgid "Move To.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
+msgid "Open Scene(s)"
msgstr ""
#: editor/filesystem_dock.cpp
@@ -2600,6 +2645,11 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Podvoji Izbrano"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2692,6 +2742,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3257,6 +3315,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr ""
@@ -3298,6 +3357,27 @@ msgstr ""
msgid "Assets ZIP File"
msgstr ""
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3435,7 +3515,6 @@ msgid "Toggles snapping"
msgstr "Preklopi na Zaustavitev"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3616,16 +3695,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3820,6 +3889,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3860,6 +3945,18 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV1"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV2"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4036,10 +4133,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4057,15 +4150,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4127,10 +4220,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4417,11 +4506,13 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4437,7 +4528,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4450,6 +4541,10 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+msgid "Copy Script Path"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4639,14 +4734,10 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
+msgid "Fold/Unfold Line"
msgstr "Izbriši Izbrano"
#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
msgstr ""
@@ -4972,6 +5063,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5076,6 +5175,18 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5150,10 +5261,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5195,6 +5302,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5579,6 +5690,10 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Tile Set"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5590,6 +5705,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "PrekliÄi"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5707,10 +5826,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -5969,7 +6084,7 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
+msgid "Erase Input Action"
msgstr ""
#: editor/project_settings_editor.cpp
@@ -6039,6 +6154,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6216,6 +6335,10 @@ msgid "New Script"
msgstr ""
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6247,6 +6370,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6255,10 +6382,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
#, fuzzy
msgid "Select Property"
@@ -6814,6 +6937,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6862,15 +6989,52 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Odstrani Signal"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7552,6 +7716,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7580,10 +7760,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7633,24 +7809,20 @@ msgstr ""
#: scene/gui/color_picker.cpp
msgid "Add current color as a preset"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr ""
+msgstr "Dodaj trenutno barvo za prednastavitev"
#: scene/gui/dialogs.cpp
msgid "Alert!"
-msgstr ""
+msgstr "Opozorilo!"
#: scene/gui/dialogs.cpp
+#, fuzzy
msgid "Please Confirm..."
-msgstr ""
+msgstr "Potrdite..."
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select this Folder"
-msgstr "Dodaj Setter Lastnost"
+msgstr "Izberite mapo"
#: scene/gui/popup.cpp
msgid ""
@@ -7658,6 +7830,9 @@ msgid ""
"functions. Making them visible for editing is fine though, but they will "
"hide upon running."
msgstr ""
+"Pojavna okna se bodo po privzeti nastavitvi skrila, razen ob klicu popup() "
+"ali katerih izmed popup*() funkcij. Spreminjanje vidnosti za urejanje je "
+"sprejemljivo, vendar se bodo ob zagonu skrila."
#: scene/gui/scroll_container.cpp
msgid ""
@@ -7668,7 +7843,7 @@ msgstr ""
#: scene/gui/tree.cpp
msgid "(Other)"
-msgstr ""
+msgstr "(Ostalo)"
#: scene/main/scene_tree.cpp
msgid ""
@@ -7686,19 +7861,19 @@ msgstr ""
#: scene/resources/dynamic_font.cpp
msgid "Error initializing FreeType."
-msgstr ""
+msgstr "Napaka pri inicializaciji FreeType."
#: scene/resources/dynamic_font.cpp
msgid "Unknown font format."
-msgstr ""
+msgstr "Neznani format pisave."
#: scene/resources/dynamic_font.cpp
msgid "Error loading font."
-msgstr ""
+msgstr "Napaka naložitve pisave."
#: scene/resources/dynamic_font.cpp
msgid "Invalid font size."
-msgstr ""
+msgstr "Neveljavna velikost pisave."
#, fuzzy
#~ msgid "Invalid unique name."
diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po
index 8b3bfdf8bf..d1732b1d1c 100644
--- a/editor/translations/sr_Cyrl.po
+++ b/editor/translations/sr_Cyrl.po
@@ -8,7 +8,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-26 15:50+0000\n"
+"PO-Revision-Date: 2017-12-14 23:08+0000\n"
"Last-Translator: ÐлекÑандар Урошевић <alek.sandar0@yandex.com>\n"
"Language-Team: Serbian (cyrillic) <https://hosted.weblate.org/projects/godot-"
"engine/godot/sr_Cyrl/>\n"
@@ -28,81 +28,83 @@ msgid "All Selection"
msgstr "Све одабрано"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Помери кључ"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Промени вредноÑÑ‚"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
-msgstr "Промените прелаз"
+msgstr "Промени прелаз"
#: editor/animation_editor.cpp
msgid "Anim Change Transform"
-msgstr "Промените положај"
+msgstr "Промени положај"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
-msgstr "Промените вредноÑÑ‚"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
+msgstr "Промени вредноÑÑ‚"
#: editor/animation_editor.cpp
msgid "Anim Change Call"
-msgstr "Промените позив анимације"
+msgstr "Промени позив анимације"
#: editor/animation_editor.cpp
msgid "Anim Add Track"
-msgstr "Додајте нову траку"
+msgstr "Додај нову траку"
#: editor/animation_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr "Дуплирајте кључеве"
+msgstr "Дуплирај кључеве"
#: editor/animation_editor.cpp
msgid "Move Anim Track Up"
-msgstr "Померите траку горе"
+msgstr "Помери траку горе"
#: editor/animation_editor.cpp
msgid "Move Anim Track Down"
-msgstr "Померите траку доле"
+msgstr "Помери траку доле"
#: editor/animation_editor.cpp
msgid "Remove Anim Track"
-msgstr "Обришите траку анимације"
+msgstr "Обриши траку анимације"
#: editor/animation_editor.cpp
msgid "Set Transitions to:"
-msgstr "ПоÑтавите прелаз на:"
+msgstr "ПоÑтави прелаз на:"
#: editor/animation_editor.cpp
msgid "Anim Track Rename"
-msgstr "Измените име анимације"
+msgstr "Измени име анимације"
#: editor/animation_editor.cpp
msgid "Anim Track Change Interpolation"
-msgstr "Измените интерполацију"
+msgstr "Измени интерполацију"
#: editor/animation_editor.cpp
msgid "Anim Track Change Value Mode"
-msgstr "Измените режим вредноÑти"
+msgstr "Измени режим вредноÑти"
#: editor/animation_editor.cpp
msgid "Anim Track Change Wrap Mode"
-msgstr "Измените режим цикла"
+msgstr "Измени режим цикла"
#: editor/animation_editor.cpp
msgid "Edit Node Curve"
-msgstr "Измените криву чвора"
+msgstr "Измени криву чвора"
#: editor/animation_editor.cpp
msgid "Edit Selection Curve"
-msgstr "Измените одабрану криву"
+msgstr "Измени одабрану криву"
#: editor/animation_editor.cpp
msgid "Anim Delete Keys"
-msgstr "Уколните кључеве"
+msgstr "Уколни кључеве"
#: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Duplicate Selection"
-msgstr "Дуплирајте одабрано"
+msgstr "Дуплирај одабрано"
#: editor/animation_editor.cpp
msgid "Duplicate Transposed"
@@ -110,7 +112,7 @@ msgstr "Дуплирај транÑпоновану"
#: editor/animation_editor.cpp
msgid "Remove Selection"
-msgstr "Обришите одабрано"
+msgstr "Обриши одабрано"
#: editor/animation_editor.cpp
msgid "Continuous"
@@ -534,8 +536,9 @@ msgid "Connecting Signal:"
msgstr "Везујући Ñигнал:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Ðаправи претплату"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Повежи '%s' Ñа '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -551,7 +554,8 @@ msgid "Signals"
msgstr "Сигнали"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Ðаправи нов"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -566,7 +570,7 @@ msgstr "ЧеÑте:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Тражи:"
@@ -607,6 +611,7 @@ msgstr ""
"Промене неће бити у ефекту док Ñе поново не отворе."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "ЗавиÑноÑти"
@@ -709,9 +714,10 @@ msgid "Delete selected files?"
msgstr "Обриши одабране датотеке?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Обриши"
@@ -854,6 +860,11 @@ msgid "Rename Audio Bus"
msgstr "Преименуј звучни баÑ(контролер)"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Укљ./ИÑкљ. Ñоло звучног баÑа"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Укљ./ИÑкљ. Ñоло звучног баÑа"
@@ -901,8 +912,8 @@ msgstr "Заобиђи"
msgid "Bus options"
msgstr "ПоÑтавке баÑа"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Дуплирај"
@@ -915,6 +926,10 @@ msgid "Delete Effect"
msgstr "Обриши ефекат"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "Додај звучни баÑ"
@@ -1065,7 +1080,8 @@ msgstr "Пут:"
msgid "Node Name:"
msgstr "Име чвора:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Име"
@@ -1073,10 +1089,6 @@ msgstr "Име"
msgid "Singleton"
msgstr "Синглетон"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "ЛиÑта:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "Ðжурирање Ñцене"
@@ -1089,6 +1101,15 @@ msgstr "Чувам локалне промене..."
msgid "Updating scene.."
msgstr "Ðжурирам Ñцену..."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(празно)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "Молим, одаберите базни директоријум"
@@ -1135,9 +1156,24 @@ msgid "File Exists, Overwrite?"
msgstr "Датотека поÑтоји, препиши?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "Ðаправи директоријум"
+msgstr "Одабери тренутни директоријум"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Копирај пут"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Покажи у менаџеру датотека"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Ðови директоријум..."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "ОÑвежи"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1186,10 +1222,6 @@ msgid "Go Up"
msgstr "Иди горе"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "ОÑвежи"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "Прикажи Ñакривене датотеке"
@@ -1369,7 +1401,8 @@ msgstr "Излаз:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "Обриши"
@@ -1524,12 +1557,10 @@ msgstr ""
"начин рада."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand all properties"
msgstr "Прошири Ñве"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Collapse all properties"
msgstr "Умањи Ñве"
@@ -2314,6 +2345,16 @@ msgstr "Сам"
msgid "Frame #:"
msgstr "Слика број:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Време:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Позиви цртања"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "Одабери уређај Ñа лиÑте"
@@ -2455,7 +2496,8 @@ msgstr "Ðема одговора."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "Захтев није уÑпешан."
#: editor/export_template_manager.cpp
@@ -2502,7 +2544,8 @@ msgid "Connecting.."
msgstr "Повезивање..."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "ÐеуÑпех при повезивању"
#: editor/export_template_manager.cpp
@@ -2598,6 +2641,11 @@ msgid "Error moving:\n"
msgstr "Грешка при померању:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Грешка при учитавању:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "Ðије могуће ажурирати завиÑноÑти:\n"
@@ -2630,6 +2678,16 @@ msgid "Renaming folder:"
msgstr "Преименовање директоријума:"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Дуплирај"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Преименовање директоријума:"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "Прошири Ñве"
@@ -2638,10 +2696,6 @@ msgid "Collapse all"
msgstr "Умањи Ñве"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "Копирај пут"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "Преименуј..."
@@ -2650,12 +2704,9 @@ msgid "Move To.."
msgstr "Помери у..."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "Ðови директоријум..."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "Покажи у менаџеру датотека"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Отвори Ñцену"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2670,6 +2721,11 @@ msgid "View Owners.."
msgstr "Погледај влаÑнике..."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Дуплирај"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "Претодни директоријум"
@@ -2764,6 +2820,16 @@ msgid "Importing Scene.."
msgstr "Увожење Ñцеене..."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "ГенериÑање оÑног поравнаног граничниог оквира (AABB)"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "ГенериÑање оÑног поравнаног граничниог оквира (AABB)"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "Обрађивање Ñкриптице..."
@@ -3016,46 +3082,44 @@ msgid "Enable Onion Skinning"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "ОпиÑ"
+msgstr "Смерови"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Past"
-msgstr "Ðалепи"
+msgstr "ПрошлоÑÑ‚"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Future"
-msgstr ""
+msgstr "БудућноÑÑ‚"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Дубина"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 корак"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 корака"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 корака"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Само разлике"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
-msgstr ""
+msgstr "Принудно бојење белом"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "Убаци 3Д Ñправице"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -3081,7 +3145,6 @@ msgid "Next (Auto Queue):"
msgstr "Следећа (Ðутоматки ред):"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Cross-Animation Blend Times"
msgstr "Вишеанимационо време мешања"
@@ -3154,7 +3217,7 @@ msgstr "Мешавина 1:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "X-Fade Time (s):"
-msgstr ""
+msgstr "X-Fade време (Ñек.):"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Current:"
@@ -3189,7 +3252,6 @@ msgid "Animation Node"
msgstr "Ðнимациони чвор"
#: editor/plugins/animation_tree_editor_plugin.cpp
-#, fuzzy
msgid "OneShot Node"
msgstr "OneShot чвор"
@@ -3214,7 +3276,6 @@ msgid "TimeScale Node"
msgstr "TimeScale чвор"
#: editor/plugins/animation_tree_editor_plugin.cpp
-#, fuzzy
msgid "TimeSeek Node"
msgstr "TimeSeek чвор"
@@ -3335,6 +3396,7 @@ msgid "last"
msgstr "задњи"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Ñви"
@@ -3376,6 +3438,27 @@ msgstr "ТеÑтирање"
msgid "Assets ZIP File"
msgstr "РеÑурÑи ЗИП датотека"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "Преглед"
@@ -3481,7 +3564,7 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+RMB: Depth list selection"
-msgstr ""
+msgstr "Alt+ДеÑни таÑтер миша: Ñелекција лиÑте дубине"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Mode"
@@ -3505,7 +3588,6 @@ msgid "Click to change object's rotation pivot."
msgstr "Кликни за промену пивота ротације објекта."
#: editor/plugins/canvas_item_editor_plugin.cpp
-#, fuzzy
msgid "Pan Mode"
msgstr "Режим инÑпекције"
@@ -3514,7 +3596,6 @@ msgid "Toggles snapping"
msgstr "Укљ./ИÑкљ. лепљења"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "КориÑти лепљење"
@@ -3694,16 +3775,6 @@ msgstr "Грешка при прављењу Ñцене од %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "ОК :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "Ðема родитеља за прављење Ñина."
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr "Ова операција захтева један изабран чвор."
@@ -3759,11 +3830,11 @@ msgstr "Раван1"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Ease in"
-msgstr ""
+msgstr "Улазна транзиција"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Ease out"
-msgstr ""
+msgstr "Излазна транзиција"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Smoothstep"
@@ -3848,7 +3919,7 @@ msgstr ""
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create Occluder Polygon"
-msgstr ""
+msgstr "Ðаправи оÑенчен полигон"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create a new polygon from scratch."
@@ -3899,6 +3970,22 @@ msgid "Create Navigation Mesh"
msgstr "Ðаправи навигациону мрежу"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr "MeshInstance нема мрежу!"
@@ -3939,6 +4026,20 @@ msgid "Create Outline Mesh.."
msgstr "Ðаправи ивичну мрежу..."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Поглед"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Поглед"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr "Ðаправи ивичну мрежу"
@@ -4115,17 +4216,13 @@ msgid "Create Navigation Polygon"
msgstr "Ðаправи навигациони полигон"
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr "ОчиÑти маÑку емиÑије"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr "ГенериÑање оÑног поравнаног граничниог оквира (AABB)"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Can only set point into a ParticlesMaterial process material"
-msgstr ""
+msgstr "Тачка Ñе Ñамо може поÑтавити у ParticlesMaterial процеÑни материјал"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Error loading image:"
@@ -4136,10 +4233,6 @@ msgid "No pixels with transparency > 128 in image.."
msgstr "У Ñлици нема пикÑела Ñа транÑпарентношћу већом од 128..."
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "ПоÑтави маÑку емиÑије"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
msgstr "Генериши правоугаоник видљивоÑти"
@@ -4148,6 +4241,10 @@ msgid "Load Emission Mask"
msgstr "Учитај маÑку емиÑије"
#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "ОчиÑти маÑку емиÑије"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
msgstr "ЧеÑтице"
@@ -4183,7 +4280,7 @@ msgstr "Чвор не Ñадржи геометрију (Ñтране)."
#: editor/plugins/particles_editor_plugin.cpp
msgid "A processor material of type 'ParticlesMaterial' is required."
-msgstr ""
+msgstr "ПроцеÑор материјала типа „ParticlesMaterial“ је неопходан."
#: editor/plugins/particles_editor_plugin.cpp
msgid "Faces contain no area!"
@@ -4206,10 +4303,6 @@ msgid "Create Emission Points From Node"
msgstr "Ðаправи тачке емиÑије од чвора"
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "ОчиÑти емитер"
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr "Ðаправи емитер"
@@ -4223,7 +4316,7 @@ msgstr "Тачке површи"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Surface Points+Normal (Directed)"
-msgstr ""
+msgstr "Тачке површи+Ðормала (УÑмерено)"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Volume"
@@ -4243,11 +4336,11 @@ msgstr "Обриши тачку из криве"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove Out-Control from Curve"
-msgstr ""
+msgstr "Обриши контролу излаза из криве"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove In-Control from Curve"
-msgstr ""
+msgstr "Обриши контролу улаза из криве"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -4260,11 +4353,11 @@ msgstr "Помери тачку у криви"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move In-Control in Curve"
-msgstr ""
+msgstr "Помери колнтролу улаза у криви"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Out-Control in Curve"
-msgstr ""
+msgstr "Помери контролу излаза у криви"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -4288,7 +4381,7 @@ msgstr "ДеÑни клик: обриши тачку"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Select Control Points (Shift+Drag)"
-msgstr ""
+msgstr "Одабери контролне тачке (Shift+Превуците мишем)"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -4298,7 +4391,7 @@ msgstr "Додај тачку (у празном проÑтору)"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Split Segment (in curve)"
-msgstr ""
+msgstr "Подели Ñегмент (у криви)"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -4316,15 +4409,15 @@ msgstr "Тачка криве #"
#: editor/plugins/path_editor_plugin.cpp
msgid "Set Curve Point Position"
-msgstr ""
+msgstr "ПоÑтави позицију тачке криве"
#: editor/plugins/path_editor_plugin.cpp
msgid "Set Curve In Position"
-msgstr ""
+msgstr "ПоÑтави почетну позицију криве"
#: editor/plugins/path_editor_plugin.cpp
msgid "Set Curve Out Position"
-msgstr ""
+msgstr "ПоÑтави крајњу позицију криве"
#: editor/plugins/path_editor_plugin.cpp
msgid "Split Path"
@@ -4336,11 +4429,11 @@ msgstr "Обриши тачку путање"
#: editor/plugins/path_editor_plugin.cpp
msgid "Remove Out-Control Point"
-msgstr ""
+msgstr "Обриши тачку контроле излаза"
#: editor/plugins/path_editor_plugin.cpp
msgid "Remove In-Control Point"
-msgstr ""
+msgstr "Обриши тачку контроле улаза"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Create UV Map"
@@ -4352,7 +4445,7 @@ msgstr "ТранÑформиши UV мапу"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon 2D UV Editor"
-msgstr ""
+msgstr "Уредник UV 2Д полигона"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Move Point"
@@ -4434,7 +4527,7 @@ msgstr "Обриши реÑурÑ"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Resource clipboard is empty!"
-msgstr ""
+msgstr "Ðема реÑурÑа за копирање!"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -4494,11 +4587,13 @@ msgstr "Сортирање"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "Помери горе"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "Помери доле"
@@ -4514,7 +4609,7 @@ msgstr "Претходна Ñкриптица"
msgid "File"
msgstr "Датотека"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "Ðова"
@@ -4524,15 +4619,20 @@ msgstr "Сачувај Ñве"
#: editor/plugins/script_editor_plugin.cpp
msgid "Soft Reload Script"
-msgstr ""
+msgstr "Мекано оÑвежење Ñкриптице"
+
+#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Копирај пут"
#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
-msgstr ""
+msgstr "ИÑторија претходно"
#: editor/plugins/script_editor_plugin.cpp
msgid "History Next"
-msgstr ""
+msgstr "ИÑторија Ñледеће"
#: editor/plugins/script_editor_plugin.cpp
msgid "Reload Theme"
@@ -4556,7 +4656,7 @@ msgstr "Затвори Ñве"
#: editor/plugins/script_editor_plugin.cpp
msgid "Close Other Tabs"
-msgstr ""
+msgstr "Затвори оÑтале зупчанике"
#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
msgid "Run"
@@ -4611,7 +4711,7 @@ msgstr "Претражи хијерархију клаÑа."
#: editor/plugins/script_editor_plugin.cpp
msgid "Search the reference documentation."
-msgstr ""
+msgstr "Претражи документацију."
#: editor/plugins/script_editor_plugin.cpp
msgid "Go to previous edited document."
@@ -4666,7 +4766,7 @@ msgstr "Одабери боју"
#: editor/plugins/script_text_editor.cpp
msgid "Convert Case"
-msgstr ""
+msgstr "Конвертуј Ñлова"
#: editor/plugins/script_text_editor.cpp
msgid "Uppercase"
@@ -4678,18 +4778,18 @@ msgstr "Мала Ñлова"
#: editor/plugins/script_text_editor.cpp
msgid "Capitalize"
-msgstr ""
+msgstr "Велика Ñлова"
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
msgid "Cut"
-msgstr ""
+msgstr "ИÑеци"
#: editor/plugins/script_text_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Copy"
-msgstr ""
+msgstr "Копирај"
#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
#: scene/gui/text_edit.cpp
@@ -4702,11 +4802,11 @@ msgstr "Обриши линију"
#: editor/plugins/script_text_editor.cpp
msgid "Indent Left"
-msgstr ""
+msgstr "Увучи лево"
#: editor/plugins/script_text_editor.cpp
msgid "Indent Right"
-msgstr ""
+msgstr "Увучи деÑно"
#: editor/plugins/script_text_editor.cpp
msgid "Toggle Comment"
@@ -4717,36 +4817,33 @@ msgid "Clone Down"
msgstr "Клонирај доле"
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr "ПреÑавији линију"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
+#, fuzzy
+msgid "Fold/Unfold Line"
+msgstr "Откриј линију"
#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
-msgstr ""
+msgstr "Сакриј Ñве линије"
#: editor/plugins/script_text_editor.cpp
msgid "Unfold All Lines"
-msgstr ""
+msgstr "Откриј Ñве линије"
#: editor/plugins/script_text_editor.cpp
msgid "Complete Symbol"
-msgstr ""
+msgstr "Потпун Ñимбол"
#: editor/plugins/script_text_editor.cpp
msgid "Trim Trailing Whitespace"
-msgstr ""
+msgstr "Обриши празнине Ñа крајева"
#: editor/plugins/script_text_editor.cpp
msgid "Convert Indent To Spaces"
-msgstr ""
+msgstr "Претвори увучени ред у размаке"
#: editor/plugins/script_text_editor.cpp
msgid "Convert Indent To Tabs"
-msgstr ""
+msgstr "Претвори увучени ред у TAB карактере"
#: editor/plugins/script_text_editor.cpp
msgid "Auto Indent"
@@ -4755,27 +4852,27 @@ msgstr "ÐутоматÑко увлачење"
#: editor/plugins/script_text_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Toggle Breakpoint"
-msgstr ""
+msgstr "ПоÑтави прекидну тачку"
#: editor/plugins/script_text_editor.cpp
msgid "Remove All Breakpoints"
-msgstr ""
+msgstr "Обриши Ñве прекидне тачке"
#: editor/plugins/script_text_editor.cpp
msgid "Goto Next Breakpoint"
-msgstr ""
+msgstr "Иди на Ñледећу прекудну тачку"
#: editor/plugins/script_text_editor.cpp
msgid "Goto Previous Breakpoint"
-msgstr ""
+msgstr "Иди на претходну прекидну тачку"
#: editor/plugins/script_text_editor.cpp
msgid "Convert To Uppercase"
-msgstr ""
+msgstr "Претвори у велика Ñлова"
#: editor/plugins/script_text_editor.cpp
msgid "Convert To Lowercase"
-msgstr ""
+msgstr "Претвори у мала Ñлова"
#: editor/plugins/script_text_editor.cpp
msgid "Find Previous"
@@ -4803,127 +4900,127 @@ msgstr "Шејдер"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Constant"
-msgstr ""
+msgstr "Промени Ñкаларну конÑтанту"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Constant"
-msgstr ""
+msgstr "Промени векторÑку конÑтанту"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change RGB Constant"
-msgstr ""
+msgstr "Промени RGB конÑтанту"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Operator"
-msgstr ""
+msgstr "Промени Ñкаларни оператор"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Operator"
-msgstr ""
+msgstr "Промени векторÑки оператор"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Scalar Operator"
-msgstr ""
+msgstr "Промени векторÑко-Ñкаларни оператор"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change RGB Operator"
-msgstr ""
+msgstr "Промени RGB оператор"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Toggle Rot Only"
-msgstr ""
+msgstr "Само ротација"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Function"
-msgstr ""
+msgstr "Промени Ñкаларну функцију"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Function"
-msgstr ""
+msgstr "Промени векторÑку функцију"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Uniform"
-msgstr ""
+msgstr "Промени Ñкаларну униформу (uniform)"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Uniform"
-msgstr ""
+msgstr "Промени векторÑку униформу (uniform)"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change RGB Uniform"
-msgstr ""
+msgstr "Промени RGB униформу (uniform)"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Default Value"
-msgstr ""
+msgstr "Промени уобичајену вредноÑÑ‚"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change XForm Uniform"
-msgstr ""
+msgstr "Промени XForm униформу (uniform)"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Texture Uniform"
-msgstr ""
+msgstr "Промени текÑтурну униформу (uniform)"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Cubemap Uniform"
-msgstr ""
+msgstr "Промени Cubemap униформу (uniform)"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Comment"
-msgstr ""
+msgstr "Промени коментар"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Add/Remove to Color Ramp"
-msgstr ""
+msgstr "Додај/обириши из рампе боје"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Add/Remove to Curve Map"
-msgstr ""
+msgstr "Додај/обриши из мапе криве"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Modify Curve Map"
-msgstr ""
+msgstr "Модификуј мапу криве"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Input Name"
-msgstr ""
+msgstr "Промени улазно име"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Connect Graph Nodes"
-msgstr ""
+msgstr "Повежи чворове графа"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Disconnect Graph Nodes"
-msgstr ""
+msgstr "ИÑкључи чворове графа"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Remove Shader Graph Node"
-msgstr ""
+msgstr "Обриши чвор графа шејдера"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Move Shader Graph Node"
-msgstr ""
+msgstr "Помери чвор графа шејдера"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Duplicate Graph Node(s)"
-msgstr ""
+msgstr "Дуплирај чвор/ове графа"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Delete Shader Graph Node(s)"
-msgstr ""
+msgstr "Обриши чвор/ове графа шејдера"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Error: Cyclic Connection Link"
-msgstr ""
+msgstr "Грешка: пронађена циклична веза"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Error: Missing Input Connections"
-msgstr ""
+msgstr "Грешка: недоÑтаје улазна конекција"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Add Shader Graph Node"
-msgstr ""
+msgstr "Додај чвор графа шејдера"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Orthogonal"
@@ -4935,7 +5032,7 @@ msgstr "ПерÑпективна пројекција"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Aborted."
-msgstr ""
+msgstr "ТранÑформација прекинута."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "X-Axis Transform."
@@ -4951,7 +5048,7 @@ msgstr "ТранÑформација Z оÑе."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Plane Transform."
-msgstr ""
+msgstr "Види транÑформацију равни."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scaling: "
@@ -5011,7 +5108,7 @@ msgstr "деÑно"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Keying is disabled (no key inserted)."
-msgstr ""
+msgstr "Кључеви Ñу онемогућени (нема убачених кључева)."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Animation Key Inserted."
@@ -5049,33 +5146,41 @@ msgstr "FPS"
msgid "Align with view"
msgstr "Поравнавање Ñа погледом"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "ОК :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "Ðема родитеља за прављење Ñина."
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
-msgstr ""
+msgstr "Прикажи нормалу"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Wireframe"
-msgstr ""
+msgstr "Прикажи жичану мрежу"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Overdraw"
-msgstr ""
+msgstr "Рендген режим"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Unshaded"
-msgstr ""
+msgstr "Прикажи неоÑенчен"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Environment"
-msgstr ""
+msgstr "Прикажи околину"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Gizmos"
-msgstr ""
+msgstr "Прикажи Ñправице"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Information"
-msgstr ""
+msgstr "Прикажи информације"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View FPS"
@@ -5087,51 +5192,51 @@ msgstr "Упола резолуције"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Audio Listener"
-msgstr ""
+msgstr "Звучни Ñлушалац"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Doppler Enable"
-msgstr ""
+msgstr "„Doppler“ режим"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
-msgstr ""
+msgstr "Слободан поглед лево"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Right"
-msgstr ""
+msgstr "Слободан поглед деÑно"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Forward"
-msgstr ""
+msgstr "Слободан поглед напред"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Backwards"
-msgstr ""
+msgstr "Слободан поглед назад"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Up"
-msgstr ""
+msgstr "Слободан поглед горе"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Down"
-msgstr ""
+msgstr "Слободан поглед доле"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Speed Modifier"
-msgstr ""
+msgstr "Брзина Ñлободног погледа"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "preview"
-msgstr ""
+msgstr "преглед"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
-msgstr ""
+msgstr "XForm дијалог"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode (Q)\n"
-msgstr ""
+msgstr "Режим Ñелекције (Q)\n"
#: editor/plugins/spatial_editor_plugin.cpp
msgid ""
@@ -5139,78 +5244,95 @@ msgid ""
"Alt+Drag: Move\n"
"Alt+RMB: Depth list selection"
msgstr ""
+"Превуците мишем: ротација\n"
+"Alt+превуците мишем: померај\n"
+"Alt+деÑни таÑтер миша: Ñелекција лиÑте дубине"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Move Mode (W)"
-msgstr ""
+msgstr "Режим помераја (W)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Mode (E)"
-msgstr ""
+msgstr "Режим ротације (E)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Mode (R)"
-msgstr ""
+msgstr "Режим Ñкалирања (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "Локалне координате"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "Режим Ñкалирања (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Режим лепљења:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
-msgstr ""
+msgstr "Поглед одоздо"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Top View"
-msgstr ""
+msgstr "Поглед одозго"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rear View"
-msgstr ""
+msgstr "Поглед позади"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Front View"
-msgstr ""
+msgstr "Поглед иÑпред"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Left View"
-msgstr ""
+msgstr "Поглед Ñ Ð»ÐµÐ²Ð°"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Right View"
-msgstr ""
+msgstr "Поглед Ñ Ð´ÐµÑна"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Switch Perspective/Orthogonal view"
-msgstr ""
+msgstr "Пребаци у перÑпективни/ортогонални поглед"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Insert Animation Key"
-msgstr ""
+msgstr "Убаци анимациони кључ"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Origin"
-msgstr ""
+msgstr "Ð¤Ð¾ÐºÑƒÑ Ð½Ð° центар"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Focus Selection"
-msgstr ""
+msgstr "Ð¤Ð¾ÐºÑƒÑ Ð½Ð° Ñелекцију"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Align Selection With View"
-msgstr ""
+msgstr "Поравнај одабрано Ñа погледом"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Tool Select"
-msgstr ""
+msgstr "Избор алатки"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Tool Move"
-msgstr ""
+msgstr "Ðлат помераја"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Tool Rotate"
-msgstr ""
+msgstr "Ðлат ротације"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Tool Scale"
-msgstr ""
+msgstr "Ðлат Ñкалирања"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Toggle Freelook"
@@ -5218,88 +5340,88 @@ msgstr "Укљ./ИÑкљ. режим Ñлободног гледања"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform"
-msgstr ""
+msgstr "ТранÑформација"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Configure Snap.."
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
+msgstr "Конфигуриши лепљење..."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
-msgstr ""
+msgstr "Прозор транÑформације..."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "1 Viewport"
-msgstr ""
+msgstr "1 прозор"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports"
-msgstr ""
+msgstr "2 прозора"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports (Alt)"
-msgstr ""
+msgstr "2 прозора (алтернатива)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports"
-msgstr ""
+msgstr "3 прозора"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports (Alt)"
-msgstr ""
+msgstr "3 прозора (алтернатива)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "4 Viewports"
-msgstr ""
+msgstr "4 прозора"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Origin"
-msgstr ""
+msgstr "Прикажи центар"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Grid"
-msgstr ""
+msgstr "Прикажи мрежу"
#: editor/plugins/spatial_editor_plugin.cpp
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Settings"
+msgstr "ПоÑтавке"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
-msgstr ""
+msgstr "ПоÑтавке лепљења"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translate Snap:"
-msgstr ""
+msgstr "ТранÑформација лепљења:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate Snap (deg.):"
-msgstr ""
+msgstr "Ротирај лепљење (у Ñтепенима):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Snap (%):"
-msgstr ""
+msgstr "Скалирај лепљење (%):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Viewport Settings"
-msgstr ""
+msgstr "ПоÑтавке прозора"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Perspective FOV (deg.):"
-msgstr ""
+msgstr "Видеокруг перÑпективе (у Ñтепенима):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Near:"
-msgstr ""
+msgstr "Минимум Z за приказ:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Z-Far:"
-msgstr ""
+msgstr "МакÑимум Z за приказ:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Change"
@@ -5307,204 +5429,207 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Translate:"
-msgstr ""
+msgstr "Померај:"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Rotate (deg.):"
-msgstr ""
+msgstr "Ротација (Ñтепени):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale (ratio):"
-msgstr ""
+msgstr "Скала (размера):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Type"
-msgstr ""
+msgstr "Тип транÑформације"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Pre"
-msgstr ""
+msgstr "Пре"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Post"
-msgstr ""
+msgstr "ПоÑле"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "ERROR: Couldn't load frame resource!"
-msgstr ""
+msgstr "Грешка: неуÑпех при учитавању реÑурÑа оквира!"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Frame"
-msgstr ""
+msgstr "Додај оквир"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Resource clipboard is empty or not a texture!"
-msgstr ""
+msgstr "РеÑÑƒÑ€Ñ Ð·Ð° копирање не поÑтоји или није текÑтура!"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Paste Frame"
-msgstr ""
+msgstr "Ðалепи оквир"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Empty"
-msgstr ""
+msgstr "Додај празан"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation Loop"
-msgstr ""
+msgstr "Промени Ñ†Ð¸ÐºÐ»ÑƒÑ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ñ˜Ðµ"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Change Animation FPS"
-msgstr ""
+msgstr "Промени број Ñлика у Ñекунди (FPS)"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "(empty)"
-msgstr ""
+msgstr "(празно)"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Animations"
-msgstr ""
+msgstr "Ðнимације"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Speed (FPS):"
-msgstr ""
+msgstr "Брзина (FPS):"
#: editor/plugins/sprite_frames_editor_plugin.cpp
+#, fuzzy
msgid "Loop"
-msgstr ""
+msgstr "ЦиклуÑ"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Animation Frames"
-msgstr ""
+msgstr "Ðнимационе Ñлике"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Insert Empty (Before)"
-msgstr ""
+msgstr "Уметни празан (иза)"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Insert Empty (After)"
-msgstr ""
+msgstr "Уметни празан (иÑпред)"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Move (Before)"
-msgstr ""
+msgstr "Помери (иза)"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Move (After)"
-msgstr ""
+msgstr "Помери (иÑпред)"
#: editor/plugins/style_box_editor_plugin.cpp
msgid "StyleBox Preview:"
-msgstr ""
+msgstr "StyleBox преглед:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Set Region Rect"
-msgstr ""
+msgstr "ПоÑтави правоугаони регион"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap Mode:"
-msgstr ""
+msgstr "Режим лепљења:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "<None>"
-msgstr ""
+msgstr "<Ðиједан>"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Pixel Snap"
-msgstr ""
+msgstr "Лепљење по пикÑелу"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Grid Snap"
-msgstr ""
+msgstr "Лепљење по мрежи"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Auto Slice"
-msgstr ""
+msgstr "ÐутоматÑки рез"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Offset:"
-msgstr ""
+msgstr "ОфÑет:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Step:"
-msgstr ""
+msgstr "Корак:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Separation:"
-msgstr ""
+msgstr "ОдвојеноÑÑ‚:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Texture Region"
-msgstr ""
+msgstr "Регион текÑтуре"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Texture Region Editor"
-msgstr ""
+msgstr "Уредник региона текÑтуре"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Can't save theme to file:"
-msgstr ""
+msgstr "ÐеуÑпех при чувању теме:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add All Items"
-msgstr ""
+msgstr "Додај Ñве Ñтавке"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add All"
-msgstr ""
+msgstr "Додај Ñве"
#: editor/plugins/theme_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Remove Item"
-msgstr ""
+msgstr "Обриши Ñтавку"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All Items"
-msgstr ""
+msgstr "Обриши Ñве Ñтавке"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove All"
-msgstr ""
+msgstr "Обриши Ñве"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Edit theme.."
-msgstr ""
+msgstr "Измени тему..."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme editing menu."
-msgstr ""
+msgstr "Мени уређивања теме."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
-msgstr ""
+msgstr "Додај Ñтавке клаÑе"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
-msgstr ""
+msgstr "Обриши Ñтавке клаÑе"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create Empty Template"
-msgstr ""
+msgstr "Ðаправи празан шаблон"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create Empty Editor Template"
-msgstr ""
+msgstr "Ðаправи празан шаблон за уредник"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create From Current Editor Theme"
-msgstr ""
+msgstr "Ðаправи од тренутне теме уредника"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "CheckBox Radio1"
-msgstr ""
+msgstr "CheckBox Radio1"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "CheckBox Radio2"
-msgstr ""
+msgstr "CheckBox Radio2"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Item"
-msgstr ""
+msgstr "Ставка"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Check Item"
@@ -5516,88 +5641,91 @@ msgstr ""
#: editor/plugins/theme_editor_plugin.cpp
msgid "Has"
-msgstr ""
+msgstr "Има"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Many"
-msgstr ""
+msgstr "Много"
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
msgid "Options"
-msgstr ""
+msgstr "Опција"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Have,Many,Several,Options!"
-msgstr ""
+msgstr "Има,много,неколико,опција!"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Tab 1"
-msgstr ""
+msgstr "Tab 1"
#: editor/plugins/theme_editor_plugin.cpp
+#, fuzzy
msgid "Tab 2"
-msgstr ""
+msgstr "Tab 2"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Tab 3"
-msgstr ""
+msgstr "Tab 3"
#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
#: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp
msgid "Type:"
-msgstr ""
+msgstr "Тип:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Data Type:"
-msgstr ""
+msgstr "Тип податка:"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Icon"
-msgstr ""
+msgstr "Икона"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Style"
-msgstr ""
+msgstr "Стил"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Font"
-msgstr ""
+msgstr "Фонт"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Color"
-msgstr ""
+msgstr "Боја"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase Selection"
-msgstr ""
+msgstr "Обриши одабрано"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint TileMap"
-msgstr ""
+msgstr "Цртај TileMap"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Line Draw"
-msgstr ""
+msgstr "Цртање линије"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Rectangle Paint"
-msgstr ""
+msgstr "Цртање правоугаоником"
#: editor/plugins/tile_map_editor_plugin.cpp
+#, fuzzy
msgid "Bucket Fill"
-msgstr ""
+msgstr "Попуни"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase TileMap"
-msgstr ""
+msgstr "Обриши TileMap"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Erase selection"
-msgstr ""
+msgstr "Обриши одабрано"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Find tile"
-msgstr ""
+msgstr "Ðађи плочицу"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Transpose"
@@ -5605,133 +5733,151 @@ msgstr ""
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Mirror X"
-msgstr ""
+msgstr "Огледало X оÑе"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Mirror Y"
-msgstr ""
+msgstr "Огледало Y оÑе"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Paint Tile"
-msgstr ""
+msgstr "Цртај полчице"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Pick Tile"
-msgstr ""
+msgstr "Одабери плочицу"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate 0 degrees"
-msgstr ""
+msgstr "Ротирај 0 Ñтепени"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate 90 degrees"
-msgstr ""
+msgstr "Ротирај 90 Ñтепени"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate 180 degrees"
-msgstr ""
+msgstr "Ротирај 180 Ñтепени"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Rotate 270 degrees"
-msgstr ""
+msgstr "Ротирај 270 Ñтепени"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Could not find tile:"
-msgstr ""
+msgstr "ÐеуÑпех при тражењу плочице:"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Item name or ID:"
-msgstr ""
+msgstr "Име Ñтавке или идентификатор (ID):"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from scene?"
-msgstr ""
+msgstr "Ðаправи од Ñцене?"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Merge from scene?"
-msgstr ""
+msgstr "Споји из Ñцене?"
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet..."
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
-msgstr ""
+msgstr "Ðаправи од Ñцене"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
msgid "Merge from Scene"
-msgstr ""
+msgstr "Споји од Ñцене"
#: editor/plugins/tile_set_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Error"
+msgstr "Грешка"
+
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
msgstr ""
#: editor/project_export.cpp
msgid "Runnable"
-msgstr ""
+msgstr "Покретљива"
#: editor/project_export.cpp
msgid "Delete patch '%s' from list?"
-msgstr ""
+msgstr "Обриши закрпу „%s“ Ñа лиÑте?"
#: editor/project_export.cpp
+#, fuzzy
msgid "Delete preset '%s'?"
-msgstr ""
+msgstr "Обриши поÑтавку „%s“?"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing/corrupted: "
-msgstr ""
+msgstr "Извозни шаблони за ову платформу Ñу или иÑкварени или непоÑтојећи: "
#: editor/project_export.cpp
+#, fuzzy
msgid "Presets"
-msgstr ""
+msgstr "ПоÑтавке"
#: editor/project_export.cpp editor/project_settings_editor.cpp
msgid "Add.."
-msgstr ""
+msgstr "Додај..."
#: editor/project_export.cpp
msgid "Resources"
-msgstr ""
+msgstr "РеÑурÑи"
#: editor/project_export.cpp
msgid "Export all resources in the project"
-msgstr ""
+msgstr "Извези Ñве реÑурÑе у пројекту"
#: editor/project_export.cpp
msgid "Export selected scenes (and dependencies)"
-msgstr ""
+msgstr "Извези одабране Ñцене (и завиÑноÑти)"
#: editor/project_export.cpp
msgid "Export selected resources (and dependencies)"
-msgstr ""
+msgstr "Извези одабране реÑурÑе (и завиÑноÑти)"
#: editor/project_export.cpp
msgid "Export Mode:"
-msgstr ""
+msgstr "Режим извоза:"
#: editor/project_export.cpp
msgid "Resources to export:"
-msgstr ""
+msgstr "РеÑурÑи за извоз:"
#: editor/project_export.cpp
+#, fuzzy
msgid ""
"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)"
msgstr ""
+"Филтери за извоз нереÑурÑких датотека (зарез за одвајање, пр. *.json, *.txt)"
#: editor/project_export.cpp
msgid ""
"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)"
msgstr ""
+"Филтери за иÑкључивање датотека из пројекта (зарез за одвајање, пр. *.json, "
+"*.txt)"
#: editor/project_export.cpp
msgid "Patches"
-msgstr ""
+msgstr "Закрпе"
#: editor/project_export.cpp
+#, fuzzy
msgid "Make Patch"
-msgstr ""
+msgstr "Ðаправи закрп"
#: editor/project_export.cpp
msgid "Features"
-msgstr ""
+msgstr "КарактериÑтике"
#: editor/project_export.cpp
msgid "Custom (comma-separated):"
@@ -5739,19 +5885,19 @@ msgstr ""
#: editor/project_export.cpp
msgid "Feature List:"
-msgstr ""
+msgstr "ЛиÑта карактериÑтика:"
#: editor/project_export.cpp
msgid "Export PCK/Zip"
-msgstr ""
+msgstr "Извоз PCK/Zip"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing:"
-msgstr ""
+msgstr "Извозни шаблони за ову платформу ниÑу пронађени:"
#: editor/project_export.cpp
msgid "Export templates for this platform are missing/corrupted:"
-msgstr ""
+msgstr "Извозни шаблони за ову платформу или ниÑу пронађени или Ñу иÑкварене:"
#: editor/project_export.cpp
msgid "Export With Debug"
@@ -5780,10 +5926,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -6040,8 +6182,9 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr ""
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Обриши одабрано"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6108,6 +6251,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6284,6 +6431,10 @@ msgid "New Script"
msgstr ""
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6315,6 +6466,11 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "Додај празан"
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6323,10 +6479,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6876,6 +7028,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6924,15 +7080,52 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Обриши тачку криве"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7581,6 +7774,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7609,10 +7818,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7665,10 +7870,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr ""
@@ -7677,9 +7878,8 @@ msgid "Please Confirm..."
msgstr ""
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select this Folder"
-msgstr "Одабери режим"
+msgstr "Одабери овај директоријум"
#: scene/gui/popup.cpp
msgid ""
@@ -7729,6 +7929,24 @@ msgstr ""
msgid "Invalid font size."
msgstr "Ðеважећа величина фонта."
+#~ msgid "Move Add Key"
+#~ msgstr "Помери кључ"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Ðаправи претплату"
+
+#~ msgid "List:"
+#~ msgstr "ЛиÑта:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "ПоÑтави маÑку емиÑије"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "ОчиÑти емитер"
+
+#~ msgid "Fold Line"
+#~ msgstr "ПреÑавији линију"
+
#~ msgid "Cannot navigate to '"
#~ msgstr "Ðе могу прећи у '"
diff --git a/editor/translations/sv.po b/editor/translations/sv.po
index 782ff2c39e..2fdcab409f 100644
--- a/editor/translations/sv.po
+++ b/editor/translations/sv.po
@@ -9,7 +9,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-29 08:13+0000\n"
+"PO-Revision-Date: 2017-12-01 23:50+0000\n"
"Last-Translator: bergmarklund <davemcgroin@gmail.com>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/godot-engine/"
"godot/sv/>\n"
@@ -28,8 +28,9 @@ msgid "All Selection"
msgstr "Alla urval"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Flytta Lägg Till Nyckel"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Anim Ändra Värde"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -40,7 +41,8 @@ msgid "Anim Change Transform"
msgstr "Anim Ändra Transformation"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Anim Ändra Värde"
#: editor/animation_editor.cpp
@@ -569,8 +571,8 @@ msgstr "Ansluter Signal:"
#: editor/connections_dialog.cpp
#, fuzzy
-msgid "Create Subscription"
-msgstr "Skapa Prenumeration"
+msgid "Disconnect '%s' from '%s'"
+msgstr "Anslut '%s' till '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -587,7 +589,8 @@ msgid "Signals"
msgstr "Signaler"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Skapa Ny"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -603,7 +606,7 @@ msgstr "Senaste:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Sök:"
@@ -648,6 +651,7 @@ msgstr ""
"Ändringarna börjar gälla när den laddas om."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
#, fuzzy
msgid "Dependencies"
msgstr "Beroenden"
@@ -769,9 +773,10 @@ msgid "Delete selected files?"
msgstr "Ta bort valda filer?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Ta bort"
@@ -937,6 +942,11 @@ msgstr "Byt namn på Ljud-Buss"
#: editor/editor_audio_buses.cpp
#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Växla Ljud-Buss Solo"
+
+#: editor/editor_audio_buses.cpp
+#, fuzzy
msgid "Toggle Audio Bus Solo"
msgstr "Växla Ljud-Buss Solo"
@@ -995,8 +1005,8 @@ msgstr "Bypass"
msgid "Bus options"
msgstr "Buss-alternativ"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "Duplicera"
@@ -1010,6 +1020,10 @@ msgid "Delete Effect"
msgstr "Ta bort Effekt"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
#, fuzzy
msgid "Add Audio Bus"
msgstr "Lägg till Ljud-Buss"
@@ -1196,7 +1210,8 @@ msgstr "Sökväg:"
msgid "Node Name:"
msgstr "Node Namn:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Namn"
@@ -1205,10 +1220,6 @@ msgstr "Namn"
msgid "Singleton"
msgstr "Singleton"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Lista:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "Uppdaterar Scen"
@@ -1222,6 +1233,15 @@ msgstr "Lagrar lokala ändringar.."
msgid "Updating scene.."
msgstr "Uppdaterar scen.."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(tom)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
#, fuzzy
msgid "Please select a base directory first"
@@ -1278,6 +1298,24 @@ msgstr "Filen finns redan, skriv över?"
msgid "Select Current Folder"
msgstr "Skapa Mapp"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Copy Path"
+msgstr "Kopiera Sökvägen"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Show In File Manager"
+msgstr "Visa I Filhanteraren"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Ny Mapp.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Uppdatera"
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr ""
@@ -1327,10 +1365,6 @@ msgid "Go Up"
msgstr "GÃ¥ Upp"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Uppdatera"
-
-#: editor/editor_file_dialog.cpp
#, fuzzy
msgid "Toggle Hidden Files"
msgstr "Växla Dolda Filer"
@@ -1537,7 +1571,8 @@ msgstr "Output:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
#, fuzzy
msgid "Clear"
msgstr "Rensa"
@@ -1553,9 +1588,8 @@ msgstr "Spara Resurs Som.."
#: editor/editor_node.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-#, fuzzy
msgid "I see.."
-msgstr "Jag ser.."
+msgstr "Jag förstår.."
#: editor/editor_node.cpp
#, fuzzy
@@ -2557,6 +2591,15 @@ msgstr "Själv"
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Tid:"
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
#: editor/editor_run_native.cpp
#, fuzzy
msgid "Select device from the list"
@@ -2703,7 +2746,7 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+msgid "Request Failed."
msgstr ""
#: editor/export_template_manager.cpp
@@ -2754,7 +2797,7 @@ msgstr "Ansluter.."
#: editor/export_template_manager.cpp
#, fuzzy
-msgid "Can't Conect"
+msgid "Can't Connect"
msgstr "Kan inte Ansluta"
#: editor/export_template_manager.cpp
@@ -2854,6 +2897,11 @@ msgid "Error moving:\n"
msgstr ""
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Fel vid laddning:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr ""
@@ -2890,6 +2938,16 @@ msgstr "Byter namn på mappen:"
#: editor/filesystem_dock.cpp
#, fuzzy
+msgid "Duplicating file:"
+msgstr "Duplicera"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Byter namn på mappen:"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
msgid "Expand all"
msgstr "Expandera alla"
@@ -2899,11 +2957,6 @@ msgstr ""
#: editor/filesystem_dock.cpp
#, fuzzy
-msgid "Copy Path"
-msgstr "Kopiera Sökvägen"
-
-#: editor/filesystem_dock.cpp
-#, fuzzy
msgid "Rename.."
msgstr "Byt namn.."
@@ -2913,13 +2966,9 @@ msgid "Move To.."
msgstr "Flytta Till.."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "Ny Mapp.."
-
-#: editor/filesystem_dock.cpp
#, fuzzy
-msgid "Show In File Manager"
-msgstr "Visa I Filhanteraren"
+msgid "Open Scene(s)"
+msgstr "Öppna Scen"
#: editor/filesystem_dock.cpp
#, fuzzy
@@ -2936,6 +2985,11 @@ msgid "View Owners.."
msgstr "Visa Ägare.."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Duplicera"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -3033,6 +3087,14 @@ msgid "Importing Scene.."
msgstr "Importerar Scen.."
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3618,6 +3680,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Alla"
@@ -3660,6 +3723,27 @@ msgstr ""
msgid "Assets ZIP File"
msgstr ""
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
#, fuzzy
msgid "Preview"
@@ -3795,7 +3879,6 @@ msgid "Toggles snapping"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3978,17 +4061,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "OK :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-#, fuzzy
-msgid "No parent to instance a child at."
-msgstr "Ingen förälder att instansiera ett barn till."
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
#, fuzzy
msgid "This operation requires a single selected node."
msgstr "Åtgärden kräver en enstaka vald Node."
@@ -4190,6 +4262,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -4230,6 +4318,20 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Visa"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Visa"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4413,10 +4515,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4434,15 +4532,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4505,10 +4603,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4799,12 +4893,14 @@ msgstr "Sortera"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
#, fuzzy
msgid "Move Up"
msgstr "Flytta Upp"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
#, fuzzy
msgid "Move Down"
msgstr "Flytta Ner"
@@ -4823,7 +4919,7 @@ msgstr "Föregående Skript"
msgid "File"
msgstr "Fil"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "Ny"
@@ -4836,6 +4932,11 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Kopiera Sökvägen"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -5038,11 +5139,7 @@ msgid "Clone Down"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+msgid "Fold/Unfold Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -5392,6 +5489,15 @@ msgstr "FPS"
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "OK :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+#, fuzzy
+msgid "No parent to instance a child at."
+msgstr "Ingen förälder att instansiera ett barn till."
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5499,6 +5605,18 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
#, fuzzy
msgid "Bottom View"
msgstr "Vy underifrån"
@@ -5578,10 +5696,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5623,6 +5737,10 @@ msgid "Settings"
msgstr "Inställningar"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -6021,6 +6139,11 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet.."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "Skapa från Scen"
@@ -6033,6 +6156,11 @@ msgstr ""
msgid "Error"
msgstr "Fel"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+#, fuzzy
+msgid "Cancel"
+msgstr "Avbryt"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -6157,10 +6285,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
#, fuzzy
msgid "It would be a good idea to name your project."
msgstr "Det vore en bra idé att namnge ditt projekt."
@@ -6440,7 +6564,7 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
+msgid "Erase Input Action"
msgstr ""
#: editor/project_settings_editor.cpp
@@ -6509,6 +6633,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6696,6 +6824,10 @@ msgid "New Script"
msgstr "Nytt Skript"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6730,6 +6862,10 @@ msgstr ""
msgid "On"
msgstr "PÃ¥"
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6738,11 +6874,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-#, fuzzy
-msgid "Sections:"
-msgstr "Sektioner:"
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -7343,6 +7474,10 @@ msgstr ""
msgid "Shortcuts"
msgstr "Genvägar"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -7391,16 +7526,55 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Flytta nuvarande spår upp."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "Bibliotek"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "GDNative"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Library"
msgstr "Bibliotek"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr "Status"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Libraries: "
msgstr "Bibliotek: "
@@ -8103,6 +8277,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr "ARVROrigin kräver en ARVRCamera Barn-Node"
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
#, fuzzy
msgid ""
@@ -8140,10 +8330,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -8199,11 +8385,6 @@ msgstr "Lägg till nuvarande färg som en förinställning"
#: scene/gui/dialogs.cpp
#, fuzzy
-msgid "Cancel"
-msgstr "Avbryt"
-
-#: scene/gui/dialogs.cpp
-#, fuzzy
msgid "Alert!"
msgstr "Varning!"
@@ -8268,3 +8449,17 @@ msgstr "Fel vid laddning av font."
#, fuzzy
msgid "Invalid font size."
msgstr "Ogiltig teckenstorlek."
+
+#~ msgid "Move Add Key"
+#~ msgstr "Flytta Lägg Till Nyckel"
+
+#, fuzzy
+#~ msgid "Create Subscription"
+#~ msgstr "Skapa Prenumeration"
+
+#~ msgid "List:"
+#~ msgstr "Lista:"
+
+#, fuzzy
+#~ msgid "Sections:"
+#~ msgstr "Sektioner:"
diff --git a/editor/translations/ta.po b/editor/translations/ta.po
new file mode 100644
index 0000000000..25a38597f4
--- /dev/null
+++ b/editor/translations/ta.po
@@ -0,0 +1,7791 @@
+# Tamil translation of the Godot Engine editor
+# Copyright (C) 2007-2017 Juan Linietsky, Ariel Manzur
+# Copyright (C) 2014-2017 Godot Engine contributors (cf. AUTHORS.md)
+# This file is distributed under the same license as the Godot source code.
+#
+# Senthil Kumar K <logickumar@gmail.com>, 2017.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Godot Engine editor\n"
+"PO-Revision-Date: 2017-12-20 15:43+0000\n"
+"Last-Translator: Senthil Kumar K <logickumar@gmail.com>\n"
+"Language-Team: Tamil <https://hosted.weblate.org/projects/godot-engine/godot/"
+"ta/>\n"
+"Language: ta\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 2.18\n"
+
+#: editor/animation_editor.cpp
+msgid "Disabled"
+msgstr "à®®à¯à®Ÿà®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯"
+
+#: editor/animation_editor.cpp
+msgid "All Selection"
+msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯"
+
+#: editor/animation_editor.cpp
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "மாறà¯à®± மதிபà¯à®ªà¯ அசைவூடà¯à®Ÿà¯"
+
+#: editor/animation_editor.cpp
+msgid "Anim Change Transition"
+msgstr "மாறà¯à®±à®®à¯ அசைவூடà¯à®Ÿà¯"
+
+#: editor/animation_editor.cpp
+msgid "Anim Change Transform"
+msgstr "உரà¯à®®à®¾à®±à¯à®±à®®à¯ அசைவூடà¯à®Ÿà¯"
+
+#: editor/animation_editor.cpp
+#, fuzzy
+msgid "Anim Change Keyframe Value"
+msgstr "மாறà¯à®± மதிபà¯à®ªà¯ அசைவூடà¯à®Ÿà¯"
+
+#: editor/animation_editor.cpp
+msgid "Anim Change Call"
+msgstr "மாறà¯à®± அழைபà¯à®ªà¯ அசைவூடà¯à®Ÿà¯"
+
+#: editor/animation_editor.cpp
+msgid "Anim Add Track"
+msgstr "அசைவூடà¯à®Ÿà¯ பாதை சேரà¯"
+
+#: editor/animation_editor.cpp
+msgid "Anim Duplicate Keys"
+msgstr "அசைவூடà¯à®Ÿà¯ போலிபசà¯à®šà®¾à®µà®¿à®•ளà¯"
+
+#: editor/animation_editor.cpp
+msgid "Move Anim Track Up"
+msgstr "அசைவூடà¯à®Ÿà¯ பாதையை மேலே நகரà¯à®¤à¯à®¤à¯"
+
+#: editor/animation_editor.cpp
+msgid "Move Anim Track Down"
+msgstr "அசைவூடà¯à®Ÿà¯ பாதையை கீழே நகரà¯à®¤à¯à®¤à¯"
+
+#: editor/animation_editor.cpp
+msgid "Remove Anim Track"
+msgstr "அசைவூடà¯à®Ÿà¯ பாதையை நீகà¯à®•à¯"
+
+#: editor/animation_editor.cpp
+msgid "Set Transitions to:"
+msgstr "மாறà¯à®±à®™à¯à®•ளை இதறà¯à®•௠அமை:"
+
+#: editor/animation_editor.cpp
+msgid "Anim Track Rename"
+msgstr "அசைவூடà¯à®Ÿà¯ பாதைகà¯à®•௠மறà¯à®ªà¯†à®¯à®°à¯ இடà¯"
+
+#: editor/animation_editor.cpp
+msgid "Anim Track Change Interpolation"
+msgstr "அசைவூடà¯à®Ÿà¯ பாதை [interpolation]யை மாறà¯à®±à¯"
+
+#: editor/animation_editor.cpp
+msgid "Anim Track Change Value Mode"
+msgstr "அசைவூடà¯à®Ÿà¯ பாதை மதிபà¯à®ªà¯[value] விதம௠மாறà¯à®±à¯"
+
+#: editor/animation_editor.cpp
+msgid "Anim Track Change Wrap Mode"
+msgstr "அசைவூடà¯à®Ÿà¯ பாதை மறை[wrap] விதம௠மாறà¯à®±à¯"
+
+#: editor/animation_editor.cpp
+msgid "Edit Node Curve"
+msgstr "கண௠வளைவை[Node Curve] திரà¯à®¤à¯à®¤à¯"
+
+#: editor/animation_editor.cpp
+msgid "Edit Selection Curve"
+msgstr "தேரà¯à®µà¯ வளைவை [Selection Curve] திரà¯à®¤à¯à®¤à¯"
+
+#: editor/animation_editor.cpp
+msgid "Anim Delete Keys"
+msgstr ""
+
+#: editor/animation_editor.cpp editor/plugins/tile_map_editor_plugin.cpp
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Duplicate Selection"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Duplicate Transposed"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Remove Selection"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Continuous"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Discrete"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Trigger"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Add Key"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Move Keys"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Scale Selection"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Scale From Cursor"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Goto Next Step"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Goto Prev Step"
+msgstr ""
+
+#: editor/animation_editor.cpp editor/plugins/curve_editor_plugin.cpp
+#: editor/property_editor.cpp
+msgid "Linear"
+msgstr ""
+
+#: editor/animation_editor.cpp editor/plugins/theme_editor_plugin.cpp
+msgid "Constant"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "In"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Out"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "In-Out"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Out-In"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Transitions"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Optimize Animation"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Clean-Up Animation"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Create NEW track for %s and insert key?"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Create %d NEW tracks and insert keys?"
+msgstr ""
+
+#: editor/animation_editor.cpp editor/create_dialog.cpp
+#: editor/editor_audio_buses.cpp editor/plugins/abstract_polygon_2d_editor.cpp
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#: editor/plugins/particles_editor_plugin.cpp editor/project_manager.cpp
+#: editor/script_create_dialog.cpp
+msgid "Create"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Create & Insert"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Insert Track & Key"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Insert Key"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Change Anim Len"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Change Anim Loop"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Create Typed Value Key"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Insert"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Scale Keys"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim Add Call Track"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Animation zoom."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Length (s):"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Animation length (in seconds)."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Step (s):"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Cursor step snap (in seconds)."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Enable/Disable looping in animation."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Add new tracks."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Move current track up."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Move current track down."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Remove selected track."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Track tools"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Enable editing of individual keys by clicking them."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Anim. Optimizer"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Max. Linear Error:"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Max. Angular Error:"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Max Optimizable Angle:"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Optimize"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Select an AnimationPlayer from the Scene Tree to edit animations."
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Key"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Transition"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Scale Ratio:"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Call Functions in Which Node?"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Remove invalid keys"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Remove unresolved and empty tracks"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Clean-up all animations"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Clean-Up Animation(s) (NO UNDO!)"
+msgstr ""
+
+#: editor/animation_editor.cpp
+msgid "Clean-Up"
+msgstr ""
+
+#: editor/array_property_edit.cpp
+msgid "Resize Array"
+msgstr ""
+
+#: editor/array_property_edit.cpp
+msgid "Change Array Value Type"
+msgstr ""
+
+#: editor/array_property_edit.cpp
+msgid "Change Array Value"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Go to Line"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Line Number:"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "No Matches"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Replaced %d occurrence(s)."
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Replace"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Replace All"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Match Case"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Whole Words"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Selection Only"
+msgstr ""
+
+#: editor/code_editor.cpp editor/editor_node.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/project_settings_editor.cpp
+msgid "Search"
+msgstr ""
+
+#: editor/code_editor.cpp editor/editor_help.cpp
+msgid "Find"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Next"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Not found!"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Replace By"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Case Sensitive"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Backwards"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Prompt On Replace"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Skip"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Zoom In"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Zoom Out"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Reset Zoom"
+msgstr ""
+
+#: editor/code_editor.cpp editor/script_editor_debugger.cpp
+msgid "Line:"
+msgstr ""
+
+#: editor/code_editor.cpp
+msgid "Col:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Method in target Node must be specified!"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid ""
+"Target method not found! Specify a valid method or attach a script to target "
+"Node."
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connect To Node:"
+msgstr ""
+
+#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp
+#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
+msgid "Add"
+msgstr ""
+
+#: editor/connections_dialog.cpp editor/dependency_editor.cpp
+#: editor/plugins/animation_tree_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp
+#: editor/project_settings_editor.cpp
+msgid "Remove"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Add Extra Call Argument:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Extra Call Arguments:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Path to Node:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Make Function"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Deferred"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Oneshot"
+msgstr ""
+
+#: editor/connections_dialog.cpp editor/dependency_editor.cpp
+#: editor/export_template_manager.cpp
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp
+#: editor/project_settings_editor.cpp editor/property_editor.cpp
+#: editor/run_settings_dialog.cpp editor/settings_config_dialog.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Close"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connect"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connect '%s' to '%s'"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connecting Signal:"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Disconnect '%s' from '%s'"
+msgstr ""
+
+#: editor/connections_dialog.cpp
+msgid "Connect.."
+msgstr ""
+
+#: editor/connections_dialog.cpp
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Disconnect"
+msgstr ""
+
+#: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp
+msgid "Signals"
+msgstr ""
+
+#: editor/create_dialog.cpp
+msgid "Create New %s"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
+#: editor/filesystem_dock.cpp
+msgid "Favorites:"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
+msgid "Recent:"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/editor_node.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
+#: editor/quick_open.cpp
+msgid "Search:"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/editor_help.cpp
+#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
+#: editor/quick_open.cpp
+msgid "Matches:"
+msgstr ""
+
+#: editor/create_dialog.cpp editor/editor_help.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp
+#: editor/script_editor_debugger.cpp
+msgid "Description:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Search Replacement For:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Dependencies For:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid ""
+"Scene '%s' is currently being edited.\n"
+"Changes will not take effect unless reloaded."
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid ""
+"Resource '%s' is in use.\n"
+"Changes will take effect when reloaded."
+msgstr ""
+
+#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dependencies"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Resource"
+msgstr ""
+
+#: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp
+#: editor/project_manager.cpp editor/project_settings_editor.cpp
+#: editor/script_create_dialog.cpp
+msgid "Path"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Dependencies:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Fix Broken"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Dependency Editor"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Search Replacement Resource:"
+msgstr ""
+
+#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp
+#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp
+#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
+#: editor/quick_open.cpp scene/gui/file_dialog.cpp
+msgid "Open"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Owners Of:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Remove selected files from the project? (no undo)"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid ""
+"The files being removed are required by other resources in order for them to "
+"work.\n"
+"Remove them anyway? (no undo)"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Cannot remove:\n"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Error loading:"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Scene failed to load due to missing dependencies:"
+msgstr ""
+
+#: editor/dependency_editor.cpp editor/editor_node.cpp
+msgid "Open Anyway"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Which action should be taken?"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Fix Dependencies"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Errors loading!"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Permanently delete %d item(s)? (No undo!)"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Owns"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Resources Without Explicit Ownership:"
+msgstr ""
+
+#: editor/dependency_editor.cpp editor/editor_node.cpp
+msgid "Orphan Resource Explorer"
+msgstr ""
+
+#: editor/dependency_editor.cpp
+msgid "Delete selected files?"
+msgstr ""
+
+#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
+msgid "Delete"
+msgstr ""
+
+#: editor/dictionary_property_edit.cpp
+msgid "Change Dictionary Key"
+msgstr ""
+
+#: editor/dictionary_property_edit.cpp
+msgid "Change Dictionary Value"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Thanks from the Godot community!"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Thanks!"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Godot Engine contributors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Project Founders"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Lead Developer"
+msgstr ""
+
+#: editor/editor_about.cpp editor/project_manager.cpp
+msgid "Project Manager"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Developers"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Authors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Platinum Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Gold Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Mini Sponsors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Gold Donors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Silver Donors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Bronze Donors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Donors"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "License"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Thirdparty License"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid ""
+"Godot Engine relies on a number of thirdparty free and open source "
+"libraries, all compatible with the terms of its MIT license. The following "
+"is an exhaustive list of all such thirdparty components with their "
+"respective copyright statements and license terms."
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "All Components"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Components"
+msgstr ""
+
+#: editor/editor_about.cpp
+msgid "Licenses"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp editor/project_manager.cpp
+msgid "Error opening package file, not in zip format."
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+msgid "Uncompressing Assets"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp editor/project_manager.cpp
+msgid "Package Installed Successfully!"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Success!"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp
+msgid "Install"
+msgstr ""
+
+#: editor/editor_asset_installer.cpp
+msgid "Package Installer"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Speakers"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Add Effect"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Rename Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Change Audio Bus Volume"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Toggle Audio Bus Solo"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Toggle Audio Bus Mute"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Toggle Audio Bus Bypass Effects"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Select Audio Bus Send"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Add Audio Bus Effect"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Move Bus Effect"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Delete Bus Effect"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Audio Bus, Drag and Drop to rearrange."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Solo"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Mute"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Bypass"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Bus options"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "Duplicate"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Reset Volume"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Delete Effect"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Add Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Master bus can't be deleted!"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Delete Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Duplicate Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Reset Bus Volume"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Move Audio Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Save Audio Bus Layout As.."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Location for New Layout.."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Open Audio Bus Layout"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "There is no 'res://default_bus_layout.tres' file."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Invalid file, not an audio bus layout."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Add Bus"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Create a new Bus Layout."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp editor/property_editor.cpp
+#: editor/script_create_dialog.cpp
+msgid "Load"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Load an existing Bus Layout."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Save As"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Save this Bus Layout to a file."
+msgstr ""
+
+#: editor/editor_audio_buses.cpp editor/import_dock.cpp
+msgid "Load Default"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
+msgid "Load the default Bus Layout."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Invalid name."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Valid characters:"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Invalid name. Must not collide with an existing engine class name."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Invalid name. Must not collide with an existing buit-in type name."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Invalid name. Must not collide with an existing global constant name."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Invalid Path."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "File does not exist."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Not in resource path."
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Add AutoLoad"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Autoload '%s' already exists!"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Rename Autoload"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Toggle AutoLoad Globals"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Move Autoload"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Remove Autoload"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Enable"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Rearrange Autoloads"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp
+#: scene/gui/file_dialog.cpp
+msgid "Path:"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Node Name:"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
+msgid "Name"
+msgstr ""
+
+#: editor/editor_autoload_settings.cpp
+msgid "Singleton"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "Updating Scene"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "Storing local changes.."
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "Updating scene.."
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp
+msgid "Please select a base directory first"
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp
+msgid "Choose a Directory"
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
+#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
+msgid "Create Folder"
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
+#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
+#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+#: scene/gui/file_dialog.cpp
+msgid "Name:"
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
+#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
+msgid "Could not create folder."
+msgstr ""
+
+#: editor/editor_dir_dialog.cpp
+msgid "Choose"
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid "Storing File:"
+msgstr ""
+
+#: editor/editor_export.cpp
+msgid "Packing"
+msgstr ""
+
+#: editor/editor_export.cpp platform/javascript/export/export.cpp
+msgid "Template file not found:\n"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "File Exists, Overwrite?"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Select Current Folder"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "All Recognized"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "All Files (*)"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Open a File"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Open File(s)"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Open a Directory"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Open a File or Directory"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/script_editor_plugin.cpp scene/gui/file_dialog.cpp
+msgid "Save"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Save a File"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Go Back"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Go Forward"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Go Up"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Toggle Hidden Files"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Toggle Favorite"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Toggle Mode"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Focus Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Move Favorite Up"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Move Favorite Down"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Go to parent folder"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Directories & Files:"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Preview:"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/script_editor_debugger.cpp
+#: scene/gui/file_dialog.cpp
+msgid "File:"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+msgid "Must use a valid extension."
+msgstr ""
+
+#: editor/editor_file_system.cpp
+msgid "ScanSources"
+msgstr ""
+
+#: editor/editor_file_system.cpp
+msgid "(Re)Importing Assets"
+msgstr ""
+
+#: editor/editor_help.cpp editor/editor_node.cpp
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Search Help"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Class List:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Search Classes"
+msgstr ""
+
+#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
+msgid "Top"
+msgstr ""
+
+#: editor/editor_help.cpp editor/property_editor.cpp
+msgid "Class:"
+msgstr ""
+
+#: editor/editor_help.cpp editor/scene_tree_editor.cpp
+msgid "Inherits:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Inherited by:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Brief Description:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Members"
+msgstr ""
+
+#: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp
+msgid "Members:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Public Methods"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Public Methods:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "GUI Theme Items"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "GUI Theme Items:"
+msgstr ""
+
+#: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp
+msgid "Signals:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Enumerations"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Enumerations:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "enum "
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Constants"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Constants:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Description"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Properties"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Property Description:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid ""
+"There is currently no description for this property. Please help us by "
+"[color=$color][url=$url]contributing one[/url][/color]!"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Methods"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Method Description:"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid ""
+"There is currently no description for this method. Please help us by [color="
+"$color][url=$url]contributing one[/url][/color]!"
+msgstr ""
+
+#: editor/editor_help.cpp
+msgid "Search Text"
+msgstr ""
+
+#: editor/editor_log.cpp
+msgid "Output:"
+msgstr ""
+
+#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
+#: editor/property_editor.cpp editor/script_editor_debugger.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
+msgid "Clear"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
+msgid "Error saving resource!"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
+msgid "Save Resource As.."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "I see.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't open file for writing:"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Requested file format unknown:"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error while saving."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't open '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error while parsing '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Unexpected end of file '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Missing '%s' or its dependencies."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error while loading '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Saving Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Analyzing"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Creating Thumbnail"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "This operation can't be done without a tree root."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Couldn't save scene. Likely dependencies (instances) couldn't be satisfied."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Failed to load resource."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't load MeshLibrary for merging!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error saving MeshLibrary!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't load TileSet for merging!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error saving TileSet!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Error trying to save layout!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Default editor layout overridden."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Layout name not found!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Restored default layout to base settings."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This resource belongs to a scene that was imported, so it's not editable.\n"
+"Please read the documentation relevant to importing scenes to better "
+"understand this workflow."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This resource belongs to a scene that was instanced or inherited.\n"
+"Changes to it will not be kept when saving the current scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This resource was imported, so it's not editable. Change its settings in the "
+"import panel and then re-import."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This scene was imported, so changes to it will not be kept.\n"
+"Instancing it or inheriting will allow making changes to it.\n"
+"Please read the documentation relevant to importing scenes to better "
+"understand this workflow."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This is a remote object so changes to it will not be kept.\n"
+"Please read the documentation relevant to debugging to better understand "
+"this workflow."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Expand all properties"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Collapse all properties"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Copy Params"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Paste Params"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Paste Resource"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Copy Resource"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Make Built-In"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Make Sub-Resources Unique"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open in Help"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "There is no defined scene to run."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"No main scene has ever been defined, select one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' does not exist, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Selected scene '%s' is not a scene file, select a valid one?\n"
+"You can change it later in \"Project Settings\" under the 'application' "
+"category."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Current scene was never saved, please save it prior to running."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Could not start subprocess!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Base Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quick Open Scene.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quick Open Script.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save & Close"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save changes to '%s' before closing?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save Scene As.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "No"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Yes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "This scene has never been saved. Save before running?"
+msgstr ""
+
+#: editor/editor_node.cpp editor/scene_tree_dock.cpp
+msgid "This operation can't be done without a scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Export Mesh Library"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "This operation can't be done without a root node."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Export Tile Set"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "This operation can't be done without a selected node."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Current scene not saved. Open anyway?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Can't reload a scene that was never saved."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Revert"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "This action cannot be undone. Revert anyway?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quick Run Scene.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quit"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Exit the editor?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Project Manager?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save & Quit"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save changes to the following scene(s) before quitting?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save changes the following scene(s) before opening Project Manager?"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"This option is deprecated. Situations where refresh must be forced are now "
+"considered a bug. Please report."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Pick a Main Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Unable to find script field for addon plugin at: 'res://addons/%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Unable to load addon script from path: '%s'."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Unable to load addon script from path: '%s' Base type is not EditorPlugin."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Scene '%s' was automatically imported, so it can't be modified.\n"
+"To make changes to it, a new inherited scene can be created."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "Ugh"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Error loading scene, it must be inside the project path. Use 'Import' to "
+"open the scene, then save it inside the project path."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Scene '%s' has broken dependencies:"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Clear Recent Scenes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save Layout"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Delete Layout"
+msgstr ""
+
+#: editor/editor_node.cpp editor/import_dock.cpp
+#: editor/script_create_dialog.cpp
+msgid "Default"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Switch Scene Tab"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "%d more files or folders"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "%d more folders"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "%d more files"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Dock Position"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Distraction Free Mode"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Toggle distraction-free mode."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Add a new scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Go to previously opened scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Next tab"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Previous tab"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Filter Files.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Operations with scene files."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "New Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "New Inherited Scene.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Scene.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save all Scenes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Close Scene"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Open Recent"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Convert To.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "MeshLibrary.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "TileSet.."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+msgid "Undo"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
+#: scene/gui/line_edit.cpp
+msgid "Redo"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Revert Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Miscellaneous project or scene-wide tools."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Project"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Project Settings"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Run Script"
+msgstr ""
+
+#: editor/editor_node.cpp editor/project_export.cpp
+msgid "Export"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Tools"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Quit to Project List"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Debug"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Deploy with Remote Debug"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When exporting or deploying, the resulting executable will attempt to "
+"connect to the IP of this computer in order to be debugged."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Small Deploy with Network FS"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is enabled, export or deploy will produce a minimal "
+"executable.\n"
+"The filesystem will be provided from the project by the editor over the "
+"network.\n"
+"On Android, deploy will use the USB cable for faster performance. This "
+"option speeds up testing for games with a large footprint."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Visible Collision Shapes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
+"running game if this option is turned on."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Visible Navigation"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"Navigation meshes and polygons will be visible on the running game if this "
+"option is turned on."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Sync Scene Changes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is turned on, any changes made to the scene in the editor "
+"will be replicated in the running game.\n"
+"When used remotely on a device, this is more efficient with network "
+"filesystem."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Sync Script Changes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid ""
+"When this option is turned on, any script that is saved will be reloaded on "
+"the running game.\n"
+"When used remotely on a device, this is more efficient with network "
+"filesystem."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Editor"
+msgstr ""
+
+#: editor/editor_node.cpp editor/settings_config_dialog.cpp
+msgid "Editor Settings"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Editor Layout"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Toggle Fullscreen"
+msgstr ""
+
+#: editor/editor_node.cpp editor/project_export.cpp
+msgid "Manage Export Templates"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Help"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Classes"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Online Docs"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Q&A"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Issue Tracker"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
+msgid "Community"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "About"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play the project."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Pause the scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Pause Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Stop the scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Stop"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play the edited scene."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play custom scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Play Custom Scene"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Spins when the editor window repaints!"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Update Always"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Update Changes"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Disable Update Spinner"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Inspector"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Create a new resource in memory and edit it."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Load an existing resource from disk and edit it."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Save the currently edited resource."
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
+msgid "Save As.."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Go to the previous edited object in history."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Go to the next edited object in history."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "History of recently edited objects."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Object properties."
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Changes may be lost!"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
+#: editor/project_manager.cpp
+msgid "Import"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Node"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "FileSystem"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Output"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Don't Save"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Import Templates From ZIP File"
+msgstr ""
+
+#: editor/editor_node.cpp editor/project_export.cpp
+msgid "Export Project"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Export Library"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Merge With Existing"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Password:"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open & Run a Script"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "New Inherited"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Load Errors"
+msgstr ""
+
+#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp
+msgid "Select"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open 2D Editor"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open 3D Editor"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open Script Editor"
+msgstr ""
+
+#: editor/editor_node.cpp editor/project_manager.cpp
+msgid "Open Asset Library"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open the next Editor"
+msgstr ""
+
+#: editor/editor_node.cpp
+msgid "Open the previous Editor"
+msgstr ""
+
+#: editor/editor_plugin.cpp
+msgid "Creating Mesh Previews"
+msgstr ""
+
+#: editor/editor_plugin.cpp
+msgid "Thumbnail.."
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+msgid "Installed Plugins:"
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+msgid "Update"
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Version:"
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+msgid "Author:"
+msgstr ""
+
+#: editor/editor_plugin_settings.cpp
+msgid "Status:"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Stop Profiling"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Start Profiling"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Measure:"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Frame Time (sec)"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Average Time (sec)"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Frame %"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Physics Frame %"
+msgstr ""
+
+#: editor/editor_profiler.cpp editor/script_editor_debugger.cpp
+msgid "Time:"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Inclusive"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Self"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Frame #:"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
+#: editor/editor_run_native.cpp
+msgid "Select device from the list"
+msgstr ""
+
+#: editor/editor_run_native.cpp
+msgid ""
+"No runnable export preset found for this platform.\n"
+"Please add a runnable preset in the export menu."
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "Write your logic in the _run() method."
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "There is an edited scene already."
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "Couldn't instance script:"
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "Did you forget the 'tool' keyword?"
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "Couldn't run script:"
+msgstr ""
+
+#: editor/editor_run_script.cpp
+msgid "Did you forget the '_run' method?"
+msgstr ""
+
+#: editor/editor_settings.cpp
+msgid "Default (Same as Editor)"
+msgstr ""
+
+#: editor/editor_sub_scene.cpp
+msgid "Select Node(s) to Import"
+msgstr ""
+
+#: editor/editor_sub_scene.cpp
+msgid "Scene Path:"
+msgstr ""
+
+#: editor/editor_sub_scene.cpp
+msgid "Import From Node:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Re-Download"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Uninstall"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "(Installed)"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Download"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "(Missing)"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "(Current)"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Retrieving mirrors, please wait.."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Remove template version '%s'?"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Can't open export templates zip."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Invalid version.txt format inside templates."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid ""
+"Invalid version.txt format inside templates. Revision is not a valid "
+"identifier."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "No version.txt found inside templates."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Error creating path for templates:\n"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Extracting Export Templates"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Importing:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid ""
+"No download links found for this version. Direct download is only available "
+"for official releases."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Can't resolve."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Can't connect."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "No response."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Request Failed."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Redirect Loop."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Failed:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Can't write file."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Download Complete."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Error requesting url: "
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Connecting to Mirror.."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Disconnected"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Resolving"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Can't Resolve"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Connecting.."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Can't Connect"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Connected"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Requesting.."
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Downloading"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Connection Error"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "SSL Handshake Error"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Current Version:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Installed Versions:"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Install From File"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Remove Template"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Select template file"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Export Template Manager"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Download Templates"
+msgstr ""
+
+#: editor/export_template_manager.cpp
+msgid "Select mirror from list: "
+msgstr ""
+
+#: editor/file_type_cache.cpp
+msgid "Can't open file_type_cache.cch for writing, not saving file type cache!"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Cannot navigate to '%s' as it has not been found in the file system!"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "View items as a grid of thumbnails"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "View items as a list"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid ""
+"\n"
+"Status: Import of file failed. Please fix file and reimport manually."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Cannot move/rename resources root."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Cannot move a folder into itself.\n"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Error moving:\n"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Error duplicating:\n"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Unable to update dependencies:\n"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "No name provided"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Provided name contains invalid characters"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "No name provided."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Name contains invalid characters."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "A file or folder with this name already exists."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Renaming file:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Renaming folder:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Duplicating file:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Duplicating folder:"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Expand all"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Collapse all"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Rename.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Move To.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Open Scene(s)"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Instance"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Edit Dependencies.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "View Owners.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "அசைவூடà¯à®Ÿà¯ போலிபசà¯à®šà®¾à®µà®¿à®•ளà¯"
+
+#: editor/filesystem_dock.cpp
+msgid "Previous Directory"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Next Directory"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Re-Scan Filesystem"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Toggle folder status as Favorite"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Instance the selected scene(s) as child of the selected node."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid ""
+"Scanning Files,\n"
+"Please Wait.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
+msgid "Move"
+msgstr ""
+
+#: editor/filesystem_dock.cpp editor/plugins/animation_tree_editor_plugin.cpp
+#: editor/project_manager.cpp
+msgid "Rename"
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Add to Group"
+msgstr ""
+
+#: editor/groups_editor.cpp
+msgid "Remove from Group"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import as Single Scene"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Animations"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Materials"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Objects"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Objects+Materials"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Objects+Animations"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Materials+Animations"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import with Separate Objects+Materials+Animations"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import as Multiple Scenes"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Import as Multiple Scenes+Materials"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+#: editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Import Scene"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Importing Scene.."
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Running Custom Script.."
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Couldn't load post-import script:"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Invalid/broken script for post-import (check console):"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Error running post-import script:"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Saving.."
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "Set as Default for '%s'"
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "Clear Default for '%s'"
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid " Files"
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "Import As:"
+msgstr ""
+
+#: editor/import_dock.cpp editor/property_editor.cpp
+msgid "Preset.."
+msgstr ""
+
+#: editor/import_dock.cpp
+msgid "Reimport"
+msgstr ""
+
+#: editor/multi_node_edit.cpp
+msgid "MultiNode Set"
+msgstr ""
+
+#: editor/node_dock.cpp
+msgid "Groups"
+msgstr ""
+
+#: editor/node_dock.cpp
+msgid "Select a Node to edit Signals and Groups."
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Create Poly"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+#: editor/plugins/collision_polygon_editor_plugin.cpp
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Edit Poly"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid "Insert Point"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+#: editor/plugins/collision_polygon_editor_plugin.cpp
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Edit Poly (Remove Point)"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid "Remove Poly And Point"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid "Create a new polygon from scratch"
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid ""
+"Edit existing polygon:\n"
+"LMB: Move Point.\n"
+"Ctrl+LMB: Split Segment.\n"
+"RMB: Erase Point."
+msgstr ""
+
+#: editor/plugins/abstract_polygon_2d_editor.cpp
+msgid "Delete points"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Toggle Autoplay"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "New Animation Name:"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "New Anim"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Change Animation Name:"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Delete Animation?"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Remove Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: Invalid animation name!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: Animation name already exists!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Rename Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Blend Next Changed"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Change Blend Time"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Load Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Duplicate Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: No animation to copy!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: No animation resource on clipboard!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Pasted Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Paste Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "ERROR: No animation to edit!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation backwards from current pos. (A)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation backwards from end. (Shift+A)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Stop animation playback. (S)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation from start. (Shift+D)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Play selected animation from current pos. (D)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation position (in seconds)."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Scale animation playback globally for the node."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Create new animation in player."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Load animation from disk."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Load an animation from disk."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Save the current animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Display list of animations in player."
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Autoplay on Load"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Edit Target Blend Times"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation Tools"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Copy Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Onion Skinning"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Enable Onion Skinning"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Directions"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Past"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Future"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Depth"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "1 step"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "2 steps"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "3 steps"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Differences Only"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Force White Modulate"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Include Gizmos (3D)"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Create New Animation"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Animation Name:"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
+#: editor/script_create_dialog.cpp
+msgid "Error!"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Blend Times:"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Next (Auto Queue):"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+msgid "Cross-Animation Blend Times"
+msgstr ""
+
+#: editor/plugins/animation_player_editor_plugin.cpp
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "New name:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Edit Filters"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Scale:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Fade In (s):"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Fade Out (s):"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Mix"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Auto Restart:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Restart (s):"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Random Restart (s):"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Start!"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Amount:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend 0:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend 1:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "X-Fade Time (s):"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Current:"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Add Input"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Clear Auto-Advance"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Set Auto-Advance"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Delete Input"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Animation tree is valid."
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Animation tree is invalid."
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Animation Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "OneShot Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Mix Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend2 Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend3 Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Blend4 Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "TimeScale Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "TimeSeek Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Transition Node"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Import Animations.."
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Edit Node Filters"
+msgstr ""
+
+#: editor/plugins/animation_tree_editor_plugin.cpp
+msgid "Filters.."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Free"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Contents:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "View Files"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Can't resolve hostname:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Connection error, please try again."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Can't connect to host:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "No response from host:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Request failed, return code:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Request failed, too many redirects"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Bad download hash, assuming file has been tampered with."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Expected:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Got:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Failed sha256 hash check"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Asset Download Error:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Fetching:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Resolving.."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Error making request"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Idle"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Retry"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Download Error"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Download for this asset is already in progress!"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "first"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "prev"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "next"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "last"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "All"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+#: editor/project_settings_editor.cpp
+msgid "Plugins"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Sort:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Reverse"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+#: editor/project_settings_editor.cpp
+msgid "Category:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Site:"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Support.."
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Official"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Testing"
+msgstr ""
+
+#: editor/plugins/asset_library_editor_plugin.cpp
+msgid "Assets ZIP File"
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
+#: editor/plugins/camera_editor_plugin.cpp
+msgid "Preview"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Configure Snap"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid Offset:"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid Step:"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotation Offset:"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotation Step:"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move Pivot"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move Action"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move vertical guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Create new vertical guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Remove vertical guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move horizontal guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Create new horizontal guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Remove horizontal guide"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Create new horizontal and vertical guides"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Edit IK Chain"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Edit CanvasItem"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Anchors only"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change Anchors and Margins"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change Anchors"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Paste Pose"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Select Mode"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Drag: Rotate"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+Drag: Move"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Alt+RMB: Depth list selection"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Move Mode"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Rotate Mode"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Show a list of all objects at the position clicked\n"
+"(same as Alt+RMB in select mode)."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Click to change object's rotation pivot."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Pan Mode"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Toggles snapping"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Use Snap"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snapping options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to grid"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Use Rotation Snap"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Configure Snap..."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap Relative"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Use Pixel Snap"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Smart snapping"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to parent"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to node anchor"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to node sides"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to other nodes"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Snap to guides"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Lock the selected object in place (can't be moved)."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Unlock the selected object (can be moved)."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Makes sure the object's children are not selectable."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Restores the object's children's ability to be selected."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Make Bones"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear Bones"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Show Bones"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Make IK Chain"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear IK Chain"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Show Grid"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Show helpers"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Show rulers"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Show guides"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Center Selection"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Frame Selection"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Layout"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Insert Keys"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Insert Key"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Insert Key (Existing Tracks)"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Copy Pose"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Clear Pose"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Drag pivot from mouse position"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Set pivot at mouse position"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Multiply grid step by 2"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Divide grid step by 2"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Add %s"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Adding %s..."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "Create Node"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "Error instancing scene from %s"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "This operation requires a single selected node."
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Change default type"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid ""
+"Drag & drop + Shift : Add node as sibling\n"
+"Drag & drop + Alt : Change node type"
+msgstr ""
+
+#: editor/plugins/collision_polygon_editor_plugin.cpp
+msgid "Create Poly3D"
+msgstr ""
+
+#: editor/plugins/collision_shape_2d_editor_plugin.cpp
+msgid "Set Handle"
+msgstr ""
+
+#: editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Remove item %d?"
+msgstr ""
+
+#: editor/plugins/cube_grid_theme_editor_plugin.cpp
+#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Add Item"
+msgstr ""
+
+#: editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Remove Selected Item"
+msgstr ""
+
+#: editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Import from Scene"
+msgstr ""
+
+#: editor/plugins/cube_grid_theme_editor_plugin.cpp
+msgid "Update from Scene"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Flat0"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Flat1"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Ease in"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Ease out"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Smoothstep"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Modify Curve Point"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Modify Curve Tangent"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Load Curve Preset"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Add point"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Remove point"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Left linear"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Right linear"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Load preset"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Remove Curve Point"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Toggle Curve Linear Tangent"
+msgstr ""
+
+#: editor/plugins/curve_editor_plugin.cpp
+msgid "Hold Shift to edit tangents individually"
+msgstr ""
+
+#: editor/plugins/gi_probe_editor_plugin.cpp
+msgid "Bake GI Probe"
+msgstr ""
+
+#: editor/plugins/gradient_editor_plugin.cpp
+msgid "Add/Remove Color Ramp Point"
+msgstr ""
+
+#: editor/plugins/gradient_editor_plugin.cpp
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Modify Color Ramp"
+msgstr ""
+
+#: editor/plugins/item_list_editor_plugin.cpp
+msgid "Item %d"
+msgstr ""
+
+#: editor/plugins/item_list_editor_plugin.cpp
+msgid "Items"
+msgstr ""
+
+#: editor/plugins/item_list_editor_plugin.cpp
+msgid "Item List Editor"
+msgstr ""
+
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid ""
+"No OccluderPolygon2D resource on this node.\n"
+"Create and assign one?"
+msgstr ""
+
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Create Occluder Polygon"
+msgstr ""
+
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Create a new polygon from scratch."
+msgstr ""
+
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Edit existing polygon:"
+msgstr ""
+
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "LMB: Move Point."
+msgstr ""
+
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "Ctrl+LMB: Split Segment."
+msgstr ""
+
+#: editor/plugins/light_occluder_2d_editor_plugin.cpp
+msgid "RMB: Erase Point."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh is empty!"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Static Trimesh Body"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Static Convex Body"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "This doesn't work on scene root!"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Trimesh Shape"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Convex Shape"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Navigation Mesh"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "MeshInstance lacks a Mesh!"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh has not surface to create outlines from!"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Could not create outline!"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Outline"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Mesh"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Trimesh Static Body"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Convex Static Body"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Trimesh Collision Sibling"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Convex Collision Sibling"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Outline Mesh.."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV1"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV2"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Create Outline Mesh"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Outline Size:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "No mesh source specified (and no MultiMesh set in node)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "No mesh source specified (and MultiMesh contains no Mesh)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh source is invalid (invalid path)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh source is invalid (not a MeshInstance)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh source is invalid (contains no Mesh resource)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "No surface source specified."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (invalid path)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (no geometry)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Surface source is invalid (no faces)."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Parent has no solid faces to populate."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Couldn't map area."
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Select a Source Mesh:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Select a Target Surface:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Populate Surface"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Populate MultiMesh"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Target Surface:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Source Mesh:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "X-Axis"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Y-Axis"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Z-Axis"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Mesh Up Axis:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Random Rotation:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Random Tilt:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Random Scale:"
+msgstr ""
+
+#: editor/plugins/multimesh_editor_plugin.cpp
+msgid "Populate"
+msgstr ""
+
+#: editor/plugins/navigation_mesh_editor_plugin.cpp
+msgid "Bake!"
+msgstr ""
+
+#: editor/plugins/navigation_mesh_editor_plugin.cpp
+msgid "Bake the navigation mesh.\n"
+msgstr ""
+
+#: editor/plugins/navigation_mesh_editor_plugin.cpp
+msgid "Clear the navigation mesh."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Setting up Configuration..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Calculating grid size..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Creating heightfield..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Marking walkable triangles..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Constructing compact heightfield..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Eroding walkable area..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Partitioning..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Creating contours..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Creating polymesh..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Converting to native navigation mesh..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Navigation Mesh Generator Setup:"
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Parsing Geometry..."
+msgstr ""
+
+#: editor/plugins/navigation_mesh_generator.cpp
+msgid "Done!"
+msgstr ""
+
+#: editor/plugins/navigation_polygon_editor_plugin.cpp
+msgid "Create Navigation Polygon"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Generating AABB"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Can only set point into a ParticlesMaterial process material"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Error loading image:"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "No pixels with transparency > 128 in image.."
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Generate Visibility Rect"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Load Emission Mask"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Particles"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Generated Point Count:"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Generation Time (sec):"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Emission Mask"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Capture from Pixel"
+msgstr ""
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Emission Colors"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Node does not contain geometry."
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Node does not contain geometry (faces)."
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "A processor material of type 'ParticlesMaterial' is required."
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Faces contain no area!"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "No faces!"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Generate AABB"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Create Emission Points From Mesh"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Create Emission Points From Node"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Create Emitter"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Emission Points:"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Surface Points"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Surface Points+Normal (Directed)"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Volume"
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Emission Source: "
+msgstr ""
+
+#: editor/plugins/particles_editor_plugin.cpp
+msgid "Generate Visibility AABB"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Remove Point from Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Remove Out-Control from Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Remove In-Control from Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Add Point to Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Move Point in Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Move In-Control in Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Move Out-Control in Curve"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Select Points"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Shift+Drag: Select Control Points"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Click: Add Point"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Right Click: Delete Point"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+msgid "Select Control Points (Shift+Drag)"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Add Point (in empty space)"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Split Segment (in curve)"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Delete Point"
+msgstr ""
+
+#: editor/plugins/path_2d_editor_plugin.cpp
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Close Curve"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Curve Point #"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve Point Position"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve In Position"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Set Curve Out Position"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Split Path"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Remove Path Point"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Remove Out-Control Point"
+msgstr ""
+
+#: editor/plugins/path_editor_plugin.cpp
+msgid "Remove In-Control Point"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Create UV Map"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Transform UV Map"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Polygon 2D UV Editor"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Move Point"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Ctrl: Rotate"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift: Move All"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Shift+Ctrl: Scale"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Move Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Rotate Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Scale Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/shader_editor_plugin.cpp editor/project_manager.cpp
+#: editor/project_settings_editor.cpp editor/property_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Edit"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Polygon->UV"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "UV->Polygon"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Clear UV"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Enable Snap"
+msgstr ""
+
+#: editor/plugins/polygon_2d_editor_plugin.cpp
+msgid "Grid"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "ERROR: Couldn't load resource!"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Add Resource"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Rename Resource"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Delete Resource"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+msgid "Resource clipboard is empty!"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Load Resource"
+msgstr ""
+
+#: editor/plugins/resource_preloader_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+msgid "Paste"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Clear Recent Files"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid ""
+"Close and save changes?\n"
+"\""
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error while saving theme"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error saving"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error importing theme"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Error importing"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Import Theme"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Save Theme As.."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid " Class Reference"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Sort"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Move Up"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Move Down"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Next script"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Previous script"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "File"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "New"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Save All"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Soft Reload Script"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Copy Script Path"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "History Prev"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "History Next"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Reload Theme"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Save Theme"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Save Theme As"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Close Docs"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Close All"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Close Other Tabs"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
+msgid "Run"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Toggle Scripts Panel"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+msgid "Find.."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+#: editor/plugins/script_text_editor.cpp
+msgid "Find Next"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
+msgid "Step Over"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
+msgid "Step Into"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
+msgid "Break"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp
+#: editor/script_editor_debugger.cpp
+msgid "Continue"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Keep Debugger Open"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Debug with external editor"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Open Godot online documentation"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Search the class hierarchy."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Search the reference documentation."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Go to previous edited document."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Go to next edited document."
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Discard"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Create Script"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid ""
+"The following files are newer on disk.\n"
+"What action should be taken?:"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Reload"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid "Resave"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp
+msgid "Debugger"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
+msgid ""
+"Built-in scripts can only be edited when the scene they belong to is loaded"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Only resources from filesystem can be dropped."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Pick Color"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Convert Case"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Uppercase"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Lowercase"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Capitalize"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
+msgid "Cut"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
+#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+msgid "Copy"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
+msgid "Select All"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Delete Line"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Indent Left"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Indent Right"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Toggle Comment"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Clone Down"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Fold/Unfold Line"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Fold All Lines"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Unfold All Lines"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Complete Symbol"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Trim Trailing Whitespace"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Convert Indent To Spaces"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Convert Indent To Tabs"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Auto Indent"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Toggle Breakpoint"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Remove All Breakpoints"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Goto Next Breakpoint"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Goto Previous Breakpoint"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Convert To Uppercase"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Convert To Lowercase"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Find Previous"
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Replace.."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Goto Function.."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Goto Line.."
+msgstr ""
+
+#: editor/plugins/script_text_editor.cpp
+msgid "Contextual Help"
+msgstr ""
+
+#: editor/plugins/shader_editor_plugin.cpp
+msgid "Shader"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Scalar Constant"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Constant"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change RGB Constant"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Scalar Operator"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Operator"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Scalar Operator"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change RGB Operator"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Toggle Rot Only"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Scalar Function"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Function"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Scalar Uniform"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Vec Uniform"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change RGB Uniform"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Default Value"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change XForm Uniform"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Texture Uniform"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Cubemap Uniform"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Comment"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Add/Remove to Color Ramp"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Add/Remove to Curve Map"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Modify Curve Map"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Change Input Name"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Connect Graph Nodes"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Disconnect Graph Nodes"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Remove Shader Graph Node"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Move Shader Graph Node"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Duplicate Graph Node(s)"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Delete Shader Graph Node(s)"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Error: Cyclic Connection Link"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Error: Missing Input Connections"
+msgstr ""
+
+#: editor/plugins/shader_graph_editor_plugin.cpp
+msgid "Add Shader Graph Node"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Orthogonal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Perspective"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Aborted."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "X-Axis Transform."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Y-Axis Transform."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Z-Axis Transform."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Plane Transform."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Scaling: "
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Translating: "
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotating %s degrees."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right View."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Keying is disabled (no key inserted)."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Animation Key Inserted."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Objects Drawn"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Material Changes"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Shader Changes"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Surface Changes"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Draw Calls"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Vertices"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "FPS"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Align with view"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Normal"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Wireframe"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Overdraw"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Display Unshaded"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Environment"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Gizmos"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Information"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View FPS"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Half Resolution"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Audio Listener"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Doppler Enable"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Left"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Right"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Forward"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Backwards"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Up"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Down"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Freelook Speed Modifier"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "preview"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "XForm Dialog"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Select Mode (Q)\n"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid ""
+"Drag: Rotate\n"
+"Alt+Drag: Move\n"
+"Alt+RMB: Depth list selection"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Move Mode (W)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate Mode (E)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Scale Mode (R)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Bottom View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Top View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rear View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Front View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Left View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Right View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Switch Perspective/Orthogonal view"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Insert Animation Key"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Focus Origin"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Focus Selection"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Align Selection With View"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Tool Select"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Tool Move"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Tool Rotate"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Tool Scale"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Toggle Freelook"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Configure Snap.."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Dialog.."
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "1 Viewport"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "2 Viewports"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "2 Viewports (Alt)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "3 Viewports"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "3 Viewports (Alt)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "4 Viewports"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Origin"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Grid"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Settings"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Settings"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Translate Snap:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate Snap (deg.):"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Scale Snap (%):"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Viewport Settings"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Perspective FOV (deg.):"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Z-Near:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "View Z-Far:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Change"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Translate:"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Rotate (deg.):"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Scale (ratio):"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Transform Type"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Pre"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Post"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "ERROR: Couldn't load frame resource!"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add Frame"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Resource clipboard is empty or not a texture!"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Paste Frame"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Add Empty"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation Loop"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Change Animation FPS"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "(empty)"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Animations"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Speed (FPS):"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Loop"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Animation Frames"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Insert Empty (Before)"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Insert Empty (After)"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Move (Before)"
+msgstr ""
+
+#: editor/plugins/sprite_frames_editor_plugin.cpp
+msgid "Move (After)"
+msgstr ""
+
+#: editor/plugins/style_box_editor_plugin.cpp
+msgid "StyleBox Preview:"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Set Region Rect"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Snap Mode:"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "<None>"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Pixel Snap"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Grid Snap"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Auto Slice"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Offset:"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Step:"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Separation:"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region"
+msgstr ""
+
+#: editor/plugins/texture_region_editor_plugin.cpp
+msgid "Texture Region Editor"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Can't save theme to file:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add All Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add All"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Remove Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Remove All Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Remove All"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Edit theme.."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Theme editing menu."
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Add Class Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Remove Class Items"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Create Empty Template"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Create Empty Editor Template"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Create From Current Editor Theme"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "CheckBox Radio1"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "CheckBox Radio2"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Check Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Checked Item"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Has"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Many"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
+msgid "Options"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Have,Many,Several,Options!"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Tab 1"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Tab 2"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Tab 3"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_editor.cpp editor/script_editor_debugger.cpp
+msgid "Type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Data Type:"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Icon"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Style"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Font"
+msgstr ""
+
+#: editor/plugins/theme_editor_plugin.cpp
+msgid "Color"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Erase Selection"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Paint TileMap"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Line Draw"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rectangle Paint"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Bucket Fill"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Erase TileMap"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Erase selection"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Find tile"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Transpose"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Mirror X"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Mirror Y"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Paint Tile"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Pick Tile"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate 0 degrees"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate 90 degrees"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate 180 degrees"
+msgstr ""
+
+#: editor/plugins/tile_map_editor_plugin.cpp
+msgid "Rotate 270 degrees"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Could not find tile:"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Item name or ID:"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create from scene?"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Merge from scene?"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Tile Set"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Create from Scene"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Merge from Scene"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp editor/script_editor_debugger.cpp
+msgid "Error"
+msgstr ""
+
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Runnable"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Delete patch '%s' from list?"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Delete preset '%s'?"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted: "
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Presets"
+msgstr ""
+
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+msgid "Add.."
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Resources"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export all resources in the project"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export selected scenes (and dependencies)"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export selected resources (and dependencies)"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export Mode:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Resources to export:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid ""
+"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid ""
+"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Patches"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Make Patch"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Features"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Custom (comma-separated):"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Feature List:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export PCK/Zip"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export templates for this platform are missing:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export templates for this platform are missing/corrupted:"
+msgstr ""
+
+#: editor/project_export.cpp
+msgid "Export With Debug"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "The path does not exist."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Please choose a 'project.godot' file."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Your project will be created in a non empty folder (you might want to create "
+"a new folder)."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Please choose a folder that does not contain a 'project.godot' file."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Imported Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "It would be a good idea to name your project."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Invalid project path (changed anything?)."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Couldn't get project.godot in project path."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Couldn't edit project.godot in project path."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Couldn't create project.godot in project path."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "The following files failed extraction from package:"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Rename Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Couldn't get project.godot in the project path."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "New Game Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Import Existing Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Create New Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Install Project:"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Project Name:"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Create folder"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Project Path:"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Browse"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "That's a BINGO!"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Unnamed Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Can't open project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Are you sure to open more than one project?"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Can't run project: no main scene defined.\n"
+"Please edit the project and set the main scene in \"Project Settings\" under "
+"the \"Application\" category."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Can't run project: Assets need to be imported.\n"
+"Please edit the project to trigger the initial import."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Are you sure to run more than one project?"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Remove project from the list? (Folder contents will not be modified)"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"Language changed.\n"
+"The UI will update next time the editor or project manager starts."
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"You are about the scan %s folders for existing Godot projects. Do you "
+"confirm?"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Project List"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Scan"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Select a Folder to Scan"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "New Project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Templates"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Exit"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Restart Now"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid "Can't run project"
+msgstr ""
+
+#: editor/project_manager.cpp
+msgid ""
+"You don't currently have any projects.\n"
+"Would you like to explore the official example projects in the Asset Library?"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Key "
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Joy Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Joy Axis"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Mouse Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Invalid action (anything goes but '/' or ':')."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Action '%s' already exists!"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Rename Input Action Event"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add Input Action Event"
+msgstr ""
+
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
+msgid "Shift+"
+msgstr ""
+
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
+msgid "Alt+"
+msgstr ""
+
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
+msgid "Control+"
+msgstr ""
+
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
+msgid "Press a Key.."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Mouse Button Index:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Left Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Right Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Middle Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Wheel Up Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Wheel Down Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Button 6"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Button 7"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Button 8"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Button 9"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Joypad Axis Index:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Axis"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Joypad Button Index:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Erase Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Erase Input Action Event"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add Event"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Device"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Button"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Left Button."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Right Button."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Middle Button."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Wheel Up."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Wheel Down."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add Global Property"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Select a setting item first!"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "No property '%s' exists."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Setting '%s' is internal, and it can't be deleted."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Delete Item"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Can't contain '/' or ':'"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Already existing"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Error saving settings."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Settings saved OK."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Override for Feature"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add Translation"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Remove Translation"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Add Remapped Path"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Resource Remap Add Remap"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Change Resource Remap Language"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Remove Resource Remap"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Remove Resource Remap Option"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Changed Locale Filter"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Changed Locale Filter Mode"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Project Settings (project.godot)"
+msgstr ""
+
+#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
+msgid "General"
+msgstr ""
+
+#: editor/project_settings_editor.cpp editor/property_editor.cpp
+msgid "Property:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Override For.."
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Input Map"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Action:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Device:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Index:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Localization"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Translations"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Translations:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Remaps"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Resources:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Remaps by Locale:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Locale"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Locales Filter"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Show all locales"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Show only selected locales"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Filter mode:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "Locales:"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
+msgid "AutoLoad"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Pick a Viewport"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Ease In"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Ease Out"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Zero"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Easing In-Out"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Easing Out-In"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "File.."
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Dir.."
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Assign"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Select Node"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "New Script"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Make Unique"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Show in File System"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Convert To %s"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Error loading file: Not a resource!"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Selected node is not a Viewport!"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Pick a Node"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Bit %d, val %d."
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "On"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
+#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
+msgid "Set"
+msgstr ""
+
+#: editor/property_editor.cpp
+msgid "Properties:"
+msgstr ""
+
+#: editor/property_selector.cpp
+msgid "Select Property"
+msgstr ""
+
+#: editor/property_selector.cpp
+msgid "Select Virtual Method"
+msgstr ""
+
+#: editor/property_selector.cpp
+msgid "Select Method"
+msgstr ""
+
+#: editor/pvrtc_compress.cpp
+msgid "Could not execute PVRTC tool:"
+msgstr ""
+
+#: editor/pvrtc_compress.cpp
+msgid "Can't load back converted image using PVRTC tool:"
+msgstr ""
+
+#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
+msgid "Reparent Node"
+msgstr ""
+
+#: editor/reparent_dialog.cpp
+msgid "Reparent Location (Select new Parent):"
+msgstr ""
+
+#: editor/reparent_dialog.cpp
+msgid "Keep Global Transform"
+msgstr ""
+
+#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
+msgid "Reparent"
+msgstr ""
+
+#: editor/run_settings_dialog.cpp
+msgid "Run Mode:"
+msgstr ""
+
+#: editor/run_settings_dialog.cpp
+msgid "Current Scene"
+msgstr ""
+
+#: editor/run_settings_dialog.cpp
+msgid "Main Scene"
+msgstr ""
+
+#: editor/run_settings_dialog.cpp
+msgid "Main Scene Arguments:"
+msgstr ""
+
+#: editor/run_settings_dialog.cpp
+msgid "Scene Run Settings"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp editor/script_create_dialog.cpp
+#: scene/gui/dialogs.cpp
+msgid "OK"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "No parent to instance the scenes at."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Error loading scene from %s"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Ok"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Cannot instance the scene '%s' because the current scene exists within one "
+"of its nodes."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Instance Scene(s)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "This operation can't be done on the tree root."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Move Node In Parent"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Move Nodes In Parent"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Duplicate Node(s)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Delete Node(s)?"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Can not perform with the root node."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "This operation can't be done on instanced scenes."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Save New Scene As.."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Editable Children"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Load As Placeholder"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Discard Instancing"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Makes Sense!"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Can't operate on nodes from a foreign scene!"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Can't operate on nodes the current scene inherits from!"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Remove Node(s)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Couldn't save new scene. Likely dependencies (instances) couldn't be "
+"satisfied."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Error saving scene."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Error duplicating scene to save it."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Sub-Resources:"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Clear Inheritance"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp
+msgid "Open in Editor"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Delete Node(s)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Add Child Node"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Instance Child Scene"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Change Type"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Attach Script"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Clear Script"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Merge From Scene"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Save Branch as Scene"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Copy Node Path"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Delete (No Confirm)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Add/Create a New Node"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid ""
+"Instance a scene file as a Node. Creates an inherited scene if no root node "
+"exists."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Filter nodes"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Attach a new or existing script for the selected node."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Clear a script for the selected node."
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Remote"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Local"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Clear Inheritance? (No Undo!)"
+msgstr ""
+
+#: editor/scene_tree_dock.cpp
+msgid "Clear!"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Toggle Spatial Visible"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Toggle CanvasItem Visible"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Node configuration warning:"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid ""
+"Node has connection(s) and group(s)\n"
+"Click to show signals dock."
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid ""
+"Node has connections.\n"
+"Click to show signals dock."
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid ""
+"Node is in group(s).\n"
+"Click to show groups dock."
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Instance:"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Open script"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid ""
+"Node is locked.\n"
+"Click to unlock"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid ""
+"Children are not selectable.\n"
+"Click to make selectable"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Toggle Visibility"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Invalid node name, the following characters are not allowed:"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Rename Node"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Scene Tree (Nodes):"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Node Configuration Warning!"
+msgstr ""
+
+#: editor/scene_tree_editor.cpp
+msgid "Select a Node"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Error loading template '%s'"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Error - Could not create script in filesystem."
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Error loading script from %s"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "N/A"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Path is empty"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Path is not local"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid base path"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Directory of the same name exists"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "File exists, will be reused"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid extension"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Wrong extension chosen"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid Path"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid class name"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Invalid inherited parent name or path"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Script valid"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Allowed: a-z, A-Z, 0-9 and _"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Built-in script (into scene file)"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Create new script file"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Load existing script file"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Language"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Inherits"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Class Name"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Template"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Built-in Script"
+msgstr ""
+
+#: editor/script_create_dialog.cpp
+msgid "Attach Node Script"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Remote "
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Bytes:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Warning"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Error:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Source:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Function:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Pick one or more items from the list to display the graph."
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Errors"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Child Process Connected"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Inspect Previous Instance"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Inspect Next Instance"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Stack Frames"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Variable"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Errors:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Stack Trace (if applicable):"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Profiler"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Monitor"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Value"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Monitors"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "List of Video Memory Usage by Resource:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Total:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Video Mem"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Resource Path"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Type"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Format"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Usage"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Misc"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Clicked Control:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Clicked Control Type:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Live Edit Root:"
+msgstr ""
+
+#: editor/script_editor_debugger.cpp
+msgid "Set From Tree"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+msgid "Shortcuts"
+msgstr ""
+
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Light Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change AudioStreamPlayer3D Emission Angle"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Camera FOV"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Camera Size"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Sphere Shape Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Box Shape Extents"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Capsule Shape Radius"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Capsule Shape Height"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Ray Shape Length"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Notifier Extents"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Particles AABB"
+msgstr ""
+
+#: editor/spatial_editor_gizmos.cpp
+msgid "Change Probe Extents"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Remove current entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Status"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Libraries: "
+msgstr ""
+
+#: modules/gdnative/register_types.cpp
+msgid "GDNative"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+#: modules/visual_script/visual_script_builtin_funcs.cpp
+msgid "Invalid type argument to convert(), use TYPE_* constants."
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp modules/mono/glue/glue_header.h
+#: modules/visual_script/visual_script_builtin_funcs.cpp
+msgid "Not enough bytes for decoding bytes, or invalid format."
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "step argument is zero!"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Not a script with an instance"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Not based on a script"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Not based on a resource file"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Invalid instance dictionary format (missing @path)"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Invalid instance dictionary format (can't load script at @path)"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Invalid instance dictionary format (invalid script at @path)"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Invalid instance dictionary (invalid subclasses)"
+msgstr ""
+
+#: modules/gdscript/gdscript_functions.cpp
+msgid "Object can't provide a length."
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Delete Selection"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Duplicate Selection"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Floor:"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Grid Map"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Snap View"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Previous Floor"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Next Floor"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Clip Disabled"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Clip Above"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Clip Below"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Edit X Axis"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Edit Y Axis"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Edit Z Axis"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Rotate X"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Rotate Y"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Rotate Z"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Back Rotate X"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Back Rotate Y"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Back Rotate Z"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Cursor Clear Rotation"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Create Area"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Create Exterior Connector"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Erase Area"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Clear Selection"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "GridMap Settings"
+msgstr ""
+
+#: modules/gridmap/grid_map_editor_plugin.cpp
+msgid "Pick Distance:"
+msgstr ""
+
+#: modules/mono/editor/mono_bottom_panel.cpp
+msgid "Builds"
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid ""
+"A node yielded without working memory, please read the docs on how to yield "
+"properly!"
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid ""
+"Node yielded, but did not return a function state in the first working "
+"memory."
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid ""
+"Return value must be assigned to first element of node working memory! Fix "
+"your node please."
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid "Node returned an invalid sequence output: "
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid "Found sequence bit but not the node in the stack, report bug!"
+msgstr ""
+
+#: modules/visual_script/visual_script.cpp
+msgid "Stack overflow with stack depth: "
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Signal Arguments"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Argument Type"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Argument name"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Set Variable Default Value"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Set Variable Type"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Functions:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Variables:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Name is not a valid identifier:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Name already in use by another func/var/signal:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Rename Function"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Rename Variable"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Rename Signal"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Function"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Variable"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Signal"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Expression"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove VisualScript Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Duplicate VisualScript Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold %s to drop a simple reference to the node."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold Ctrl to drop a simple reference to the node."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold %s to drop a Variable Setter."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Hold Ctrl to drop a Variable Setter."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Preload Node"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Node(s) From Tree"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Getter Property"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Add Setter Property"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Base Type"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Move Node(s)"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove VisualScript Node"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Connect Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Condition"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Sequence"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Switch"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Iterator"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "While"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Return"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Call"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Get"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Script already has function '%s'"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Change Input Value"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Can't copy the function node."
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Clipboard is empty!"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Paste VisualScript Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove Function"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Edit Variable"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove Variable"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Edit Signal"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Remove Signal"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Editing Variable:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Editing Signal:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Base Type:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Available Nodes:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Select or create a function to edit graph"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Edit Signal Arguments:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Edit Variable:"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Delete Selected"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Find Node Type"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Copy Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Cut Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_editor.cpp
+msgid "Paste Nodes"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "Input type not iterable: "
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "Iterator became invalid"
+msgstr ""
+
+#: modules/visual_script/visual_script_flow_control.cpp
+msgid "Iterator became invalid: "
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Invalid index property name."
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Base object is not a Node!"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Path does not lead Node!"
+msgstr ""
+
+#: modules/visual_script/visual_script_func_nodes.cpp
+msgid "Invalid index property name '%s' in node %s."
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid ": Invalid argument of type: "
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid ": Invalid arguments: "
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "VariableGet not found in script: "
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "VariableSet not found in script: "
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid "Custom node has no _step() method, can't process graph."
+msgstr ""
+
+#: modules/visual_script/visual_script_nodes.cpp
+msgid ""
+"Invalid return value from _step(), must be integer (seq out), or string "
+"(error)."
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Run in Browser"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Run exported HTML in the system's default browser."
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Could not write file:\n"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Could not open template for export:\n"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Invalid export template:\n"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Could not read custom HTML shell:\n"
+msgstr ""
+
+#: platform/javascript/export/export.cpp
+msgid "Could not read boot splash image file:\n"
+msgstr ""
+
+#: scene/2d/animated_sprite.cpp
+msgid ""
+"A SpriteFrames resource must be created or set in the 'Frames' property in "
+"order for AnimatedSprite to display frames."
+msgstr ""
+
+#: scene/2d/canvas_modulate.cpp
+msgid ""
+"Only one visible CanvasModulate is allowed per scene (or set of instanced "
+"scenes). The first created one will work, while the rest will be ignored."
+msgstr ""
+
+#: scene/2d/collision_polygon_2d.cpp
+msgid ""
+"CollisionPolygon2D only serves to provide a collision shape to a "
+"CollisionObject2D derived node. Please only use it as a child of Area2D, "
+"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
+msgstr ""
+
+#: scene/2d/collision_polygon_2d.cpp
+msgid "An empty CollisionPolygon2D has no effect on collision."
+msgstr ""
+
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"CollisionShape2D only serves to provide a collision shape to a "
+"CollisionObject2D derived node. Please only use it as a child of Area2D, "
+"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."
+msgstr ""
+
+#: scene/2d/collision_shape_2d.cpp
+msgid ""
+"A shape must be provided for CollisionShape2D to function. Please create a "
+"shape resource for it!"
+msgstr ""
+
+#: scene/2d/light_2d.cpp
+msgid ""
+"A texture with the shape of the light must be supplied to the 'texture' "
+"property."
+msgstr ""
+
+#: scene/2d/light_occluder_2d.cpp
+msgid ""
+"An occluder polygon must be set (or drawn) for this occluder to take effect."
+msgstr ""
+
+#: scene/2d/light_occluder_2d.cpp
+msgid "The occluder polygon for this occluder is empty. Please draw a polygon!"
+msgstr ""
+
+#: scene/2d/navigation_polygon.cpp
+msgid ""
+"A NavigationPolygon resource must be set or created for this node to work. "
+"Please set a property or draw a polygon."
+msgstr ""
+
+#: scene/2d/navigation_polygon.cpp
+msgid ""
+"NavigationPolygonInstance must be a child or grandchild to a Navigation2D "
+"node. It only provides navigation data."
+msgstr ""
+
+#: scene/2d/parallax_layer.cpp
+msgid ""
+"ParallaxLayer node only works when set as child of a ParallaxBackground node."
+msgstr ""
+
+#: scene/2d/particles_2d.cpp scene/3d/particles.cpp
+msgid ""
+"A material to process the particles is not assigned, so no behavior is "
+"imprinted."
+msgstr ""
+
+#: scene/2d/path_2d.cpp
+msgid "PathFollow2D only works when set as a child of a Path2D node."
+msgstr ""
+
+#: scene/2d/physics_body_2d.cpp
+msgid ""
+"Size changes to RigidBody2D (in character or rigid modes) will be overriden "
+"by the physics engine when running.\n"
+"Change the size in children collision shapes instead."
+msgstr ""
+
+#: scene/2d/remote_transform_2d.cpp
+msgid "Path property must point to a valid Node2D node to work."
+msgstr ""
+
+#: scene/2d/visibility_notifier_2d.cpp
+msgid ""
+"VisibilityEnable2D works best when used with the edited scene root directly "
+"as parent."
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid "ARVRCamera must have an ARVROrigin node as its parent"
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid "ARVRController must have an ARVROrigin node as its parent"
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid ""
+"The controller id must not be 0 or this controller will not be bound to an "
+"actual controller"
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid "ARVRAnchor must have an ARVROrigin node as its parent"
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid ""
+"The anchor id must not be 0 or this anchor will not be bound to an actual "
+"anchor"
+msgstr ""
+
+#: scene/3d/arvr_nodes.cpp
+msgid "ARVROrigin requires an ARVRCamera child node"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
+#: scene/3d/collision_polygon.cpp
+msgid ""
+"CollisionPolygon only serves to provide a collision shape to a "
+"CollisionObject derived node. Please only use it as a child of Area, "
+"StaticBody, RigidBody, KinematicBody, etc. to give them a shape."
+msgstr ""
+
+#: scene/3d/collision_polygon.cpp
+msgid "An empty CollisionPolygon has no effect on collision."
+msgstr ""
+
+#: scene/3d/collision_shape.cpp
+msgid ""
+"CollisionShape only serves to provide a collision shape to a CollisionObject "
+"derived node. Please only use it as a child of Area, StaticBody, RigidBody, "
+"KinematicBody, etc. to give them a shape."
+msgstr ""
+
+#: scene/3d/collision_shape.cpp
+msgid ""
+"A shape must be provided for CollisionShape to function. Please create a "
+"shape resource for it!"
+msgstr ""
+
+#: scene/3d/gi_probe.cpp
+msgid "Plotting Meshes"
+msgstr ""
+
+#: scene/3d/navigation_mesh.cpp
+msgid "A NavigationMesh resource must be set or created for this node to work."
+msgstr ""
+
+#: scene/3d/navigation_mesh.cpp
+msgid ""
+"NavigationMeshInstance must be a child or grandchild to a Navigation node. "
+"It only provides navigation data."
+msgstr ""
+
+#: scene/3d/particles.cpp
+msgid ""
+"Nothing is visible because meshes have not been assigned to draw passes."
+msgstr ""
+
+#: scene/3d/physics_body.cpp
+msgid ""
+"Size changes to RigidBody (in character or rigid modes) will be overriden by "
+"the physics engine when running.\n"
+"Change the size in children collision shapes instead."
+msgstr ""
+
+#: scene/3d/remote_transform.cpp
+msgid "Path property must point to a valid Spatial node to work."
+msgstr ""
+
+#: scene/3d/scenario_fx.cpp
+msgid ""
+"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)."
+msgstr ""
+
+#: scene/3d/sprite_3d.cpp
+msgid ""
+"A SpriteFrames resource must be created or set in the 'Frames' property in "
+"order for AnimatedSprite3D to display frames."
+msgstr ""
+
+#: scene/3d/vehicle_body.cpp
+msgid ""
+"VehicleWheel serves to provide a wheel system to a VehicleBody. Please use "
+"it as a child of a VehicleBody."
+msgstr ""
+
+#: scene/gui/color_picker.cpp
+msgid "Raw Mode"
+msgstr ""
+
+#: scene/gui/color_picker.cpp
+msgid "Add current color as a preset"
+msgstr ""
+
+#: scene/gui/dialogs.cpp
+msgid "Alert!"
+msgstr ""
+
+#: scene/gui/dialogs.cpp
+msgid "Please Confirm..."
+msgstr ""
+
+#: scene/gui/file_dialog.cpp
+msgid "Select this Folder"
+msgstr ""
+
+#: scene/gui/popup.cpp
+msgid ""
+"Popups will hide by default unless you call popup() or any of the popup*() "
+"functions. Making them visible for editing is fine though, but they will "
+"hide upon running."
+msgstr ""
+
+#: scene/gui/scroll_container.cpp
+msgid ""
+"ScrollContainer is intended to work with a single child control.\n"
+"Use a container as child (VBox,HBox,etc), or a Control and set the custom "
+"minimum size manually."
+msgstr ""
+
+#: scene/gui/tree.cpp
+msgid "(Other)"
+msgstr ""
+
+#: scene/main/scene_tree.cpp
+msgid ""
+"Default Environment as specified in Project Setings (Rendering -> Viewport -"
+"> Default Environment) could not be loaded."
+msgstr ""
+
+#: scene/main/viewport.cpp
+msgid ""
+"This viewport is not set as render target. If you intend for it to display "
+"its contents directly to the screen, make it a child of a Control so it can "
+"obtain a size. Otherwise, make it a RenderTarget and assign its internal "
+"texture to some node for display."
+msgstr ""
+
+#: scene/resources/dynamic_font.cpp
+msgid "Error initializing FreeType."
+msgstr ""
+
+#: scene/resources/dynamic_font.cpp
+msgid "Unknown font format."
+msgstr ""
+
+#: scene/resources/dynamic_font.cpp
+msgid "Error loading font."
+msgstr ""
+
+#: scene/resources/dynamic_font.cpp
+msgid "Invalid font size."
+msgstr ""
+
+#~ msgid "Move Add Key"
+#~ msgstr "சேர௠மà¯à®•à¯à®•ியபà¯à®ªà¯à®³à¯à®³à®¿à®¯à¯ˆ நகரà¯à®¤à¯à®¤à¯"
diff --git a/editor/translations/th.po b/editor/translations/th.po
index 3fdfb40961..ccce3e16f9 100644
--- a/editor/translations/th.po
+++ b/editor/translations/th.po
@@ -9,7 +9,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-28 13:50+0000\n"
+"PO-Revision-Date: 2017-12-03 07:50+0000\n"
"Last-Translator: Kaveeta Vivatchai <katviv@protonmail.com>\n"
"Language-Team: Thai <https://hosted.weblate.org/projects/godot-engine/godot/"
"th/>\n"
@@ -28,8 +28,9 @@ msgid "All Selection"
msgstr "เลือà¸à¸—ั้งหมด"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "เลื่อนหรือเพิ่มคีย์à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "à¹à¸à¹‰à¹„ขค่าà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -40,7 +41,8 @@ msgid "Anim Change Transform"
msgstr "เคลื่อนย้ายà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "à¹à¸à¹‰à¹„ขค่าà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
#: editor/animation_editor.cpp
@@ -532,8 +534,9 @@ msgid "Connecting Signal:"
msgstr "เชื่อมโยงสัà¸à¸à¸²à¸“:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "สร้างà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚ยง"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "เชื่อม '%s' à¸à¸±à¸š '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -549,7 +552,8 @@ msgid "Signals"
msgstr "สัà¸à¸à¸²à¸“"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "สร้างใหม่"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -564,7 +568,7 @@ msgstr "ล่าสุด:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "ค้นหา:"
@@ -605,6 +609,7 @@ msgstr ""
"à¸à¸²à¸£à¹à¸à¹‰à¹„ขจะไม่ส่งผลจนà¸à¸§à¹ˆà¸²à¸ˆà¸°à¹‚หลดใหม่"
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "à¸à¸²à¸£à¸­à¹‰à¸²à¸‡à¸­à¸´à¸‡"
@@ -707,9 +712,10 @@ msgid "Delete selected files?"
msgstr "ลบไฟล์ที่เลือ�"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "ลบ"
@@ -844,13 +850,18 @@ msgstr "ลำโพง"
#: editor/editor_audio_buses.cpp
msgid "Add Effect"
-msgstr "เพิ่มเอฟเฟà¸à¸•์"
+msgstr "เอฟเฟà¸à¸•์"
#: editor/editor_audio_buses.cpp
msgid "Rename Audio Bus"
msgstr "เปลี่ยนชื่อ Audio Bus"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "สลับ Solo ของ Audio Bus"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "สลับ Solo ของ Audio Bus"
@@ -880,7 +891,7 @@ msgstr "ลบเอฟเฟà¸à¸•์เสียง"
#: editor/editor_audio_buses.cpp
msgid "Audio Bus, Drag and Drop to rearrange."
-msgstr "Audio Bus, ลาà¸à¹à¸¥à¸°à¸§à¸²à¸‡à¹€à¸žà¸·à¹ˆà¸­à¸¢à¹‰à¸²à¸¢à¸•ำà¹à¸«à¸™à¹ˆà¸‡"
+msgstr "Audio Bus ลาà¸à¹à¸¥à¸°à¸§à¸²à¸‡à¹€à¸žà¸·à¹ˆà¸­à¸¢à¹‰à¸²à¸¢à¸•ำà¹à¸«à¸™à¹ˆà¸‡"
#: editor/editor_audio_buses.cpp
msgid "Solo"
@@ -898,8 +909,8 @@ msgstr "ข้าม"
msgid "Bus options"
msgstr "ตัวเลือภBus"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "ทำซ้ำ"
@@ -912,6 +923,10 @@ msgid "Delete Effect"
msgstr "ลบเอฟเฟà¸à¸•์"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "เพิ่ม Audio Bus"
@@ -953,7 +968,7 @@ msgstr "ไม่พบไฟล์ 'res://default_bus_layout.tres'"
#: editor/editor_audio_buses.cpp
msgid "Invalid file, not an audio bus layout."
-msgstr "ไฟล์ไม่ถูà¸à¸•้อง, ไม่ใช่เลย์เอาต์ของ Audio Bus"
+msgstr "ไฟล์ไม่ถูà¸à¸•้อง ไม่ใช่เลย์เอาต์ของ Audio Bus"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
@@ -1062,7 +1077,8 @@ msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡:"
msgid "Node Name:"
msgstr "ชื่อโหนด:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "ชื่อ"
@@ -1070,10 +1086,6 @@ msgstr "ชื่อ"
msgid "Singleton"
msgstr "ซิงเà¸à¸´à¸¥à¸•ัน"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "รายชื่อ:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "อัพเดทฉาà¸"
@@ -1086,6 +1098,15 @@ msgstr "เà¸à¹‡à¸šà¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸ à¸²à¸¢à¹ƒà¸™.."
msgid "Updating scene.."
msgstr "อัพเดทฉาà¸.."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(ว่างเปล่า)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "à¸à¸£à¸¸à¸“าเลือà¸à¹‚ฟลเดอร์เริ่มต้นà¸à¹ˆà¸­à¸™"
@@ -1132,9 +1153,24 @@ msgid "File Exists, Overwrite?"
msgstr "มีไฟล์นี้อยู่à¹à¸¥à¹‰à¸§ จะเขียนทับหรือไม่?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "สร้างโฟลเดอร์"
+msgstr "เลือà¸à¹‚ฟลเดอร์ปัจจุบัน"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "คัดลอà¸à¸•ำà¹à¸«à¸™à¹ˆà¸‡"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "à¹à¸ªà¸”งในตัวจัดà¸à¸²à¸£à¹„ฟล์"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "สร้างโฟลเดอร์.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "รีเฟรช"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1183,10 +1219,6 @@ msgid "Go Up"
msgstr "ขึ้นบน"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "รีเฟรช"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "เปิด/ปิดไฟล์ที่ซ่อน"
@@ -1362,7 +1394,8 @@ msgstr "ข้อความ:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "ลบ"
@@ -1512,14 +1545,12 @@ msgstr ""
"อ่านรายละเอียดเพิ่มเติมได้จาà¸à¸„ู่มือในส่วนของà¸à¸²à¸£à¹à¸à¹‰à¹„ขจุดบà¸à¸žà¸£à¹ˆà¸­à¸‡"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand all properties"
-msgstr "ขยายโฟลเดอร์"
+msgstr "ขยายคุณสมบัติทั้งหมด"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Collapse all properties"
-msgstr "ยุบโฟลเดอร์"
+msgstr "ยุบคุณสมบัติทั้งหมด"
#: editor/editor_node.cpp
msgid "Copy Params"
@@ -2281,6 +2312,16 @@ msgstr "ตัวเอง"
msgid "Frame #:"
msgstr "เฟรมที่:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "เวลา:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "เรียà¸"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "เลือà¸à¸­à¸¸à¸›à¸à¸£à¸“์จาà¸à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­"
@@ -2418,7 +2459,8 @@ msgstr "ไม่มีà¸à¸²à¸£à¸•อบà¸à¸¥à¸±à¸š"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "ร้องขอผิดพลาด"
#: editor/export_template_manager.cpp
@@ -2465,7 +2507,8 @@ msgid "Connecting.."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่อ.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "เชื่อมต่อไม่ได้"
#: editor/export_template_manager.cpp
@@ -2558,6 +2601,11 @@ msgid "Error moving:\n"
msgstr "ผิดพลาดขณะย้าย:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "ผิดพลาดขณะโหลด:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "ไม่สามารถอัพเดทà¸à¸²à¸£à¸­à¹‰à¸²à¸‡à¸­à¸´à¸‡:\n"
@@ -2590,6 +2638,16 @@ msgid "Renaming folder:"
msgstr "เปลี่ยนชื่อโฟลเดอร์:"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "ทำซ้ำ"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "เปลี่ยนชื่อโฟลเดอร์:"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "ขยายโฟลเดอร์"
@@ -2598,10 +2656,6 @@ msgid "Collapse all"
msgstr "ยุบโฟลเดอร์"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "คัดลอà¸à¸•ำà¹à¸«à¸™à¹ˆà¸‡"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "เปลี่ยนชื่อ.."
@@ -2610,12 +2664,9 @@ msgid "Move To.."
msgstr "ย้ายไป.."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "สร้างโฟลเดอร์.."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "à¹à¸ªà¸”งในตัวจัดà¸à¸²à¸£à¹„ฟล์"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "เปิดไฟล์ฉาà¸"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2630,6 +2681,11 @@ msgid "View Owners.."
msgstr "ดูเจ้าของ.."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "ทำซ้ำ"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "โฟลเดอร์à¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²"
@@ -2724,6 +2780,16 @@ msgid "Importing Scene.."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¸™à¸³à¹€à¸‚้าฉาà¸.."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "ส่งผ่านไปยัง Lightmaps:"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "สร้างเส้นà¸à¸£à¸­à¸š"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "à¸à¸³à¸¥à¸±à¸‡à¸£à¸±à¸™à¸ªà¸„ริปต์.."
@@ -2969,54 +3035,51 @@ msgstr "คัดลอà¸à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "ภาพเงาà¸à¸²à¸£à¹€à¸„ลื่อนไหว"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "เปิดภาพเงาà¸à¸²à¸£à¹€à¸„ลื่อนไหว"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "หัวข้อ:"
+msgstr "ทิศทาง"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Past"
-msgstr "วาง"
+msgstr "อดีต"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Future"
-msgstr "ฟีเจอร์"
+msgstr "อนาคต"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "ความลึà¸"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 ระดับ"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 ระดับ"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 ระดับ"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "เฉพาะที่à¹à¸•à¸à¸•่าง"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
-msgstr ""
+msgstr "บังคับระดับสีขาว"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "รวมสัà¸à¸¥à¸±à¸à¸©à¸“์ (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -3293,6 +3356,7 @@ msgid "last"
msgstr "ท้ายสุด"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "ทั้งหมด"
@@ -3334,6 +3398,28 @@ msgstr "ทดสอบ"
msgid "Assets ZIP File"
msgstr "ไฟล์ ZIP"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "ส่งผ่านไปยัง Lightmaps:"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "ตัวอย่าง"
@@ -3470,7 +3556,6 @@ msgid "Toggles snapping"
msgstr "เปิด/ปิด à¸à¸²à¸£à¸ˆà¸³à¸à¸±à¸”"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "จำà¸à¸±à¸”à¸à¸²à¸£à¹€à¸„ลื่อนย้าย"
@@ -3650,16 +3735,6 @@ msgstr "ผิดพลาดขณะอินสà¹à¸•นซ์ฉาà¸à¸ˆà¸²
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "ตà¸à¸¥à¸‡ :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "ไม่พบโหนดà¹à¸¡à¹ˆà¸—ี่จะรับอินสà¹à¸•นซ์โหนดลูà¸"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr "ต้องเลือà¸à¹€à¸žà¸µà¸¢à¸‡à¹‚หนดเดียว"
@@ -3855,6 +3930,22 @@ msgid "Create Navigation Mesh"
msgstr "สร้าง Mesh นำทาง"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr "MeshInstance ไม่มี Mesh!"
@@ -3895,6 +3986,20 @@ msgid "Create Outline Mesh.."
msgstr "สร้างเส้นขอบ Mesh.."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "มุมมอง"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "มุมมอง"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr "สร้างเส้นขอบ Mesh"
@@ -4071,10 +4176,6 @@ msgid "Create Navigation Polygon"
msgstr "สร้างรูปทรงนำทาง"
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr "ลบ Mask à¸à¸²à¸£à¸›à¸¥à¹ˆà¸­à¸¢"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr "สร้างเส้นà¸à¸£à¸­à¸š"
@@ -4092,10 +4193,6 @@ msgid "No pixels with transparency > 128 in image.."
msgstr "รูปไม่มีพิà¸à¹€à¸‹à¸¥à¹ƒà¸”ที่ความโปร่งà¹à¸ªà¸‡ > 128 .."
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "à¸à¸³à¸«à¸™à¸” Mask à¸à¸²à¸£à¸›à¸°à¸—ุ"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
msgstr "สร้างà¸à¸£à¸­à¸šà¸à¸²à¸£à¸¡à¸­à¸‡à¹€à¸«à¹‡à¸™"
@@ -4104,6 +4201,10 @@ msgid "Load Emission Mask"
msgstr "โหลด Mask à¸à¸²à¸£à¸›à¸°à¸—ุ"
#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "ลบ Mask à¸à¸²à¸£à¸›à¸¥à¹ˆà¸­à¸¢"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
msgstr "อนุภาค"
@@ -4162,10 +4263,6 @@ msgid "Create Emission Points From Node"
msgstr "สร้างจุดปะทุจาà¸à¹‚หนด"
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "ลบตัวปะทุ"
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr "สร้างตัวปะทุ"
@@ -4450,11 +4547,13 @@ msgstr "เรียง"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "ย้ายขึ้น"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "ย้ายลง"
@@ -4470,7 +4569,7 @@ msgstr "สคริปต์à¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²"
msgid "File"
msgstr "ไฟล์"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "ไฟล์ใหม่"
@@ -4483,6 +4582,11 @@ msgid "Soft Reload Script"
msgstr "โหลดสคริปต์ใหม่"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "คัดลอà¸à¸•ำà¹à¸«à¸™à¹ˆà¸‡"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr "ประวัติà¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²"
@@ -4671,11 +4775,8 @@ msgid "Clone Down"
msgstr "คัดลอà¸à¸šà¸£à¸£à¸—ัดลงมา"
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr "ซ่อน"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+#, fuzzy
+msgid "Fold/Unfold Line"
msgstr "à¹à¸ªà¸”ง"
#: editor/plugins/script_text_editor.cpp
@@ -5003,6 +5104,14 @@ msgstr "เฟรมต่อวินาที"
msgid "Align with view"
msgstr "ย้ายมาที่à¸à¸¥à¹‰à¸­à¸‡"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "ตà¸à¸¥à¸‡ :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "ไม่พบโหนดà¹à¸¡à¹ˆà¸—ี่จะรับอินสà¹à¸•นซ์โหนดลูà¸"
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "à¹à¸ªà¸”งปà¸à¸•ิ"
@@ -5110,6 +5219,20 @@ msgid "Scale Mode (R)"
msgstr "โหมดปรับขนาด (R)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "พิà¸à¸±à¸”ภายใน"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "โหมดปรับขนาด (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "โหมดà¸à¸²à¸£à¸ˆà¸³à¸à¸±à¸”:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "มุมล่าง"
@@ -5182,10 +5305,6 @@ msgid "Configure Snap.."
msgstr "ตั้งค่าà¸à¸²à¸£à¸ˆà¸³à¸à¸±à¸”.."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "พิà¸à¸±à¸”ภายใน"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr "เครื่องมือเคลื่อนย้าย.."
@@ -5227,6 +5346,10 @@ msgid "Settings"
msgstr "ตัวเลือà¸"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr "ตั้งค่าà¸à¸²à¸£à¸ˆà¸³à¸à¸±à¸”"
@@ -5609,6 +5732,11 @@ msgid "Merge from scene?"
msgstr "รวมจาà¸à¸‰à¸²à¸?"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet.."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "สร้างจาà¸à¸‰à¸²à¸"
@@ -5620,6 +5748,10 @@ msgstr "รวมจาà¸à¸‰à¸²à¸"
msgid "Error"
msgstr "ผิดพลาด"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "ยà¸à¹€à¸¥à¸´à¸"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "รันได้"
@@ -5737,10 +5869,6 @@ msgid "Imported Project"
msgstr "นำเข้าโปรเจà¸à¸•์à¹à¸¥à¹‰à¸§"
#: editor/project_manager.cpp
-msgid " "
-msgstr " "
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr "ควรตั้งชื่อโปรเจà¸à¸•์"
@@ -5896,6 +6024,8 @@ msgid ""
"You don't currently have any projects.\n"
"Would you like to explore the official example projects in the Asset Library?"
msgstr ""
+"คุณยังไม่มีโปรเจà¸à¸•์ใดๆ\n"
+"ต้องà¸à¸²à¸£à¸ªà¸³à¸£à¸§à¸ˆà¹‚ปรเจà¸à¸•์ตัวอย่างในà¹à¸«à¸¥à¹ˆà¸‡à¸£à¸§à¸¡à¸—รัพยาà¸à¸£à¸«à¸£à¸·à¸­à¹„ม่?"
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -6003,8 +6133,9 @@ msgid "Joypad Button Index:"
msgstr "ปุ่มจอย:"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "เพิ่มà¸à¸²à¸£à¸à¸£à¸°à¸—ำ"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "ลบà¸à¸²à¸£à¸à¸£à¸°à¸—ำ"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6071,6 +6202,10 @@ msgid "Already existing"
msgstr "มีอยู่à¸à¹ˆà¸­à¸™à¹à¸¥à¹‰à¸§"
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "เพิ่มà¸à¸²à¸£à¸à¸£à¸°à¸—ำ"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "ผิดพลาดขณะบันทึà¸à¸„่า"
@@ -6247,6 +6382,10 @@ msgid "New Script"
msgstr "สคริปต์ใหม่"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr "ไม่ใช้ร่วมà¸à¸±à¸šà¸§à¸±à¸•ถุอื่น"
@@ -6278,6 +6417,11 @@ msgstr "บิต %d, ค่า %d"
msgid "On"
msgstr "เปิด"
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "เพิ่มà¹à¸šà¸šà¸§à¹ˆà¸²à¸‡à¹€à¸›à¸¥à¹ˆà¸²"
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "à¸à¸³à¸«à¸™à¸”"
@@ -6286,10 +6430,6 @@ msgstr "à¸à¸³à¸«à¸™à¸”"
msgid "Properties:"
msgstr "คุณสมบัติ:"
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr "หัวข้อ:"
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "เลือà¸à¸„ุณสมบัติ"
@@ -6849,6 +6989,10 @@ msgstr "à¸à¸³à¸«à¸™à¸”จาà¸à¸œà¸±à¸‡"
msgid "Shortcuts"
msgstr "ทางลัด"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "ปรับรัศมีà¹à¸ªà¸‡"
@@ -6897,15 +7041,55 @@ msgstr "เปลี่ยนเส้นà¸à¸£à¸­à¸š Particles"
msgid "Change Probe Extents"
msgstr "à¹à¸à¹‰à¹„ขขนาด Probe"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "ลบจุดบนเส้นโค้ง"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Platform"
+msgstr "คัดลอà¸à¹„ปยังà¹à¸žà¸¥à¸•ฟอร์ม.."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "ไลบรารี"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "GDNative"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr "ไลบรารี"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr "สถานะ"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr "ไลบรารี: "
@@ -7568,6 +7752,25 @@ msgstr "Anchor id ต้องไม่เป็น 0 ไม่เช่นนà¸
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr "ARVROrigin ต้องมี ARVRCamera เป็นโหนดลูà¸"
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "วางà¹à¸™à¸§ meshes"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "วางà¹à¸™à¸§ meshes"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr "เสร็จสิ้นà¸à¸²à¸£à¸§à¸²à¸‡à¹à¸™à¸§"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "วางà¹à¸™à¸§ meshes"
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7600,10 +7803,6 @@ msgstr "ต้องมีรูปทรงเพื่อให้ CollisionSh
msgid "Plotting Meshes"
msgstr "วางà¹à¸™à¸§ meshes"
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr "เสร็จสิ้นà¸à¸²à¸£à¸§à¸²à¸‡à¹à¸™à¸§"
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr "ต้องมี NavigationMesh เพื่อให้โหนดนี้ทำงานได้"
@@ -7660,10 +7859,6 @@ msgid "Add current color as a preset"
msgstr "เพิ่มสีที่เลือà¸à¹ƒà¸™à¸£à¸²à¸¢à¸à¸²à¸£à¹‚ปรด"
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "ยà¸à¹€à¸¥à¸´à¸"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "à¹à¸ˆà¹‰à¸‡à¹€à¸•ือน!"
@@ -7672,9 +7867,8 @@ msgid "Please Confirm..."
msgstr "à¸à¸£à¸¸à¸“ายืนยัน..."
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select this Folder"
-msgstr "เลือà¸à¹€à¸¡à¸—็อด"
+msgstr "เลือà¸à¹‚ฟลเดอร์นี้"
#: scene/gui/popup.cpp
msgid ""
@@ -7734,6 +7928,30 @@ msgstr "ผิดพลาดขณะโหลดฟอนต์"
msgid "Invalid font size."
msgstr "ขนาดฟอนต์ผิดพลาด"
+#~ msgid "Move Add Key"
+#~ msgstr "เลื่อนหรือเพิ่มคีย์à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
+
+#~ msgid "Create Subscription"
+#~ msgstr "สร้างà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¹‚ยง"
+
+#~ msgid "List:"
+#~ msgstr "รายชื่อ:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "à¸à¸³à¸«à¸™à¸” Mask à¸à¸²à¸£à¸›à¸°à¸—ุ"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "ลบตัวปะทุ"
+
+#~ msgid "Fold Line"
+#~ msgstr "ซ่อน"
+
+#~ msgid " "
+#~ msgstr " "
+
+#~ msgid "Sections:"
+#~ msgstr "หัวข้อ:"
+
#~ msgid "Cannot navigate to '"
#~ msgstr "ไม่สามารถไปยัง '"
@@ -8256,9 +8474,6 @@ msgstr "ขนาดฟอนต์ผิดพลาด"
#~ msgid "Making BVH"
#~ msgstr "à¸à¸³à¸¥à¸±à¸‡à¸ªà¸£à¹‰à¸²à¸‡ BVH"
-#~ msgid "Transfer to Lightmaps:"
-#~ msgstr "ส่งผ่านไปยัง Lightmaps:"
-
#~ msgid "Allocating Texture #"
#~ msgstr "จัดสรร Texture #"
@@ -8404,9 +8619,6 @@ msgstr "ขนาดฟอนต์ผิดพลาด"
#~ msgid "Del"
#~ msgstr "ลบ"
-#~ msgid "Copy To Platform.."
-#~ msgstr "คัดลอà¸à¹„ปยังà¹à¸žà¸¥à¸•ฟอร์ม.."
-
#~ msgid "just pressed"
#~ msgstr "เพิ่งà¸à¸”"
diff --git a/editor/translations/tr.po b/editor/translations/tr.po
index db92e63768..ce0ef645dc 100644
--- a/editor/translations/tr.po
+++ b/editor/translations/tr.po
@@ -18,7 +18,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-29 08:13+0000\n"
+"PO-Revision-Date: 2017-12-04 20:50+0000\n"
"Last-Translator: razah <icnikerazah@gmail.com>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/"
"godot/tr/>\n"
@@ -37,8 +37,9 @@ msgid "All Selection"
msgstr "Tüm Seçim"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "Hareket Anahtar Ekle"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Animasyon DeÄŸiÅŸikliÄŸi DeÄŸeri"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -49,7 +50,8 @@ msgid "Anim Change Transform"
msgstr "Animasyon Değişikliği Dönüşümü"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Animasyon DeÄŸiÅŸikliÄŸi DeÄŸeri"
#: editor/animation_editor.cpp
@@ -62,7 +64,7 @@ msgstr "Animasyon İz Ekle"
#: editor/animation_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr "Animasyon Anahtarlrını Çoğalt"
+msgstr "Animasyon Anahtarlarını Çoğalt"
#: editor/animation_editor.cpp
msgid "Move Anim Track Up"
@@ -78,7 +80,7 @@ msgstr "Animasyon İzini Kaldır"
#: editor/animation_editor.cpp
msgid "Set Transitions to:"
-msgstr "Geçişleri şuna ayarla:"
+msgstr "Geçişleri Şuna Ayarla:"
#: editor/animation_editor.cpp
msgid "Anim Track Rename"
@@ -188,11 +190,11 @@ msgstr "Geçişler"
#: editor/animation_editor.cpp
msgid "Optimize Animation"
-msgstr "Animasyonu İyileştir"
+msgstr "Animasyonu EniyileÅŸtir"
#: editor/animation_editor.cpp
msgid "Clean-Up Animation"
-msgstr "Animasyonu Temizle"
+msgstr "Animasyonda temizlik yap"
#: editor/animation_editor.cpp
msgid "Create NEW track for %s and insert key?"
@@ -335,7 +337,7 @@ msgstr "Ölçek Oranı:"
#: editor/animation_editor.cpp
msgid "Call Functions in Which Node?"
-msgstr "Hangi Düğümdeki Fonksiyonlar Çağrılsın?"
+msgstr "Hangi Düğümdeki İşlevler Çağrılsın?"
#: editor/animation_editor.cpp
msgid "Remove invalid keys"
@@ -363,7 +365,7 @@ msgstr "Diziyi Yeniden Boyutlandır"
#: editor/array_property_edit.cpp
msgid "Change Array Value Type"
-msgstr "Dizinin Türünü Değiştir"
+msgstr "Dizi DeÄŸer Tipini DeÄŸiÅŸtir"
#: editor/array_property_edit.cpp
msgid "Change Array Value"
@@ -395,11 +397,11 @@ msgstr "Tümünü Değiştir"
#: editor/code_editor.cpp
msgid "Match Case"
-msgstr "Durumla EÅŸleÅŸtir"
+msgstr "Büyük/Küçük Harf Eşleştir"
#: editor/code_editor.cpp
msgid "Whole Words"
-msgstr "Tüm Sözcükler"
+msgstr "Tam Kelimeler"
#: editor/code_editor.cpp
msgid "Selection Only"
@@ -447,7 +449,7 @@ msgstr "Geç"
#: editor/code_editor.cpp
msgid "Zoom In"
-msgstr "YaklaÅŸ"
+msgstr "Yaklaştır"
#: editor/code_editor.cpp
msgid "Zoom Out"
@@ -467,19 +469,19 @@ msgstr "Sütun:"
#: editor/connections_dialog.cpp
msgid "Method in target Node must be specified!"
-msgstr "Hedef Düğümdeki Fonksiyon tanımlanmış olmalı!"
+msgstr "Hedef Düğümdeki Metot tanımlanmış olmalı!"
#: editor/connections_dialog.cpp
msgid ""
"Target method not found! Specify a valid method or attach a script to target "
"Node."
msgstr ""
-"Amaçlanan fonksiyon bulunamadı! Geçerli bir fonksiyon tanımla ya da "
-"amaçlanan Düğüme bir betik iliştirin."
+"Amaçlanan metot bulunamadı! Geçerli bir metot tanımla ya da amaçlanan düğüme "
+"bir betik iliÅŸtirin."
#: editor/connections_dialog.cpp
msgid "Connect To Node:"
-msgstr "Düğüme Bağlan:"
+msgstr "Düğüme Bağla:"
#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp
#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp
@@ -508,7 +510,7 @@ msgstr "Düğüm Yolu:"
#: editor/connections_dialog.cpp
msgid "Make Function"
-msgstr "Fonksiyon Yap"
+msgstr "İşlev Yap"
#: editor/connections_dialog.cpp
msgid "Deferred"
@@ -545,8 +547,9 @@ msgid "Connecting Signal:"
msgstr "Bağlantı Sinyali:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Üyelik Oluştur"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "Bunu '%s' ÅŸuna '%s' baÄŸla"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -562,7 +565,8 @@ msgid "Signals"
msgstr "Sinyaller"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Yeni oluÅŸtur"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -577,7 +581,7 @@ msgstr "Yakın zamanda:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Ara:"
@@ -618,8 +622,9 @@ msgstr ""
"Değişiklikler yeniden yükleme yapılınca etkin olacak."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
-msgstr "Bağımlılık"
+msgstr "Bağımlılıklar"
#: editor/dependency_editor.cpp
msgid "Resource"
@@ -645,7 +650,7 @@ msgstr "Bağımlılık Düzenleyicisi"
#: editor/dependency_editor.cpp
msgid "Search Replacement Resource:"
-msgstr "Değişim Kaynağını Ara:"
+msgstr "Yerine Geçecek Kaynak Ara:"
#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp
#: editor/editor_help.cpp editor/editor_node.cpp editor/filesystem_dock.cpp
@@ -656,11 +661,11 @@ msgstr "Aç"
#: editor/dependency_editor.cpp
msgid "Owners Of:"
-msgstr "Bunun Sahibi:"
+msgstr "Şunların sahipleri:"
#: editor/dependency_editor.cpp
msgid "Remove selected files from the project? (no undo)"
-msgstr "Seçili dosyaları projeden kaldır? (Geri alınamaz)"
+msgstr "Seçili dosyaları projeden kaldır? (geri alınamaz)"
#: editor/dependency_editor.cpp
msgid ""
@@ -669,7 +674,7 @@ msgid ""
"Remove them anyway? (no undo)"
msgstr ""
"Kaldırılmakta olan dosyalar başka kaynakların çalışması için gerekli.\n"
-"Yine de kaldırmak istiyor musunuz? (Geri alınamaz)"
+"Yine de kaldırmak istiyor musunuz? (geri alınamaz)"
#: editor/dependency_editor.cpp
msgid "Cannot remove:\n"
@@ -677,7 +682,7 @@ msgstr "Kaldırılamadı:\n"
#: editor/dependency_editor.cpp
msgid "Error loading:"
-msgstr "Yüklerken sorun:"
+msgstr "Yüklerken hata:"
#: editor/dependency_editor.cpp
msgid "Scene failed to load due to missing dependencies:"
@@ -697,7 +702,7 @@ msgstr "Bağımlılıkları düzelt"
#: editor/dependency_editor.cpp
msgid "Errors loading!"
-msgstr "Yükleme sorunları!"
+msgstr "Yükleme hataları!"
#: editor/dependency_editor.cpp
msgid "Permanently delete %d item(s)? (No undo!)"
@@ -720,15 +725,16 @@ msgid "Delete selected files?"
msgstr "Seçili dosyalar silinsin mi?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Sil"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Key"
-msgstr "Sözlükteki Anahtarı Değiştir"
+msgstr "Sözlük Anahtarını Değiştir"
#: editor/dictionary_property_edit.cpp
msgid "Change Dictionary Value"
@@ -865,6 +871,11 @@ msgid "Rename Audio Bus"
msgstr "Audio Bus'ı Yeniden Adlandır"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Audio Bus'ı Solo Aç/Kapat"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Audio Bus'ı Solo Aç/Kapat"
@@ -912,10 +923,10 @@ msgstr "Baypas"
msgid "Bus options"
msgstr "Bus ayarları"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
-msgstr "Kopyala"
+msgstr "Çoğalt"
#: editor/editor_audio_buses.cpp
msgid "Reset Volume"
@@ -926,6 +937,10 @@ msgid "Delete Effect"
msgstr "Efekt'i Sil"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "Audio Bus Ekle"
@@ -939,7 +954,7 @@ msgstr "Audio Bus'ı Sil"
#: editor/editor_audio_buses.cpp
msgid "Duplicate Audio Bus"
-msgstr "Audio Bus'ın Bir Kopyasını Oluştur"
+msgstr "Audio Bus'ı Çoğalt"
#: editor/editor_audio_buses.cpp
msgid "Reset Bus Volume"
@@ -1001,7 +1016,7 @@ msgstr "Varsayılanı Yükle"
#: editor/editor_audio_buses.cpp
msgid "Load the default Bus Layout."
-msgstr "Varsayılan Bus Yerleşim Düzenini yükle."
+msgstr "Varsayılan Bus Yerleşim Düzenini Yükle."
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
@@ -1013,7 +1028,7 @@ msgstr "Geçerli damgalar:"
#: editor/editor_autoload_settings.cpp
msgid "Invalid name. Must not collide with an existing engine class name."
-msgstr "Geçersiz ad. Devinimcide kullanılan bölüt adları kullanılamaz."
+msgstr "Geçersiz isim. Varolan bir motor sınıf ismi ile çakışmamalı."
#: editor/editor_autoload_settings.cpp
msgid "Invalid name. Must not collide with an existing buit-in type name."
@@ -1076,7 +1091,8 @@ msgstr "Dosya yolu:"
msgid "Node Name:"
msgstr "Düğüm adı:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "Ad"
@@ -1084,10 +1100,6 @@ msgstr "Ad"
msgid "Singleton"
msgstr "Tekil"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "Dizelge:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "Sahne Güncelleniyor"
@@ -1100,30 +1112,39 @@ msgstr "Yerel değişiklikler kayıt ediliyor.."
msgid "Updating scene.."
msgstr "Sahne güncelleniyor.."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(boÅŸ)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "Lütfen öncelikle bir taban dizini seçin"
#: editor/editor_dir_dialog.cpp
msgid "Choose a Directory"
-msgstr "Dizin Seç"
+msgstr "Bir Dizin Seç"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
msgid "Create Folder"
-msgstr "Dizin OluÅŸtur"
+msgstr "Klasör Oluştur"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
#: scene/gui/file_dialog.cpp
msgid "Name:"
-msgstr "Ad:"
+msgstr "İsim:"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
msgid "Could not create folder."
-msgstr "Dizin oluşturulamadı."
+msgstr "Klasör oluşturulamadı."
#: editor/editor_dir_dialog.cpp
msgid "Choose"
@@ -1146,9 +1167,24 @@ msgid "File Exists, Overwrite?"
msgstr "Dosya var. Üzerine Yazılsın mı?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "Dizin OluÅŸtur"
+msgstr "Geçerli Klasörü Seç"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Dosya Yolunu Tıpkıla"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Dosya Yöneticisinde Göster"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Yeni Klasör.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Yenile"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1168,7 +1204,7 @@ msgstr "Dosya(leri) Aç"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a Directory"
-msgstr "Bir dizin aç"
+msgstr "Bir Dizin Aç"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a File or Directory"
@@ -1197,10 +1233,6 @@ msgid "Go Up"
msgstr "Yukarı Git"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Yenile"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "Gizli Dosyalari Aç / Kapat"
@@ -1243,7 +1275,7 @@ msgstr "Dosya:"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Must use a valid extension."
-msgstr "Gecerli bir uzantı kullanılmalı."
+msgstr "Geçerli bir uzantı kullanılmalı."
#: editor/editor_file_system.cpp
msgid "ScanSources"
@@ -1260,11 +1292,11 @@ msgstr "Yardım Ara"
#: editor/editor_help.cpp
msgid "Class List:"
-msgstr "Bölüt Dizelgesi:"
+msgstr "Sınıf Listesi:"
#: editor/editor_help.cpp
msgid "Search Classes"
-msgstr "Bölütleri Ara"
+msgstr "Sınıfları Ara"
#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp
msgid "Top"
@@ -1272,7 +1304,7 @@ msgstr "Üst"
#: editor/editor_help.cpp editor/property_editor.cpp
msgid "Class:"
-msgstr "Bölüt:"
+msgstr "Sınıf:"
#: editor/editor_help.cpp editor/scene_tree_editor.cpp
msgid "Inherits:"
@@ -1280,7 +1312,7 @@ msgstr "Kalıtçılar:"
#: editor/editor_help.cpp
msgid "Inherited by:"
-msgstr "Tarafından kalıt alındı:"
+msgstr "Şundan miras alındı:"
#: editor/editor_help.cpp
msgid "Brief Description:"
@@ -1300,7 +1332,7 @@ msgstr "Açık Metodlar"
#: editor/editor_help.cpp
msgid "Public Methods:"
-msgstr "Açık Yöntemler:"
+msgstr "Açık Metotlar:"
#: editor/editor_help.cpp
msgid "GUI Theme Items"
@@ -1356,18 +1388,18 @@ msgstr ""
#: editor/editor_help.cpp
msgid "Methods"
-msgstr "Metodlar"
+msgstr "Metotlar"
#: editor/editor_help.cpp
msgid "Method Description:"
-msgstr "Yöntem Açıklaması:"
+msgstr "Metot Açıklaması:"
#: editor/editor_help.cpp
msgid ""
"There is currently no description for this method. Please help us by [color="
"$color][url=$url]contributing one[/url][/color]!"
msgstr ""
-"Bu metod için henüz bir açıklama yok. Bize [color=$color][url=$url]katkıda "
+"Bu metot için henüz bir açıklama yok. Bize [color=$color][url=$url]katkıda "
"bulunarak[/url][/color] yardım edebilirsiniz!"
#: editor/editor_help.cpp
@@ -1380,13 +1412,14 @@ msgstr "Çıktı:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "Temizle"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Error saving resource!"
-msgstr "Kaynak kaydedilirken sorun!"
+msgstr "Kaynak kaydedilirken hata!"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Save Resource As.."
@@ -1407,7 +1440,7 @@ msgstr "İstenilen dosya formatı bilinmiyor:"
#: editor/editor_node.cpp
msgid "Error while saving."
-msgstr "Kaydedilirken sorun oluÅŸtu."
+msgstr "Kaydedilirken hata oluÅŸtu."
#: editor/editor_node.cpp
msgid "Can't open '%s'."
@@ -1452,7 +1485,7 @@ msgstr "Sahne kaydedilemedi. Anlaşılan bağımlılıklar (örnekler) karşıla
#: editor/editor_node.cpp
msgid "Failed to load resource."
-msgstr "Kaynak yüklenirken sorun oluştu."
+msgstr "Kaynak yükleme başarısız oldu."
#: editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
@@ -1460,7 +1493,7 @@ msgstr "Birleştirme için MeshLibrary yüklenemedi!"
#: editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
-msgstr "MeshLibrary kayıt edilirken sorun!"
+msgstr "MeshLibrary kaydedilirken hata!"
#: editor/editor_node.cpp
msgid "Can't load TileSet for merging!"
@@ -1468,15 +1501,15 @@ msgstr "TileSet birleştirme için yüklenemedi!"
#: editor/editor_node.cpp
msgid "Error saving TileSet!"
-msgstr "TileSet kayıt edilirken sorun!"
+msgstr "TileSet kaydedilirken hata!"
#: editor/editor_node.cpp
msgid "Error trying to save layout!"
-msgstr "Yerleşim Düzeni kaydedilmeye çalışılırken sorun oluştu!"
+msgstr "Yerleşim Düzeni kaydedilmeye çalışılırken hata!"
#: editor/editor_node.cpp
msgid "Default editor layout overridden."
-msgstr "Önyüklü düzenleyici Yerleşim Düzeni geçersiz kılındı."
+msgstr "Varsayılan düzenleyici yerleşim düzeni geçersiz kılındı."
#: editor/editor_node.cpp
msgid "Layout name not found!"
@@ -1484,7 +1517,7 @@ msgstr "Yerleşim Düzeni adı bulunamadı!"
#: editor/editor_node.cpp
msgid "Restored default layout to base settings."
-msgstr "Önyüklü Yerleşim Düzeni temel ayarlara onarıldı."
+msgstr "Varsayılan yerleşim düzeni temel ayarlarına geri döndürüldü."
#: editor/editor_node.cpp
msgid ""
@@ -1537,14 +1570,12 @@ msgstr ""
"aktarma kısmını okuyunuz."
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand all properties"
-msgstr "Hepsini geniÅŸlet"
+msgstr "Tüm özellikleri genişlet"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Collapse all properties"
-msgstr "Hepsini daralt"
+msgstr "Tüm özellikleri daralt"
#: editor/editor_node.cpp
msgid "Copy Params"
@@ -1776,9 +1807,8 @@ msgid ""
"Error loading scene, it must be inside the project path. Use 'Import' to "
"open the scene, then save it inside the project path."
msgstr ""
-"Sahne yüklenirken sorun oluştu, sahne proje yolunun içinde olmalı. Sahneyi "
-"açmak için 'İçe Aktar' seçeneğini kullanın, ardından projenin yolunun içine "
-"kaydedin."
+"Sahne yükleme hatası, sahne proje yolunun içinde olmalı. Sahneyi açmak için "
+"'İçe Aktar' seçeneğini kullanın, ardından projenin yolunun içine kaydedin."
#: editor/editor_node.cpp
msgid "Scene '%s' has broken dependencies:"
@@ -1863,7 +1893,7 @@ msgstr "Yeni Sahne"
#: editor/editor_node.cpp
msgid "New Inherited Scene.."
-msgstr "Yeni Kalıt Alınmış Sahne .."
+msgstr "Yeni Miras Alınmış Sahne .."
#: editor/editor_node.cpp
msgid "Open Scene.."
@@ -1945,14 +1975,14 @@ msgstr "Kusur Ayıkla"
#: editor/editor_node.cpp
msgid "Deploy with Remote Debug"
-msgstr "Uzaktan Sorun Ayıklama ile Dağıt"
+msgstr "Uzaktan Hata Ayıklama ile Dağıt"
#: editor/editor_node.cpp
msgid ""
"When exporting or deploying, the resulting executable will attempt to "
"connect to the IP of this computer in order to be debugged."
msgstr ""
-"Verilen yürütülebilir dosya, dışa aktarılırken veya dağıtıldığında, sorun "
+"Verilen yürütülebilir dosya, dışa aktarılırken veya dağıtıldığında, hata "
"ayıklanacak şekilde bu bilgisayarın IP'sine bağlanmaya çalışacaktır."
#: editor/editor_node.cpp
@@ -2040,7 +2070,7 @@ msgstr "Düzenleyici Ayarları"
#: editor/editor_node.cpp
msgid "Editor Layout"
-msgstr "Düzenleyici Yerleşim Planı"
+msgstr "Düzenleyici Yerleşim Düzeni"
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
@@ -2056,7 +2086,7 @@ msgstr "Yardım"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Classes"
-msgstr "Bölütler"
+msgstr "Sınıflar"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Online Docs"
@@ -2076,7 +2106,7 @@ msgstr "Topluluk"
#: editor/editor_node.cpp
msgid "About"
-msgstr "İlişkin"
+msgstr "Hakkında"
#: editor/editor_node.cpp
msgid "Play the project."
@@ -2225,7 +2255,7 @@ msgstr "Yeni Örnekleme"
#: editor/editor_node.cpp
msgid "Load Errors"
-msgstr "Sorunları Yükle"
+msgstr "Hataları Yükle"
#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp
msgid "Select"
@@ -2328,6 +2358,16 @@ msgstr "Kendi"
msgid "Frame #:"
msgstr "Kare #:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "Süre:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Çağır"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "Listeden aygıt seç"
@@ -2342,7 +2382,7 @@ msgstr ""
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
-msgstr "Mantığını _run() yöntemine yaz."
+msgstr "Mantığınızı _run() metoduna yazın."
#: editor/editor_run_script.cpp
msgid "There is an edited scene already."
@@ -2362,11 +2402,11 @@ msgstr "Betik çalıştırılamadı:"
#: editor/editor_run_script.cpp
msgid "Did you forget the '_run' method?"
-msgstr "'_run()' yöntemini unuttunuz mu?"
+msgstr "'_run()' metodunu unuttunuz mu?"
#: editor/editor_settings.cpp
msgid "Default (Same as Editor)"
-msgstr "Önyüklü(Düzenleyici ile aynı)"
+msgstr "Varsayılan (Düzenleyici İle Aynı)"
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
@@ -2469,7 +2509,8 @@ msgstr "Cevap yok."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "İstem Başarısız."
#: editor/export_template_manager.cpp
@@ -2516,7 +2557,8 @@ msgid "Connecting.."
msgstr "Bağlanılıyor.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "Bağlanamadı"
#: editor/export_template_manager.cpp
@@ -2612,6 +2654,11 @@ msgid "Error moving:\n"
msgstr "Taşıma Hatası:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Yüklerken hata:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "Bağımlılıklar güncellenemedi:\n"
@@ -2641,7 +2688,17 @@ msgstr "Dosya yeniden-adlandırma:"
#: editor/filesystem_dock.cpp
msgid "Renaming folder:"
-msgstr "Klasör yeniden-adlandırma:"
+msgstr "Klasör yeniden adlandırma:"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Çoğalt"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "Klasör yeniden adlandırma:"
#: editor/filesystem_dock.cpp
msgid "Expand all"
@@ -2652,10 +2709,6 @@ msgid "Collapse all"
msgstr "Hepsini daralt"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "Dosya Yolunu Tıpkıla"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "Yeniden Adlandır.."
@@ -2664,12 +2717,9 @@ msgid "Move To.."
msgstr "Şuraya Taşı.."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "Yeni Klasör.."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "Dosya Yöneticisinde Göster"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Sahneyi Aç"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2684,6 +2734,11 @@ msgid "View Owners.."
msgstr "Sahipleri Görüntüle.."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Çoğalt"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "Önceki Dizin"
@@ -2697,7 +2752,7 @@ msgstr "Dosya Düzenini Yeniden Tara"
#: editor/filesystem_dock.cpp
msgid "Toggle folder status as Favorite"
-msgstr "Dizin Durumlarını Beğenilen Olarak Aç/Kapat"
+msgstr "Klasör durumunu Beğenilen olarak değiştir"
#: editor/filesystem_dock.cpp
msgid "Instance the selected scene(s) as child of the selected node."
@@ -2778,6 +2833,16 @@ msgid "Importing Scene.."
msgstr "Sahneyi İçe Aktarıyor..."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "Işık Haritalarına Aktar:"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "AABB Üretimi"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "Çalışan Özel Betik.."
@@ -2793,7 +2858,7 @@ msgstr ""
#: editor/import/resource_importer_scene.cpp
msgid "Error running post-import script:"
-msgstr "İçe aktarma sonrası betik dosyası çalıştırılırken sorun oluştu:"
+msgstr "sonradan-içe aktarılmış betik çalıştırılırken hata:"
#: editor/import/resource_importer_scene.cpp
msgid "Saving.."
@@ -2907,11 +2972,11 @@ msgstr "Animasyonu Kaldır"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: Invalid animation name!"
-msgstr "SORUN: Geçersiz animasyon adı!"
+msgstr "HATA: Geçersiz animasyon adı!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: Animation name already exists!"
-msgstr "SORUN: Bu animasyon adı zaten var!"
+msgstr "HATA: Bu animasyon adı zaten var!"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -2941,11 +3006,11 @@ msgstr "Animasyonu Çoğalt"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation to copy!"
-msgstr "SORUN: Tıpkılamak için bir animasyon yok!"
+msgstr "HATA: Kopyalanacak animasyon yok!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation resource on clipboard!"
-msgstr "SORUN: Bellemde animasyon kaynağı yok!"
+msgstr "HATA: panoda animasyon kaynağı yok!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
@@ -2957,7 +3022,7 @@ msgstr "Animasyonu Yapıştır"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation to edit!"
-msgstr "SORUN: Düzenlemek için bir animasyon yok!"
+msgstr "HATA: Düzenlenecek animasyon yok!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
@@ -3025,54 +3090,51 @@ msgstr "Animasyonu Tıpkıla"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "Araları Doldurma"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Araları Doldurmayı Etkinleştir"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "Bölümler:"
+msgstr "Yönler"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Past"
-msgstr "Yapıştır"
+msgstr "Geçmiş"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Future"
-msgstr "Özellikler"
+msgstr "Gelecek"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Derinlik"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 kademe"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 kademe"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 kademe"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Sadece Farklılıklar"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
-msgstr ""
+msgstr "Beyaz Modüle Etme Kuvveti"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "Gizmoları Dahil Et (3B)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
@@ -3314,7 +3376,7 @@ msgstr "Çözümleniyor..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Error making request"
-msgstr "İstek yapma hatası"
+msgstr "İstek yapılırken hata"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Idle"
@@ -3349,6 +3411,7 @@ msgid "last"
msgstr "son"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "Hepsi"
@@ -3368,7 +3431,7 @@ msgstr "Tersi"
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/project_settings_editor.cpp
msgid "Category:"
-msgstr "Katman:"
+msgstr "Kategori:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Site:"
@@ -3390,6 +3453,28 @@ msgstr "Deneme"
msgid "Assets ZIP File"
msgstr "Varlıkların ZIP Dosyası"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "Işık Haritalarına Aktar:"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "Önizleme"
@@ -3528,7 +3613,6 @@ msgid "Toggles snapping"
msgstr "Yapılmayı aç/kapat"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "Yapışma Kullan"
@@ -3570,7 +3654,7 @@ msgstr "Düğüm çapasına yapıştır"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to node sides"
-msgstr "Düğüm kenalarına yapıştır"
+msgstr "Düğüm kenalarına yapış"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to other nodes"
@@ -3682,7 +3766,7 @@ msgstr "Pivotu fare pozisyonunda ayarla"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
-msgstr "Izgara adımlarını 2 ile çarp"
+msgstr "Izgara basamağını 2 ile çarp"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Divide grid step by 2"
@@ -3704,17 +3788,7 @@ msgstr "Düğüm Oluştur"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Error instancing scene from %s"
-msgstr "%s sahne örnekleme sorunu"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "Tamam :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "Çocuğun örnek alacağı bir ebeveyn yok."
+msgstr "Şundan: %s sahne örnekleme hatası"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -3723,7 +3797,7 @@ msgstr "Bu işlem, seçilmiş tek bir düğüm gerektirir."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change default type"
-msgstr "Önyüklü tipi değiştir"
+msgstr "Varsayılan tipi değiştir"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -3913,6 +3987,22 @@ msgid "Create Navigation Mesh"
msgstr "Yönlendirici Örüntüsü Oluştur"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr "MeshInstance herhangi bir Örüntüden yoksun!"
@@ -3953,12 +4043,26 @@ msgid "Create Outline Mesh.."
msgstr "Anahat Örüntüsü Oluştur.."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "Görüş"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "Görüş"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr "Anahat Örüntüsü Oluştur"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Outline Size:"
-msgstr "Anahat Ölçüsü:"
+msgstr "Kontur Boyutu:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "No mesh source specified (and no MultiMesh set in node)."
@@ -4129,10 +4233,6 @@ msgid "Create Navigation Polygon"
msgstr "Yönlendirici Çokgeni Oluştur"
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr "Yayma Örtecini Temizle"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr "AABB Üretimi"
@@ -4143,23 +4243,23 @@ msgstr "Nokta sadece ParçacıkMateryal işlem materyalinin içinde ayarlanabili
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Error loading image:"
-msgstr "Bediz yüklenirken sorun oluştu:"
+msgstr "Resim yüklenirken hata:"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "No pixels with transparency > 128 in image.."
msgstr "Saydamlığı olan nokta yok > 128 bedizde.."
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "Yayma Örtecini Ayarla"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
msgstr "Görünebilirlik Dikdörtgeni Üret"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Load Emission Mask"
-msgstr "Yayma Örtecini Yükle"
+msgstr "Yayma Maskesini Yükle"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "Yayma Maskesini Temizle"
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
@@ -4168,7 +4268,7 @@ msgstr "Parçacıklar"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generated Point Count:"
-msgstr "Üretilen Nokta Say:"
+msgstr "Üretilen Nokta Sayısı:"
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
@@ -4220,10 +4320,6 @@ msgid "Create Emission Points From Node"
msgstr "Düğümden Emisyon Noktaları Oluştur"
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "Yayıcıyı Temizle"
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr "Yayıcı Oluştur"
@@ -4257,11 +4353,11 @@ msgstr "Noktayı Eğriden Kaldır"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove Out-Control from Curve"
-msgstr "Çıkış-Kontrolünü Eğriden Kaldır"
+msgstr "Eğriden Çıkış-Kontrol Kaldır"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove In-Control from Curve"
-msgstr "Giriş-Kontrolünü Eğriden Kaldır"
+msgstr "Eğriden Giriş-Kontrol Kaldır"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -4274,11 +4370,11 @@ msgstr "Noktayı Eğriye Taşı"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move In-Control in Curve"
-msgstr "Eğriye Denetimli Taşı"
+msgstr "Eğride Giriş-Kontrol Taşı"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Out-Control in Curve"
-msgstr "Eğriye Denetimsiz Taşı"
+msgstr "Eğride Çıkış-Kontrol Taşı"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -4350,7 +4446,7 @@ msgstr "Yol Noktasını Kaldır"
#: editor/plugins/path_editor_plugin.cpp
msgid "Remove Out-Control Point"
-msgstr "Çıkış-Kontrol Noktasını Kaldır"
+msgstr "Çıkış-Kontrol Noktası Kaldır"
#: editor/plugins/path_editor_plugin.cpp
msgid "Remove In-Control Point"
@@ -4431,7 +4527,7 @@ msgstr "Izgara"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "ERROR: Couldn't load resource!"
-msgstr "SORUN: Kaynak yüklenemedi!"
+msgstr "HATA: Kaynak yüklenemedi!"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Add Resource"
@@ -4448,7 +4544,7 @@ msgstr "Kaynağı Sil"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Resource clipboard is empty!"
-msgstr "Kaynak bellemi boÅŸ!"
+msgstr "Kaynak panosu boÅŸ!"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -4476,19 +4572,19 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme"
-msgstr "Tema kaydedilirken sorun oluÅŸtu"
+msgstr "Tema kaydedilirken hata"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error saving"
-msgstr "Kaydetme sorunu"
+msgstr "Kaydedilirken hata"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error importing theme"
-msgstr "Tema içe aktarılırken sorun oluştu"
+msgstr "Tema içe aktarılırken hata"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error importing"
-msgstr "İçe aktarma sorunu"
+msgstr "İçe aktarılırken hata"
#: editor/plugins/script_editor_plugin.cpp
msgid "Import Theme"
@@ -4500,7 +4596,7 @@ msgstr "Temayı Farklı Kaydet.."
#: editor/plugins/script_editor_plugin.cpp
msgid " Class Reference"
-msgstr " Sınıf Referansı"
+msgstr " Sınıf Başvurusu"
#: editor/plugins/script_editor_plugin.cpp
msgid "Sort"
@@ -4508,11 +4604,13 @@ msgstr "Sırala"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "Yukarı Taşı"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "Aşağı Taşı"
@@ -4528,7 +4626,7 @@ msgstr "Önceki betik"
msgid "File"
msgstr "Dosya"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "Yeni"
@@ -4541,6 +4639,11 @@ msgid "Soft Reload Script"
msgstr "Betiği Yeniden Duyarlı Yükle"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Dosya Yolunu Tıpkıla"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr "Öceki Geçmiş"
@@ -4621,7 +4724,7 @@ msgstr "Çevrimiçi Godot dökümanlarını aç"
#: editor/plugins/script_editor_plugin.cpp
msgid "Search the class hierarchy."
-msgstr "Bölüt sıradüzenini Ara."
+msgstr "Sınıf hiyerarşisi ara."
#: editor/plugins/script_editor_plugin.cpp
msgid "Search the reference documentation."
@@ -4731,11 +4834,8 @@ msgid "Clone Down"
msgstr "Aşağıya Eşle"
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr "Satırı Katla"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+#, fuzzy
+msgid "Fold/Unfold Line"
msgstr "Satırı Genişlet"
#: editor/plugins/script_text_editor.cpp
@@ -4829,7 +4929,7 @@ msgstr "RGB Sabitini DeÄŸiÅŸtir"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Scalar Operator"
-msgstr "Basamaklı İşletmeni Değiştir"
+msgstr "Skaler Operatörünü Değiştir"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Vec Operator"
@@ -4869,7 +4969,7 @@ msgstr "RGB Tekdüzenini Değiştir"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change Default Value"
-msgstr "Önyüklü Değeri Değiştir"
+msgstr "Varsayılan Değeri Değiştir"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Change XForm Uniform"
@@ -4921,7 +5021,7 @@ msgstr "Gölgelendirici Çizge Düğümünü Taşı"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Duplicate Graph Node(s)"
-msgstr "Çizge Düğüm(lerini) Çoğalt"
+msgstr "Grafik Düğüm(lerini) Çoğalt"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Delete Shader Graph Node(s)"
@@ -4929,11 +5029,11 @@ msgstr "Gölgelendirici Çizge Düğümünü Sil"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Error: Cyclic Connection Link"
-msgstr "Sorun: Döngüsel İlişki Bağlantısı"
+msgstr "Hata: Döngüsel Bağlantı Bağlantısı"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Error: Missing Input Connections"
-msgstr "Sorun: Giriş Bağlantıları Eksik"
+msgstr "Hata: Girdi Bağlantıları Eksik"
#: editor/plugins/shader_graph_editor_plugin.cpp
msgid "Add Shader Graph Node"
@@ -5063,6 +5163,14 @@ msgstr "FPS"
msgid "Align with view"
msgstr "Görünüme Ayarla"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "Tamam :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "Çocuğun örnek alacağı bir ebeveyn yok."
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "Olağanı Görüntüle"
@@ -5170,6 +5278,20 @@ msgid "Scale Mode (R)"
msgstr "Ölçek Biçimi (R)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "Yerel Koordlar"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "Ölçek Biçimi (R)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "Yapışma Kipi:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "Alttan Görünüm"
@@ -5242,36 +5364,32 @@ msgid "Configure Snap.."
msgstr "Yapışmayı Yapılandır.."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "Yerel Koordlar"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr "Dönüştürme İletişim Kutusu.."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "1 Viewport"
-msgstr "1 Görünüm"
+msgstr "1 Görüntükapısı"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports"
-msgstr "2 Görünüm"
+msgstr "2 Görüntükapısı"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "2 Viewports (Alt)"
-msgstr "2 Görünüm (Alt)"
+msgstr "2 Görüntükapısı (Alt)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports"
-msgstr "3 Görünüm"
+msgstr "3 Görüntükapısı"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "3 Viewports (Alt)"
-msgstr "3 Görünüm (Alt)"
+msgstr "3 Görüntükapısı (Alt)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "4 Viewports"
-msgstr "4 Görünüm"
+msgstr "4 Görüntükapısı"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Origin"
@@ -5287,6 +5405,10 @@ msgid "Settings"
msgstr "Ayarlar"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr "Yapışma Ayarları"
@@ -5304,7 +5426,7 @@ msgstr "Yapışmayı Ölçekle (%):"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Viewport Settings"
-msgstr "Görüntüleme Ayarları"
+msgstr "Görüntükapısı Ayarları"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Perspective FOV (deg.):"
@@ -5348,7 +5470,7 @@ msgstr "Sonrası"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "ERROR: Couldn't load frame resource!"
-msgstr "SORUN: Kare kaynağı yüklenemedi!"
+msgstr "HATA: Kare kaynağı yüklenemedi!"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Frame"
@@ -5356,7 +5478,7 @@ msgstr "Çerçeve Ekle"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Resource clipboard is empty or not a texture!"
-msgstr "Kaynak bellem boÅŸ ya da bu bir doku deÄŸil!"
+msgstr "Kaynak panosu boÅŸ ya da bir doku deÄŸil!"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Paste Frame"
@@ -5420,7 +5542,7 @@ msgstr "Dikdörtgen Bölgesini Ayarla"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Snap Mode:"
-msgstr "Yapışma Biçimi:"
+msgstr "Yapışma Kipi:"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "<None>"
@@ -5436,7 +5558,7 @@ msgstr "Izgara Yapışması"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Auto Slice"
-msgstr "Kendinden Dilimle"
+msgstr "Otomatik Dilimle"
#: editor/plugins/texture_region_editor_plugin.cpp
msgid "Offset:"
@@ -5493,11 +5615,11 @@ msgstr "Tema düzenleme menüsü."
#: editor/plugins/theme_editor_plugin.cpp
msgid "Add Class Items"
-msgstr "Bölüt Öğeleri Ekle"
+msgstr "Sınıf Öğeleri Ekle"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Remove Class Items"
-msgstr "Bölüt Öğelerini Kaldır"
+msgstr "Sınıf Öğelerini Kaldır"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Create Empty Template"
@@ -5669,6 +5791,11 @@ msgid "Merge from scene?"
msgstr "Sahneden birleÅŸtirilsin mi?"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet .."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "Sahneden OluÅŸtur"
@@ -5678,7 +5805,11 @@ msgstr "Sahneden BirleÅŸtir"
#: editor/plugins/tile_set_editor_plugin.cpp editor/script_editor_debugger.cpp
msgid "Error"
-msgstr "Sorun"
+msgstr "Hata"
+
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "Vazgeç"
#: editor/project_export.cpp
msgid "Runnable"
@@ -5803,10 +5934,6 @@ msgid "Imported Project"
msgstr "İçe Aktarılan Proje"
#: editor/project_manager.cpp
-msgid " "
-msgstr " "
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr "Projenizi isimlendirmek iyi bir fikir olabilir."
@@ -5860,7 +5987,7 @@ msgstr "Proje Adı:"
#: editor/project_manager.cpp
msgid "Create folder"
-msgstr "Klasöre Oluştur"
+msgstr "Klasör Oluştur"
#: editor/project_manager.cpp
msgid "Project Path:"
@@ -5926,7 +6053,7 @@ msgid ""
"You are about the scan %s folders for existing Godot projects. Do you "
"confirm?"
msgstr ""
-"Var olan Godot projeleri için %s dizin taraması yapıyorsunuz. Onaylıyor "
+"Var olan Godot projeleri için %s klasör taraması yapıyorsunuz. Onaylıyor "
"musunuz?"
#: editor/project_manager.cpp
@@ -5939,7 +6066,7 @@ msgstr "Tara"
#: editor/project_manager.cpp
msgid "Select a Folder to Scan"
-msgstr "Tarama için bir Dizin Seç"
+msgstr "Tarama İçin Bir Klasör Seç"
#: editor/project_manager.cpp
msgid "New Project"
@@ -5966,18 +6093,20 @@ msgid ""
"You don't currently have any projects.\n"
"Would you like to explore the official example projects in the Asset Library?"
msgstr ""
+"Herhangi bir projen yok.\n"
+"Varlık Kütüphanesi'ndeki resmî örnek projeleri incelemek ister misin?"
#: editor/project_settings_editor.cpp
msgid "Key "
-msgstr "Dokunaç "
+msgstr "Anahtar "
#: editor/project_settings_editor.cpp
msgid "Joy Button"
-msgstr "Eğlence Düğmesi"
+msgstr "Oyun Kolu Düğmesi"
#: editor/project_settings_editor.cpp
msgid "Joy Axis"
-msgstr "EÄŸlence Ekseni"
+msgstr "Oyun Kolu Ekseni"
#: editor/project_settings_editor.cpp
msgid "Mouse Button"
@@ -6017,7 +6146,7 @@ msgstr "Bir Dokunaca Basın.."
#: editor/project_settings_editor.cpp
msgid "Mouse Button Index:"
-msgstr "Fare Düğme Dizini:"
+msgstr "Fare Düğmesi İndeksi:"
#: editor/project_settings_editor.cpp
msgid "Left Button"
@@ -6062,7 +6191,7 @@ msgstr "DeÄŸiÅŸtir"
#: editor/project_settings_editor.cpp
msgid "Joypad Axis Index:"
-msgstr "Oyun kolu Ekseni İndeksi:"
+msgstr "Oyun Kolu Ekseni İndeksi:"
#: editor/project_settings_editor.cpp
msgid "Axis"
@@ -6070,11 +6199,12 @@ msgstr "Eksen"
#: editor/project_settings_editor.cpp
msgid "Joypad Button Index:"
-msgstr "Oyun kolu Düğme İndeksi:"
+msgstr "Oyun Kolu Düğmesi İndeksi:"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "GiriÅŸ Eylemi Ekle"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "Giriş Eylemi Olayını Sil"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6141,8 +6271,12 @@ msgid "Already existing"
msgstr "Zaten mevcut"
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "GiriÅŸ Eylemi Ekle"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
-msgstr "Ayarları kaydetme sorunu."
+msgstr "Ayarlar kaydedilirken hata."
#: editor/project_settings_editor.cpp
msgid "Settings saved OK."
@@ -6206,7 +6340,7 @@ msgstr "Şunun Üzerine Yaz.."
#: editor/project_settings_editor.cpp
msgid "Input Map"
-msgstr "EÅŸleme Gir"
+msgstr "Girdi Haritası"
#: editor/project_settings_editor.cpp
msgid "Action:"
@@ -6218,7 +6352,7 @@ msgstr "Aygıt:"
#: editor/project_settings_editor.cpp
msgid "Index:"
-msgstr "Dizin:"
+msgstr "İndeks:"
#: editor/project_settings_editor.cpp
msgid "Localization"
@@ -6242,7 +6376,7 @@ msgstr "Kaynaklar:"
#: editor/project_settings_editor.cpp
msgid "Remaps by Locale:"
-msgstr "Yerel Ayara Göre Yeniden Eşlemeler:"
+msgstr "Yerele Göre Atamalar:"
#: editor/project_settings_editor.cpp
msgid "Locale"
@@ -6274,7 +6408,7 @@ msgstr "KendindenYükle"
#: editor/property_editor.cpp
msgid "Pick a Viewport"
-msgstr "Bir Görünüm Seçin"
+msgstr "Bir Görüntükapısı Seçin"
#: editor/property_editor.cpp
msgid "Ease In"
@@ -6317,6 +6451,10 @@ msgid "New Script"
msgstr "Yeni Betik"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr "Benzersiz Yap"
@@ -6330,11 +6468,11 @@ msgstr "Şuna Dönüştür %s"
#: editor/property_editor.cpp
msgid "Error loading file: Not a resource!"
-msgstr "Dosya yüklenirken sorun oluştu: Bir kaynak değil!"
+msgstr "Dosya yüklenirken hata: Bir kaynak değil!"
#: editor/property_editor.cpp
msgid "Selected node is not a Viewport!"
-msgstr "Seçili düğüm bir Görüntükapısı değil!"
+msgstr "Seçili düğüm bir Viewport değil!"
#: editor/property_editor.cpp
msgid "Pick a Node"
@@ -6348,29 +6486,30 @@ msgstr "Bit %d, val %d."
msgid "On"
msgstr "Açık"
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "BoÅŸ Ekle"
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "Ayarla"
#: editor/property_editor.cpp
msgid "Properties:"
-msgstr "Özellikleri:"
-
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr "Bölümler:"
+msgstr "Özellikler:"
#: editor/property_selector.cpp
msgid "Select Property"
-msgstr "Nitelik Seç"
+msgstr "Özellik Seç"
#: editor/property_selector.cpp
msgid "Select Virtual Method"
-msgstr "Sanal Metod Seç"
+msgstr "Sanal Metot Seç"
#: editor/property_selector.cpp
msgid "Select Method"
-msgstr "Yöntem Seç"
+msgstr "Metot Seç"
#: editor/pvrtc_compress.cpp
msgid "Could not execute PVRTC tool:"
@@ -6427,7 +6566,7 @@ msgstr "Sahneleri örneklemek için ebeveyn yok."
#: editor/scene_tree_dock.cpp
msgid "Error loading scene from %s"
-msgstr "%s Adlı sahne yüklenirken sorun oluştu"
+msgstr "Şuradan: %s sahne yüklenirken hata"
#: editor/scene_tree_dock.cpp
msgid "Ok"
@@ -6459,7 +6598,7 @@ msgstr "Düğümleri Ataya Taşı"
#: editor/scene_tree_dock.cpp
msgid "Duplicate Node(s)"
-msgstr "Çoğalt Düğüm(leri)"
+msgstr "Düğüm(leri) Çoğalt"
#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)?"
@@ -6499,7 +6638,7 @@ msgstr "Yad bir sahnedeki düğümler üzerinde çalışamaz!"
#: editor/scene_tree_dock.cpp
msgid "Can't operate on nodes the current scene inherits from!"
-msgstr "Geçerli sahneden kalıt aldığı düğümler üzerinde çalışamaz!"
+msgstr "Geçerli sahneden miras alınan düğümler üzerinde işlem yapılamaz!"
#: editor/scene_tree_dock.cpp
msgid "Remove Node(s)"
@@ -6514,11 +6653,11 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Error saving scene."
-msgstr "Sahne kaydedilirken sorun oluÅŸtu."
+msgstr "Sahne kaydedilirken hata."
#: editor/scene_tree_dock.cpp
msgid "Error duplicating scene to save it."
-msgstr "Kaydetmek için sahne çoğaltılırken sorun oluştu."
+msgstr "Kaydetmek için sahne çoğaltılırken hata."
#: editor/scene_tree_dock.cpp
msgid "Sub-Resources:"
@@ -6581,8 +6720,8 @@ msgid ""
"Instance a scene file as a Node. Creates an inherited scene if no root node "
"exists."
msgstr ""
-"Sahne dosyasıni Düğüm olarak örneklendirin. Kök düğüm yoksa kalıtsal bir "
-"sahne oluÅŸturur."
+"Bir sahne dosyasını Düğüm olarak örneklendirin. Kök düğüm yoksa miras "
+"alınmış bir sahne oluşturur."
#: editor/scene_tree_dock.cpp
msgid "Filter nodes"
@@ -6606,7 +6745,7 @@ msgstr "Yerel"
#: editor/scene_tree_dock.cpp
msgid "Clear Inheritance? (No Undo!)"
-msgstr "Kalıt Silinsin mi? (Geri Alınamaz!)"
+msgstr "Miras Silinsin mi? (Geri Alınamaz!)"
#: editor/scene_tree_dock.cpp
msgid "Clear!"
@@ -6706,7 +6845,7 @@ msgstr "Hata - dosyasisteminde betik oluşturulamadı."
#: editor/script_create_dialog.cpp
msgid "Error loading script from %s"
-msgstr "Yazı tipi %s yüklerken sorun oluştu"
+msgstr "Şuradan: %s betik yüklenirken hata"
#: editor/script_create_dialog.cpp
msgid "N/A"
@@ -6746,7 +6885,7 @@ msgstr "Geçersiz Yol"
#: editor/script_create_dialog.cpp
msgid "Invalid class name"
-msgstr "Geçersiz bölüt adı"
+msgstr "Geçersiz sınıf ismi"
#: editor/script_create_dialog.cpp
msgid "Invalid inherited parent name or path"
@@ -6810,7 +6949,7 @@ msgstr "Uyarı"
#: editor/script_editor_debugger.cpp
msgid "Error:"
-msgstr "Sorun:"
+msgstr "Hata:"
#: editor/script_editor_debugger.cpp
msgid "Source:"
@@ -6826,7 +6965,7 @@ msgstr "Grafiği görüntülemek için listeden bir veya daha fazla öğe seçin
#: editor/script_editor_debugger.cpp
msgid "Errors"
-msgstr "Sorunlar"
+msgstr "Hatalar"
#: editor/script_editor_debugger.cpp
msgid "Child Process Connected"
@@ -6850,7 +6989,7 @@ msgstr "DeÄŸiÅŸken"
#: editor/script_editor_debugger.cpp
msgid "Errors:"
-msgstr "Sorunlar:"
+msgstr "Hatalar:"
#: editor/script_editor_debugger.cpp
msgid "Stack Trace (if applicable):"
@@ -6924,6 +7063,10 @@ msgstr "Ağaçtan Ayarla"
msgid "Shortcuts"
msgstr "Kısayollar"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "Işın Çapını Değiştir"
@@ -6972,15 +7115,55 @@ msgstr "Parçacık AABB Değişimi"
msgid "Change Probe Extents"
msgstr "DeÅŸme GeniÅŸlemesini DeÄŸiÅŸtir"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Yol Noktasını Kaldır"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Platform"
+msgstr "Düzleme Tıpkıla.."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "Kütüphane"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "GDYerel"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr "Kütüphane"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr "Durum"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr "Kütüphaneler: "
@@ -7029,7 +7212,7 @@ msgstr "Geçersiz örnek sözlük biçemi (@path 'taki kod geçersiz)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary (invalid subclasses)"
-msgstr "Geçersiz örnek sözlüğü (geçersiz altbölütler)"
+msgstr "Geçersiz örnek sözlüğü (geçersiz altsınıflar)"
#: modules/gdscript/gdscript_functions.cpp
msgid "Object can't provide a length."
@@ -7297,7 +7480,7 @@ msgstr "Alıcı Özellik Ekle"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Setter Property"
-msgstr "Düzenleyici Özellik Ekle"
+msgstr "Atayıcı Özellik Ekle"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Base Type"
@@ -7449,7 +7632,7 @@ msgstr "Yineleyici geçersiz durumda: "
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name."
-msgstr "Geçersiz dizin özelliği adı."
+msgstr "Geçersiz indeks özelliği ismi."
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Base object is not a Node!"
@@ -7461,7 +7644,7 @@ msgstr "Yol bir düğüme çıkmıyor!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name '%s' in node %s."
-msgstr "%s düğümünde geçersiz dizin özelliği adı '%s'."
+msgstr "%s düğümünde geçersiz indeks özelliği ismi '%s'."
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
@@ -7481,15 +7664,15 @@ msgstr "VariableSet betikte bulunamadı: "
#: modules/visual_script/visual_script_nodes.cpp
msgid "Custom node has no _step() method, can't process graph."
-msgstr "Özel düğüm _step() yöntemine sahip değil, çizgeyi işleyemez."
+msgstr "Özel düğüm _step() metoduna sahip değil, grafiği işleyemez."
#: modules/visual_script/visual_script_nodes.cpp
msgid ""
"Invalid return value from _step(), must be integer (seq out), or string "
"(error)."
msgstr ""
-"_step()'ten geçersiz dönüş değeri, tam sayı (dizi çıkışı) ya da dizgi "
-"(sorunu) olmalı."
+"_step()'ten geçersiz dönüş değeri, tam sayı (dizi çıkışı) ya da dize "
+"(hatası) olmalı."
#: platform/javascript/export/export.cpp
msgid "Run in Browser"
@@ -7574,7 +7757,7 @@ msgstr ""
msgid ""
"A texture with the shape of the light must be supplied to the 'texture' "
"property."
-msgstr "Işık yüzeyli bir doku, \"doku\" niteliğine sağlanmalıdır."
+msgstr "Işık yüzeyli bir doku, 'texture' özelliğine sağlanmalıdır."
#: scene/2d/light_occluder_2d.cpp
msgid ""
@@ -7637,7 +7820,7 @@ msgstr ""
#: scene/2d/remote_transform_2d.cpp
msgid "Path property must point to a valid Node2D node to work."
msgstr ""
-"Yol niteliği çalışması için geçerli bir Node2D düğümüne işaret etmelidir."
+"Yol özelliği çalışabilmesi için geçerli bir Node2D düğümüne işaret etmelidir."
#: scene/2d/visibility_notifier_2d.cpp
msgid ""
@@ -7678,6 +7861,25 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr "ARVROrigin bir ARVRCamera çocuk düğümü gerektirir"
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "Örüntüler Haritalanıyor"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "Örüntüler Haritalanıyor"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr "Haritalama Bitiriliyor"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "Örüntüler Haritalanıyor"
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7715,10 +7917,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr "Örüntüler Haritalanıyor"
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr "Haritalama Bitiriliyor"
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7752,7 +7950,7 @@ msgstr ""
#: scene/3d/remote_transform.cpp
msgid "Path property must point to a valid Spatial node to work."
msgstr ""
-"Yol niteliği, çalışmak için geçerli bir Spatial düğümü işaret etmelidir."
+"Yol özelliği, çalışmak için geçerli bir Spatial düğümüne işaret etmelidir."
#: scene/3d/scenario_fx.cpp
msgid ""
@@ -7786,10 +7984,6 @@ msgid "Add current color as a preset"
msgstr "Şuanki rengi bir önayar olarak kaydet"
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "Vazgeç"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Uyarı!"
@@ -7798,9 +7992,8 @@ msgid "Please Confirm..."
msgstr "Lütfen Doğrulayın..."
#: scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select this Folder"
-msgstr "Yöntem Seç"
+msgstr "Bu Klasörü Seç"
#: scene/gui/popup.cpp
msgid ""
@@ -7808,7 +8001,7 @@ msgid ""
"functions. Making them visible for editing is fine though, but they will "
"hide upon running."
msgstr ""
-"Açılır pencereler popup() veya popup*() işlevlerini çağırmadıkça ön tanımlı "
+"Açılır pencereler popup() veya popup*() işlevleri çağrılmadıkça varsayılan "
"olarak gizlenecektir. Onları düzenleme için görünür kılmak da iyidir, ancak "
"çalışırken gizlenecekler."
@@ -7831,7 +8024,7 @@ msgid ""
"Default Environment as specified in Project Setings (Rendering -> Viewport -"
"> Default Environment) could not be loaded."
msgstr ""
-"Proje Ayarlarında tanımlanmış Varsayılan Ortam (İşleme -> Görüş Alanı -> "
+"Proje Ayarlarında tanımlanmış Varsayılan Ortam (İşleme -> Görüntükapısı -> "
"Varsayılan Ortam) Yüklenemedi."
#: scene/main/viewport.cpp
@@ -7848,7 +8041,7 @@ msgstr ""
#: scene/resources/dynamic_font.cpp
msgid "Error initializing FreeType."
-msgstr "FreeType başlatılırken sorun oluştu."
+msgstr "FreeType başlatılırken hata."
#: scene/resources/dynamic_font.cpp
msgid "Unknown font format."
@@ -7862,6 +8055,30 @@ msgstr "Yazıtipi yükleme hatası."
msgid "Invalid font size."
msgstr "Geçersiz yazıtipi boyutu."
+#~ msgid "Move Add Key"
+#~ msgstr "Hareket Anahtar Ekle"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Üyelik Oluştur"
+
+#~ msgid "List:"
+#~ msgstr "Liste:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "Yayma Maskesini Ayarla"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "Yayıcıyı Temizle"
+
+#~ msgid "Fold Line"
+#~ msgstr "Satırı Katla"
+
+#~ msgid " "
+#~ msgstr " "
+
+#~ msgid "Sections:"
+#~ msgstr "Bölümler:"
+
#, fuzzy
#~ msgid ""
#~ "\n"
@@ -8388,9 +8605,6 @@ msgstr "Geçersiz yazıtipi boyutu."
#~ msgid "Making BVH"
#~ msgstr "BVH Yapıyor"
-#~ msgid "Transfer to Lightmaps:"
-#~ msgstr "Işık Haritalarına Aktar:"
-
#~ msgid "Allocating Texture #"
#~ msgstr "Doku Paylaşımı #"
@@ -8534,9 +8748,6 @@ msgstr "Geçersiz yazıtipi boyutu."
#~ msgid "Del"
#~ msgstr "Sil"
-#~ msgid "Copy To Platform.."
-#~ msgstr "Düzleme Tıpkıla.."
-
#~ msgid "just pressed"
#~ msgstr "yeni basıldı"
diff --git a/editor/translations/uk.po b/editor/translations/uk.po
index 2a078b98dd..7d6eb9ce9f 100644
--- a/editor/translations/uk.po
+++ b/editor/translations/uk.po
@@ -4,12 +4,13 @@
# This file is distributed under the same license as the Godot source code.
#
# Aleksandr <XpycT.TOP@gmail.com>, 2017.
+# Гидеон Теон <t.kudely94@gmail.com>, 2017.
# ÐœÐ°Ñ€Ñ Ð¯Ð¼Ð±Ð°Ñ€ <mjambarmeta@gmail.com>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
-"PO-Revision-Date: 2017-11-28 20:31+0000\n"
+"PO-Revision-Date: 2017-12-20 15:43+0000\n"
"Last-Translator: ÐœÐ°Ñ€Ñ Ð¯Ð¼Ð±Ð°Ñ€ <mjambarmeta@gmail.com>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/"
"godot/uk/>\n"
@@ -18,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 2.18-dev\n"
+"X-Generator: Weblate 2.18\n"
#: editor/animation_editor.cpp
msgid "Disabled"
@@ -29,8 +30,9 @@ msgid "All Selection"
msgstr "УÑÑ– вибранні елементи"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "ПоÑунути ключ"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Змінити значеннÑ"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -38,10 +40,11 @@ msgstr "Змінити перехід"
#: editor/animation_editor.cpp
msgid "Anim Change Transform"
-msgstr "Змінити положеннÑ"
+msgstr "Змінити перетвореннÑ"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Змінити значеннÑ"
#: editor/animation_editor.cpp
@@ -106,6 +109,7 @@ msgid "Duplicate Selection"
msgstr "Дублювати виділене"
#: editor/animation_editor.cpp
+#, fuzzy
msgid "Duplicate Transposed"
msgstr "ПереміÑтити дублікат"
@@ -114,16 +118,17 @@ msgid "Remove Selection"
msgstr "Вилучити виділене"
#: editor/animation_editor.cpp
+#, fuzzy
msgid "Continuous"
msgstr "Ðевгаваючий"
#: editor/animation_editor.cpp
msgid "Discrete"
-msgstr "ПереривчаÑтий"
+msgstr "ДиÑкретний"
#: editor/animation_editor.cpp
msgid "Trigger"
-msgstr "Курок"
+msgstr "Триґер"
#: editor/animation_editor.cpp
msgid "Anim Add Key"
@@ -147,7 +152,7 @@ msgstr "Перейти до наÑтупного кроку"
#: editor/animation_editor.cpp
msgid "Goto Prev Step"
-msgstr "ПовернутиÑÑ Ð´Ð¾ попереднього кроку"
+msgstr "ПовернутиÑÑ Ð´Ð¾ попереднього кроку"
#: editor/animation_editor.cpp editor/plugins/curve_editor_plugin.cpp
#: editor/property_editor.cpp
@@ -188,11 +193,11 @@ msgstr "ÐžÑ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð°Ð½Ñ–Ð¼Ð°Ñ†Ñ–Ñ—"
#: editor/animation_editor.cpp
msgid "Create NEW track for %s and insert key?"
-msgstr "Створити нову доріжку Ð´Ð»Ñ %s Ñ– вÑтавте ключ?"
+msgstr "Створити нову доріжку Ð´Ð»Ñ %s Ñ– вÑтавити ключ?"
#: editor/animation_editor.cpp
msgid "Create %d NEW tracks and insert keys?"
-msgstr "Створити %d нові треки Ñ– вÑтавити ключі?"
+msgstr "Створити %d нові доріжки Ñ– вÑтавити ключі?"
#: editor/animation_editor.cpp editor/create_dialog.cpp
#: editor/editor_audio_buses.cpp editor/plugins/abstract_polygon_2d_editor.cpp
@@ -224,6 +229,7 @@ msgid "Change Anim Loop"
msgstr "Змінити цикл анімації"
#: editor/animation_editor.cpp
+#, fuzzy
msgid "Anim Create Typed Value Key"
msgstr "Створити типовий ключ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ð½Ñ–Ð¼Ð°Ñ†Ñ–Ñ—"
@@ -535,8 +541,9 @@ msgid "Connecting Signal:"
msgstr "ÐŸÑ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñигналу:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñки"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "З'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ '%s' Ð´Ð»Ñ %s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -552,7 +559,8 @@ msgid "Signals"
msgstr "Сигнали"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "Створити новий"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -567,7 +575,7 @@ msgstr "Ðещодавні:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "Пошук:"
@@ -608,6 +616,7 @@ msgstr ""
"Зміни набудуть чинноÑті піÑÐ»Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ."
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "ЗалежноÑті"
@@ -711,9 +720,10 @@ msgid "Delete selected files?"
msgstr "Видалити вибрані файли?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "Вилучити"
@@ -856,6 +866,11 @@ msgid "Rename Audio Bus"
msgstr "ÐŸÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð°ÑƒÐ´Ñ–Ð¾ шини"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "Перемкнути аудіо шину Ñоло"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "Перемкнути аудіо шину Ñоло"
@@ -885,11 +900,11 @@ msgstr "Вилучити ефект шини"
#: editor/editor_audio_buses.cpp
msgid "Audio Bus, Drag and Drop to rearrange."
-msgstr ""
+msgstr "Ðудіо шина, перетÑгнути, щоб змінити."
#: editor/editor_audio_buses.cpp
msgid "Solo"
-msgstr ""
+msgstr "Соло"
#: editor/editor_audio_buses.cpp
msgid "Mute"
@@ -897,273 +912,302 @@ msgstr "Вимкнути звук"
#: editor/editor_audio_buses.cpp
msgid "Bypass"
-msgstr ""
+msgstr "Обхід"
#: editor/editor_audio_buses.cpp
msgid "Bus options"
-msgstr ""
+msgstr "Опції шини"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
-msgstr ""
+msgstr "Дублювати"
#: editor/editor_audio_buses.cpp
msgid "Reset Volume"
-msgstr ""
+msgstr "Скинути гучніÑть"
#: editor/editor_audio_buses.cpp
msgid "Delete Effect"
msgstr "Видалити ефект"
#: editor/editor_audio_buses.cpp
-msgid "Add Audio Bus"
+msgid "Audio"
msgstr ""
#: editor/editor_audio_buses.cpp
+msgid "Add Audio Bus"
+msgstr "Додати аудіо шину"
+
+#: editor/editor_audio_buses.cpp
msgid "Master bus can't be deleted!"
-msgstr ""
+msgstr "МаÑтер шина не може бути видалена!"
#: editor/editor_audio_buses.cpp
msgid "Delete Audio Bus"
-msgstr ""
+msgstr "Видалити аудіо шину"
#: editor/editor_audio_buses.cpp
msgid "Duplicate Audio Bus"
-msgstr ""
+msgstr "Дублювати аудіо шину"
#: editor/editor_audio_buses.cpp
msgid "Reset Bus Volume"
-msgstr ""
+msgstr "Скинути гучніÑть шини"
#: editor/editor_audio_buses.cpp
msgid "Move Audio Bus"
-msgstr ""
+msgstr "ПереміÑтити аудіо шину"
#: editor/editor_audio_buses.cpp
msgid "Save Audio Bus Layout As.."
-msgstr ""
+msgstr "Зберегти макет аудіо шини Ñк.."
#: editor/editor_audio_buses.cpp
msgid "Location for New Layout.."
-msgstr ""
+msgstr "Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ макета..."
#: editor/editor_audio_buses.cpp
msgid "Open Audio Bus Layout"
-msgstr ""
+msgstr "Відкрити макет аудіо шини"
#: editor/editor_audio_buses.cpp
msgid "There is no 'res://default_bus_layout.tres' file."
-msgstr ""
+msgstr "Файл 'res: //default_bus_layout.tres' не знайдено."
#: editor/editor_audio_buses.cpp
msgid "Invalid file, not an audio bus layout."
-msgstr ""
+msgstr "ÐеприпуÑтимий файл, це не макет аудіо-шини."
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
-msgstr ""
+msgstr "Додати шину"
#: editor/editor_audio_buses.cpp
msgid "Create a new Bus Layout."
-msgstr ""
+msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ макету шини."
#: editor/editor_audio_buses.cpp editor/property_editor.cpp
#: editor/script_create_dialog.cpp
msgid "Load"
-msgstr ""
+msgstr "Завантажити"
#: editor/editor_audio_buses.cpp
msgid "Load an existing Bus Layout."
-msgstr ""
+msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ–Ñнуючого макета шини."
#: editor/editor_audio_buses.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Save As"
-msgstr ""
+msgstr "Зберегти Як"
#: editor/editor_audio_buses.cpp
msgid "Save this Bus Layout to a file."
-msgstr ""
+msgstr "Зберегти цей макет шини у файлі."
#: editor/editor_audio_buses.cpp editor/import_dock.cpp
msgid "Load Default"
-msgstr ""
+msgstr "Завантажити за промовчаннÑм"
#: editor/editor_audio_buses.cpp
msgid "Load the default Bus Layout."
-msgstr ""
+msgstr "Завантажити макет шини за промовчаннÑм."
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
-msgstr ""
+msgstr "Ðекоректна назва."
#: editor/editor_autoload_settings.cpp
msgid "Valid characters:"
-msgstr ""
+msgstr "ПрипуÑтимі Ñимволи:"
#: editor/editor_autoload_settings.cpp
msgid "Invalid name. Must not collide with an existing engine class name."
msgstr ""
+"ÐеприпуÑтима назва. Ðе повинно конфліктувати з Ñ–Ñнуючим ім'Ñм клаÑу рушіÑ."
#: editor/editor_autoload_settings.cpp
msgid "Invalid name. Must not collide with an existing buit-in type name."
msgstr ""
+"ÐеприпуÑтима назва. Ðе повинно ÑтикатиÑÑ Ð· Ñ–Ñнуючим вбудованим ім'Ñм типу."
#: editor/editor_autoload_settings.cpp
msgid "Invalid name. Must not collide with an existing global constant name."
msgstr ""
+"Ðеправильне ім'Ñ. Ðе повинно збігатиÑÑŒ з іменем Ñ–Ñнуючої глобальної "
+"конÑтанти."
#: editor/editor_autoload_settings.cpp
msgid "Invalid Path."
-msgstr ""
+msgstr "Ðеправильний шлÑÑ…."
#: editor/editor_autoload_settings.cpp
msgid "File does not exist."
-msgstr ""
+msgstr "Файл не Ñ–Ñнує."
#: editor/editor_autoload_settings.cpp
msgid "Not in resource path."
-msgstr ""
+msgstr "Ðе в реÑурÑному шлÑху."
#: editor/editor_autoload_settings.cpp
msgid "Add AutoLoad"
-msgstr ""
+msgstr "Додати автозавантаженнÑ"
#: editor/editor_autoload_settings.cpp
msgid "Autoload '%s' already exists!"
-msgstr ""
+msgstr "ÐÐ²Ñ‚Ð¾Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ '%s' вже Ñ–Ñнує!"
#: editor/editor_autoload_settings.cpp
msgid "Rename Autoload"
-msgstr ""
+msgstr "Перейменувати автозавантаженнÑ"
#: editor/editor_autoload_settings.cpp
msgid "Toggle AutoLoad Globals"
-msgstr ""
+msgstr "Увімкнути Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñкриптів"
#: editor/editor_autoload_settings.cpp
msgid "Move Autoload"
-msgstr ""
+msgstr "ПереміÑтити автозавантаженнÑ"
#: editor/editor_autoload_settings.cpp
msgid "Remove Autoload"
-msgstr ""
+msgstr "Видалити автозавантаженнÑ"
#: editor/editor_autoload_settings.cpp
msgid "Enable"
-msgstr ""
+msgstr "Ðктивувати"
#: editor/editor_autoload_settings.cpp
msgid "Rearrange Autoloads"
-msgstr ""
+msgstr "Змінити порÑдок автозавантажень"
#: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp
#: scene/gui/file_dialog.cpp
msgid "Path:"
-msgstr ""
+msgstr "ШлÑÑ…:"
#: editor/editor_autoload_settings.cpp
msgid "Node Name:"
-msgstr ""
+msgstr "Ім'Ñ Ð’ÑƒÐ·Ð»Ð°:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
-msgstr ""
+msgstr "Ім'Ñ"
#: editor/editor_autoload_settings.cpp
msgid "Singleton"
-msgstr ""
-
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
+msgstr "Одинак (шаблон проектуваннÑ)"
#: editor/editor_data.cpp
msgid "Updating Scene"
-msgstr ""
+msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñцени"
#: editor/editor_data.cpp
msgid "Storing local changes.."
-msgstr ""
+msgstr "Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ñ… змін.."
#: editor/editor_data.cpp
msgid "Updating scene.."
+msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñцени.."
+
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
msgstr ""
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
-msgstr ""
+msgstr "БудьлаÑка, виберіть Ñпочатку базову каталог"
#: editor/editor_dir_dialog.cpp
msgid "Choose a Directory"
-msgstr ""
+msgstr "Виберіть каталог"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
msgid "Create Folder"
-msgstr ""
+msgstr "Створити Теку"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp
#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp
#: scene/gui/file_dialog.cpp
msgid "Name:"
-msgstr ""
+msgstr "Ім'Ñ:"
#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp
msgid "Could not create folder."
-msgstr ""
+msgstr "Ðеможливо Ñтворити теку."
#: editor/editor_dir_dialog.cpp
msgid "Choose"
-msgstr ""
+msgstr "Оберіть"
#: editor/editor_export.cpp
msgid "Storing File:"
-msgstr ""
+msgstr "Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ:"
#: editor/editor_export.cpp
msgid "Packing"
-msgstr ""
+msgstr "ПакуваннÑ"
#: editor/editor_export.cpp platform/javascript/export/export.cpp
msgid "Template file not found:\n"
-msgstr ""
+msgstr "Файл шаблону не знайдено:\n"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "File Exists, Overwrite?"
-msgstr ""
+msgstr "Файл Ñ–Ñнує, перезапиÑати його?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "Перейти до батьківÑької теки"
+msgstr "Вибрати поточну теку"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "Копіювати шлÑÑ…"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "Показати в файловому менеджері"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "Створити теку.."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "Оновити"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
+#, fuzzy
msgid "All Recognized"
-msgstr ""
+msgstr "УÑе розпізнано"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Files (*)"
-msgstr ""
+msgstr "УÑÑ– фали (*)"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a File"
-msgstr ""
+msgstr "Відкрити файл"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open File(s)"
-msgstr ""
+msgstr "Відкрити файл(и)"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a Directory"
-msgstr ""
+msgstr "Відкрити каталог"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Open a File or Directory"
-msgstr ""
+msgstr "Відкрити файл або каталог"
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
@@ -1188,10 +1232,6 @@ msgid "Go Up"
msgstr "Вгору"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "Оновити"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "Переключати приховані файли"
@@ -1342,136 +1382,142 @@ msgid ""
"There is currently no description for this property. Please help us by "
"[color=$color][url=$url]contributing one[/url][/color]!"
msgstr ""
+"Ðа данний момент Ð¾Ð¿Ð¸Ñ Ñ†Ñ–Ñ”Ñ— влаÑтивоÑті відÑутній. БудьлаÑка, [color=$color]"
+"[url=$url]допоможіть нам[/url][/color]!"
#: editor/editor_help.cpp
msgid "Methods"
-msgstr ""
+msgstr "Методи"
#: editor/editor_help.cpp
msgid "Method Description:"
-msgstr ""
+msgstr "ÐžÐ¿Ð¸Ñ Ð¼ÐµÑ‚Ð¾Ð´Ñƒ:"
#: editor/editor_help.cpp
msgid ""
"There is currently no description for this method. Please help us by [color="
"$color][url=$url]contributing one[/url][/color]!"
msgstr ""
+"Ðа данний момент Ð¾Ð¿Ð¸Ñ Ñ†ÑŒÐ¾Ð³Ð¾ методу відÑутній. БудьлаÑка, [color=$color][url="
+"$url]допоможіть нам[/url][/color]!"
#: editor/editor_help.cpp
msgid "Search Text"
-msgstr ""
+msgstr "Шукати текÑÑ‚"
#: editor/editor_log.cpp
msgid "Output:"
-msgstr ""
+msgstr "Вивід:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
-msgstr ""
+msgstr "ОчиÑтити"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Error saving resource!"
-msgstr ""
+msgstr "Помилка Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ€ÐµÑурÑу!"
#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp
msgid "Save Resource As.."
-msgstr ""
+msgstr "Зберегти реÑÑƒÑ€Ñ Ñк.."
#: editor/editor_node.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "I see.."
-msgstr ""
+msgstr "Бачу.."
#: editor/editor_node.cpp
msgid "Can't open file for writing:"
-msgstr ""
+msgstr "Ðеможливо відкрити файл Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу:"
#: editor/editor_node.cpp
msgid "Requested file format unknown:"
-msgstr ""
+msgstr "Ðевідомий формат файлу:"
#: editor/editor_node.cpp
msgid "Error while saving."
-msgstr ""
+msgstr "Помилка при збереженні."
#: editor/editor_node.cpp
msgid "Can't open '%s'."
-msgstr ""
+msgstr "Ðеможливо відкрити '%s'."
#: editor/editor_node.cpp
msgid "Error while parsing '%s'."
-msgstr ""
+msgstr "Помилка при ÑинтакÑичному аналізі '%s'."
#: editor/editor_node.cpp
msgid "Unexpected end of file '%s'."
-msgstr ""
+msgstr "Ðеочикуваний кінець Ñ€Ñдку '%s'."
#: editor/editor_node.cpp
msgid "Missing '%s' or its dependencies."
-msgstr ""
+msgstr "ВідÑутнє '%s', або його залежноÑті."
#: editor/editor_node.cpp
msgid "Error while loading '%s'."
-msgstr ""
+msgstr "Помилка при завантаженні '%s'."
#: editor/editor_node.cpp
msgid "Saving Scene"
-msgstr ""
+msgstr "Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñцени"
#: editor/editor_node.cpp
msgid "Analyzing"
-msgstr ""
+msgstr "Ðналіз"
#: editor/editor_node.cpp
msgid "Creating Thumbnail"
-msgstr ""
+msgstr "Створити екÑкіз"
#: editor/editor_node.cpp
msgid "This operation can't be done without a tree root."
-msgstr ""
+msgstr "Ð¦Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð½Ðµ може бути виконана без кореню дерева."
#: editor/editor_node.cpp
msgid ""
"Couldn't save scene. Likely dependencies (instances) couldn't be satisfied."
msgstr ""
+"Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ Ñцену. Вірогідно, залежноÑті (екземплÑри) не задоволені."
#: editor/editor_node.cpp
msgid "Failed to load resource."
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ реÑурÑ."
#: editor/editor_node.cpp
msgid "Can't load MeshLibrary for merging!"
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ бібліотеку Ñіток Ð´Ð»Ñ Ð·Ð»Ð¸Ñ‚Ñ‚Ñ!"
#: editor/editor_node.cpp
msgid "Error saving MeshLibrary!"
-msgstr ""
+msgstr "Помилка Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñіток!"
#: editor/editor_node.cpp
msgid "Can't load TileSet for merging!"
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ набір плиток текÑтур Ð´Ð»Ñ Ð·Ð»Ð¸Ñ‚Ñ‚Ñ!"
#: editor/editor_node.cpp
msgid "Error saving TileSet!"
-msgstr ""
+msgstr "Помилка Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð°Ð±Ð¾Ñ€Ñƒ тайлів!"
#: editor/editor_node.cpp
msgid "Error trying to save layout!"
-msgstr ""
+msgstr "Помилка при Ñпробі зберегти макет!"
#: editor/editor_node.cpp
msgid "Default editor layout overridden."
-msgstr ""
+msgstr "Макет редактора за промовчуваннÑм перевизначено."
#: editor/editor_node.cpp
msgid "Layout name not found!"
-msgstr ""
+msgstr "Ðазву макета не знайдено!"
#: editor/editor_node.cpp
msgid "Restored default layout to base settings."
-msgstr ""
+msgstr "Поновити макет за промовчуваннÑм до базових налаштувань."
#: editor/editor_node.cpp
msgid ""
@@ -1479,18 +1525,26 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
+"Цей реÑÑƒÑ€Ñ Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ до Ñцени, Ñкий було імпортовано, тому не можна "
+"редагувати.\n"
+"Будь лаÑка, прочитайте документацію, що ÑтоÑуютьÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñцен, щоб "
+"краще зрозуміти цей робочий процеÑ."
#: editor/editor_node.cpp
msgid ""
"This resource belongs to a scene that was instanced or inherited.\n"
"Changes to it will not be kept when saving the current scene."
msgstr ""
+"Цей реÑÑƒÑ€Ñ Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ до Ñцени, Ñка була інÑтаÑована або уÑпадкована.\n"
+"Зміни до неї не будуть зберігатиÑÑ Ð¿Ñ€Ð¸ збереженні поточної Ñцени."
#: editor/editor_node.cpp
msgid ""
"This resource was imported, so it's not editable. Change its settings in the "
"import panel and then re-import."
msgstr ""
+"Цей реÑÑƒÑ€Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¾, тому його не можна редагувати. Змініть Ñвої "
+"Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° панелі імпорту, а потім знову імпортуйте."
#: editor/editor_node.cpp
msgid ""
@@ -1499,6 +1553,10 @@ msgid ""
"Please read the documentation relevant to importing scenes to better "
"understand this workflow."
msgstr ""
+"Ð¦Ñ Ñцена була імпортована, тому зміни до неї не зберігатимутьÑÑ.\n"
+"ІнÑтанÑинґ або уÑÐ¿Ð°Ð´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ‚ÑŒ внеÑти зміни до нього.\n"
+"Будь лаÑка, прочитайте документацію, що ÑтоÑуєтьÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ñƒ Ñцен, щоб краще "
+"зрозуміти цей робочий процеÑ."
#: editor/editor_node.cpp
msgid ""
@@ -1506,46 +1564,49 @@ msgid ""
"Please read the documentation relevant to debugging to better understand "
"this workflow."
msgstr ""
+"Це віддалений об'єкт, тому зміни до нього не будуть збережені.\n"
+"Будь лаÑка, прочитайте документацію, що ÑтоÑуєтьÑÑ Ð½Ð°Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ, щоб краще "
+"зрозуміти цей робочий процеÑ."
#: editor/editor_node.cpp
msgid "Expand all properties"
-msgstr ""
+msgstr "Розгорнути вÑÑ– влаÑтивоÑті"
#: editor/editor_node.cpp
msgid "Collapse all properties"
-msgstr ""
+msgstr "Згорнути вÑÑ– влаÑтивоÑті"
#: editor/editor_node.cpp
msgid "Copy Params"
-msgstr ""
+msgstr "Копіювати параметри"
#: editor/editor_node.cpp
msgid "Paste Params"
-msgstr ""
+msgstr "Ð’Ñтавити параметри"
#: editor/editor_node.cpp editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Paste Resource"
-msgstr ""
+msgstr "Ð’Ñтавити реÑурÑ"
#: editor/editor_node.cpp
msgid "Copy Resource"
-msgstr ""
+msgstr "Копіювати реÑурÑ"
#: editor/editor_node.cpp
msgid "Make Built-In"
-msgstr ""
+msgstr "Зробити вбудованим"
#: editor/editor_node.cpp
msgid "Make Sub-Resources Unique"
-msgstr ""
+msgstr "Зробити Ñуб-реÑурÑи унікальними"
#: editor/editor_node.cpp
msgid "Open in Help"
-msgstr ""
+msgstr "Відкрити у довідці"
#: editor/editor_node.cpp
msgid "There is no defined scene to run."
-msgstr ""
+msgstr "Ðе Ñ–Ñнує визначеної Ñцени Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку."
#: editor/editor_node.cpp
msgid ""
@@ -1553,6 +1614,9 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
+"ÐÑ–Ñка головна Ñцена ніколи не була визначена, вибрати Ñ—Ñ—?\n"
+"Ви можете змінити це пізніше в \"ÐалаштуваннÑÑ… проекту\" в категорії "
+"\"Програма\"."
#: editor/editor_node.cpp
msgid ""
@@ -1560,6 +1624,9 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
+"Вибрана Ñцена '%s' не Ñ–Ñнує, вибрати дійÑну?\n"
+"Ви можете змінити це пізніше в \"ÐалаштуваннÑÑ… проекту\" в категорії "
+"\"Програма\"."
#: editor/editor_node.cpp
msgid ""
@@ -1567,343 +1634,364 @@ msgid ""
"You can change it later in \"Project Settings\" under the 'application' "
"category."
msgstr ""
+"Вибрана Ñцена '%s' не Ñ” файлом Ñцени, вибрати дійÑний файл?\n"
+"Ви можете змінити це пізніше в \"ÐалаштуваннÑÑ… проекту\" в категорії "
+"\"Програма\"."
#: editor/editor_node.cpp
msgid "Current scene was never saved, please save it prior to running."
msgstr ""
+"Поточна Ñцена ніколи не була збережена, будь лаÑка, збережіть Ñ—Ñ— до запуÑку."
#: editor/editor_node.cpp
msgid "Could not start subprocess!"
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити підпроцеÑ!"
#: editor/editor_node.cpp
msgid "Open Scene"
-msgstr ""
+msgstr "Відкрити Ñцену"
#: editor/editor_node.cpp
msgid "Open Base Scene"
-msgstr ""
+msgstr "Відкрити оÑновну Ñцену"
#: editor/editor_node.cpp
msgid "Quick Open Scene.."
-msgstr ""
+msgstr "Швидке Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñцени.."
#: editor/editor_node.cpp
msgid "Quick Open Script.."
-msgstr ""
+msgstr "Швидке Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñкрипту.."
#: editor/editor_node.cpp
msgid "Save & Close"
-msgstr ""
+msgstr "Зберегти та закрити"
#: editor/editor_node.cpp
msgid "Save changes to '%s' before closing?"
-msgstr ""
+msgstr "Зберегти зміни, внеÑені до '%s ' перед закриттÑм?"
#: editor/editor_node.cpp
msgid "Save Scene As.."
-msgstr ""
+msgstr "Зберегти Ñцени, Ñк..."
#: editor/editor_node.cpp
msgid "No"
-msgstr ""
+msgstr "ÐÑ–"
#: editor/editor_node.cpp
msgid "Yes"
-msgstr ""
+msgstr "Так"
#: editor/editor_node.cpp
msgid "This scene has never been saved. Save before running?"
-msgstr ""
+msgstr "Ð¦Ñ Ñцена ніколи не була збережена. Зберегти перед запуÑком?"
#: editor/editor_node.cpp editor/scene_tree_dock.cpp
msgid "This operation can't be done without a scene."
-msgstr ""
+msgstr "Ð¦Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð½Ðµ може бути виконана без Ñцени."
#: editor/editor_node.cpp
msgid "Export Mesh Library"
-msgstr ""
+msgstr "ЕкÑпортувати бібліотеку Ñіті"
#: editor/editor_node.cpp
msgid "This operation can't be done without a root node."
-msgstr ""
+msgstr "Цю операцію не можна виконати без кореневого вузла."
#: editor/editor_node.cpp
msgid "Export Tile Set"
-msgstr ""
+msgstr "ЕкÑпортувати комплект тайлів"
#: editor/editor_node.cpp
msgid "This operation can't be done without a selected node."
-msgstr ""
+msgstr "Ð¦Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð½Ðµ може бути виконана без вибраного вузла."
#: editor/editor_node.cpp
msgid "Current scene not saved. Open anyway?"
-msgstr ""
+msgstr "Поточна Ñцена не збережена. Відкрити в будь-Ñкому випадку?"
#: editor/editor_node.cpp
msgid "Can't reload a scene that was never saved."
-msgstr ""
+msgstr "Ðеможливо перезавантажити Ñцену, Ñку ніколи не зберігали."
#: editor/editor_node.cpp
msgid "Revert"
-msgstr ""
+msgstr "ПовернутиÑÑ"
#: editor/editor_node.cpp
msgid "This action cannot be undone. Revert anyway?"
-msgstr ""
+msgstr "Цю дію не можна ÑкаÑувати. ПовернутиÑÑ Ð² будь-Ñкому випадку?"
#: editor/editor_node.cpp
msgid "Quick Run Scene.."
-msgstr ""
+msgstr "Швидкий запуÑк Ñцени.."
#: editor/editor_node.cpp
msgid "Quit"
-msgstr ""
+msgstr "Вийти"
#: editor/editor_node.cpp
msgid "Exit the editor?"
-msgstr ""
+msgstr "Вийти з редактора?"
#: editor/editor_node.cpp
msgid "Open Project Manager?"
-msgstr ""
+msgstr "Відкрити менеджер проектів?"
#: editor/editor_node.cpp
msgid "Save & Quit"
-msgstr ""
+msgstr "Зберегти та вийти"
#: editor/editor_node.cpp
msgid "Save changes to the following scene(s) before quitting?"
-msgstr ""
+msgstr "Зберегти зміни в наÑтупній(их) Ñцені(ах) перед тим, Ñк вийти?"
#: editor/editor_node.cpp
msgid "Save changes the following scene(s) before opening Project Manager?"
msgstr ""
+"Зберегти зміни в наÑтупній(их) Ñцені(ах) перед відкриттÑм менеджера проектів?"
#: editor/editor_node.cpp
msgid ""
"This option is deprecated. Situations where refresh must be forced are now "
"considered a bug. Please report."
msgstr ""
+"Ð¦Ñ Ð¾Ð¿Ñ†Ñ–Ñ Ð·Ð°Ñтаріла. Ситуації, де Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ– бути змушені, тепер "
+"вважаютьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾ÑŽ. Будь лаÑка, повідомте."
#: editor/editor_node.cpp
msgid "Pick a Main Scene"
-msgstr ""
+msgstr "Виберіть головну Ñцену"
#: editor/editor_node.cpp
msgid "Unable to enable addon plugin at: '%s' parsing of config failed."
msgstr ""
+"Ðе вдаєтьÑÑ Ð²Ð²Ñ–Ð¼ÐºÐ½ÑƒÑ‚Ð¸ плагін addon: '%s' не вдалоÑÑ Ð¿Ñ€Ð¾Ð°Ð½Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ "
+"Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ—."
#: editor/editor_node.cpp
msgid "Unable to find script field for addon plugin at: 'res://addons/%s'."
msgstr ""
+"Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ поле Ñкрипт Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½Ñƒ в: 'res://addons/%s'."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s'."
-msgstr ""
+msgstr "Ðеможливо завантажити Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñкрипт зі шлÑху: '%s'."
#: editor/editor_node.cpp
msgid ""
"Unable to load addon script from path: '%s' Base type is not EditorPlugin."
msgstr ""
+"Ðе вдаєтьÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ Ñкрипт Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð· шлÑху: '%s' Базовий тип не Ñ” "
+"редактором плагінів."
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
msgstr ""
+"Ðеможливо завантажити Ñкрипт Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð· шлÑху: '%s' Скрипт не в режимі "
+"інÑтрументу."
#: editor/editor_node.cpp
msgid ""
"Scene '%s' was automatically imported, so it can't be modified.\n"
"To make changes to it, a new inherited scene can be created."
msgstr ""
+"Сцена '%s' автоматично імпортуєтьÑÑ, тому Ñ—Ñ— неможливо змінити.\n"
+"Щоб внеÑти зміни, можна Ñтворити нову уÑпадковану Ñцену."
#: editor/editor_node.cpp editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Ugh"
-msgstr ""
+msgstr "Тьху"
#: editor/editor_node.cpp
msgid ""
"Error loading scene, it must be inside the project path. Use 'Import' to "
"open the scene, then save it inside the project path."
msgstr ""
+"Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñцени, вона повинна бути вÑередині шлÑху проекту. "
+"ВикориÑтовуйте \"Імпорт\", щоб відкрити Ñцену, а потім збережіть Ñ—Ñ— "
+"вÑередині шлÑху проекту."
#: editor/editor_node.cpp
msgid "Scene '%s' has broken dependencies:"
-msgstr ""
+msgstr "Сцена '%s' має зламані залежноÑті:"
#: editor/editor_node.cpp
msgid "Clear Recent Scenes"
-msgstr ""
+msgstr "ОчиÑтити недавні Ñцени"
#: editor/editor_node.cpp
msgid "Save Layout"
-msgstr ""
+msgstr "Зберегти макет"
#: editor/editor_node.cpp
msgid "Delete Layout"
-msgstr ""
+msgstr "Видалити макет"
#: editor/editor_node.cpp editor/import_dock.cpp
#: editor/script_create_dialog.cpp
msgid "Default"
-msgstr ""
+msgstr "За промовчаннÑм"
#: editor/editor_node.cpp
msgid "Switch Scene Tab"
-msgstr ""
+msgstr "Перемкнути вкладку \"Сцена\""
#: editor/editor_node.cpp
msgid "%d more files or folders"
-msgstr ""
+msgstr "%d більше файлів або тек"
#: editor/editor_node.cpp
msgid "%d more folders"
-msgstr ""
+msgstr "%d більше тек"
#: editor/editor_node.cpp
msgid "%d more files"
-msgstr ""
+msgstr "%d більше файлів"
#: editor/editor_node.cpp
msgid "Dock Position"
-msgstr ""
+msgstr "ÐŸÐ¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ð¿Ð°Ð½ÐµÐ»ÐµÐ¹"
#: editor/editor_node.cpp
msgid "Distraction Free Mode"
-msgstr ""
+msgstr "Режим без відволіканнÑ"
#: editor/editor_node.cpp
msgid "Toggle distraction-free mode."
-msgstr ""
+msgstr "Перемкнути режим без відволіканнÑ."
#: editor/editor_node.cpp
msgid "Add a new scene."
-msgstr ""
+msgstr "Додати нову Ñцену."
#: editor/editor_node.cpp
msgid "Scene"
-msgstr ""
+msgstr "Сцена"
#: editor/editor_node.cpp
msgid "Go to previously opened scene."
-msgstr ""
+msgstr "Перейти до раніше відкритої Ñцени."
#: editor/editor_node.cpp
msgid "Next tab"
-msgstr ""
+msgstr "ÐаÑтупна вкладка"
#: editor/editor_node.cpp
msgid "Previous tab"
-msgstr ""
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ð²ÐºÐ»Ð°Ð´ÐºÐ°"
#: editor/editor_node.cpp
msgid "Filter Files.."
-msgstr ""
+msgstr "Фільтрувати файли..."
#: editor/editor_node.cpp
msgid "Operations with scene files."
-msgstr ""
+msgstr "Операції з файлами Ñцени."
#: editor/editor_node.cpp
msgid "New Scene"
-msgstr ""
+msgstr "Ðова Ñцена"
#: editor/editor_node.cpp
msgid "New Inherited Scene.."
-msgstr ""
+msgstr "Ðова уÑпадкована Ñцена.."
#: editor/editor_node.cpp
msgid "Open Scene.."
-msgstr ""
+msgstr "Відкрити Ñцену.."
#: editor/editor_node.cpp
msgid "Save Scene"
-msgstr ""
+msgstr "Зберегти Ñцену"
#: editor/editor_node.cpp
msgid "Save all Scenes"
-msgstr ""
+msgstr "Зберегти вÑÑ– Ñцени"
#: editor/editor_node.cpp
msgid "Close Scene"
-msgstr ""
+msgstr "Закрити Ñцену"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Open Recent"
-msgstr ""
+msgstr "Відкрити оÑтанні"
#: editor/editor_node.cpp
msgid "Convert To.."
-msgstr ""
+msgstr "Перетворити на.."
#: editor/editor_node.cpp
msgid "MeshLibrary.."
-msgstr ""
+msgstr "Бібліотека Ñітки.."
#: editor/editor_node.cpp
msgid "TileSet.."
-msgstr ""
+msgstr "Ðабір тайлів.."
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
msgid "Undo"
-msgstr ""
+msgstr "СкаÑувати"
#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp
#: scene/gui/line_edit.cpp
msgid "Redo"
-msgstr ""
+msgstr "Повторити"
#: editor/editor_node.cpp
msgid "Revert Scene"
-msgstr ""
+msgstr "Повернути Ñцену"
#: editor/editor_node.cpp
msgid "Miscellaneous project or scene-wide tools."
-msgstr ""
+msgstr "Різні проектні або Ñценографічні інÑтрументи."
#: editor/editor_node.cpp
msgid "Project"
-msgstr ""
+msgstr "Проект"
#: editor/editor_node.cpp
msgid "Project Settings"
-msgstr ""
+msgstr "Параметри проекту"
#: editor/editor_node.cpp
msgid "Run Script"
-msgstr ""
+msgstr "ЗапуÑтити Ñкрипт"
#: editor/editor_node.cpp editor/project_export.cpp
msgid "Export"
-msgstr ""
+msgstr "ЕкÑпортувати"
#: editor/editor_node.cpp
msgid "Tools"
-msgstr ""
+msgstr "ІнÑтрументи"
#: editor/editor_node.cpp
msgid "Quit to Project List"
-msgstr ""
+msgstr "Вийти в ÑпиÑок проектів"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Debug"
-msgstr ""
+msgstr "ÐалагодженнÑ"
#: editor/editor_node.cpp
msgid "Deploy with Remote Debug"
-msgstr ""
+msgstr "Ð Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð·Ð° допомогою віддаленого налагодженнÑ"
#: editor/editor_node.cpp
msgid ""
"When exporting or deploying, the resulting executable will attempt to "
"connect to the IP of this computer in order to be debugged."
msgstr ""
+"При екÑпорті або розгортанні, отриманий виконуваний файл буде намагатиÑÑ "
+"підключитиÑÑ Ð´Ð¾ IP цього комп'ютера, Ð´Ð»Ñ Ð½Ð°Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ."
#: editor/editor_node.cpp
msgid "Small Deploy with Network FS"
-msgstr ""
+msgstr "Маленьке Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð· Network File System"
#: editor/editor_node.cpp
msgid ""
@@ -1914,30 +2002,39 @@ msgid ""
"On Android, deploy will use the USB cable for faster performance. This "
"option speeds up testing for games with a large footprint."
msgstr ""
+"Якщо цей параметр увімкнено, екÑпорт або Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð´Ð°ÑŽÑ‚ÑŒ мінімальний "
+"виконуваний файл.\n"
+"Файлова ÑиÑтема буде надана редактором у проекті через мережу.\n"
+"Ðа Android Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ швидше при підключенні через USB.. Цей параметр "
+"значно приÑкорює теÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐµÐ»Ð¸ÐºÐ¸Ñ… ігор."
#: editor/editor_node.cpp
msgid "Visible Collision Shapes"
-msgstr ""
+msgstr "Видимі форми зіткнень"
#: editor/editor_node.cpp
msgid ""
"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the "
"running game if this option is turned on."
msgstr ""
+"Форми Ð·Ñ–Ñ‚ÐºÐ½ÐµÐ½Ð½Ñ Ñ‚Ð° вузли raycast (Ð´Ð»Ñ 2D та 3D) будуть видно в роботі гри, "
+"Ñкщо Ñ†Ñ Ð¾Ð¿Ñ†Ñ–Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð°."
#: editor/editor_node.cpp
msgid "Visible Navigation"
-msgstr ""
+msgstr "Видимі навігації"
#: editor/editor_node.cpp
msgid ""
"Navigation meshes and polygons will be visible on the running game if this "
"option is turned on."
msgstr ""
+"Ðавігаційні поліÑітки та полігони будуть видимі у запущеній грі, Ñкщо Ñ†Ñ "
+"Ð¾Ð¿Ñ†Ñ–Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð°."
#: editor/editor_node.cpp
msgid "Sync Scene Changes"
-msgstr ""
+msgstr "Синхронізувати зміни Ñцени"
#: editor/editor_node.cpp
msgid ""
@@ -1946,10 +2043,14 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
+"Якщо цей параметр увімкнено, будь-Ñкі зміни, внеÑені в Ñцену в редакторі, "
+"будуть відтворені в роботі гри.\n"
+"Коли він викориÑтовуєтьÑÑ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾ на приÑтрої, це більш ефективно з "
+"мережевою файловою ÑиÑтемою."
#: editor/editor_node.cpp
msgid "Sync Script Changes"
-msgstr ""
+msgstr "Синхронізувати зміни в Ñкрипті"
#: editor/editor_node.cpp
msgid ""
@@ -1958,308 +2059,322 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
+"Якщо цей параметр увімкнено, будь-Ñкий Ñкрипт, Ñкий буде збережений, буде "
+"перезавантажений у поточній грі.\n"
+"Коли він викориÑтовуєтьÑÑ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾ на приÑтрої, це більш ефективно з "
+"мережевою файловою ÑиÑтемою."
#: editor/editor_node.cpp
msgid "Editor"
-msgstr ""
+msgstr "Редактор"
#: editor/editor_node.cpp editor/settings_config_dialog.cpp
msgid "Editor Settings"
-msgstr ""
+msgstr "Параметри редактора"
#: editor/editor_node.cpp
msgid "Editor Layout"
-msgstr ""
+msgstr "Редактор макетів"
#: editor/editor_node.cpp
msgid "Toggle Fullscreen"
-msgstr ""
+msgstr "Перемикач повноекранного режиму"
#: editor/editor_node.cpp editor/project_export.cpp
msgid "Manage Export Templates"
-msgstr ""
+msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°Ð¼Ð¸ екÑпорту"
#: editor/editor_node.cpp
msgid "Help"
-msgstr ""
+msgstr "Довідка"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Classes"
-msgstr ""
+msgstr "КлаÑи"
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Online Docs"
-msgstr ""
+msgstr "Онлайн документаціÑ"
#: editor/editor_node.cpp
msgid "Q&A"
-msgstr ""
+msgstr "Ð—Ð°Ð¿Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ‚Ð° відповіді"
#: editor/editor_node.cpp
msgid "Issue Tracker"
-msgstr ""
+msgstr "ВідÑÑ‚ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
msgid "Community"
-msgstr ""
+msgstr "Спільнота"
#: editor/editor_node.cpp
msgid "About"
-msgstr ""
+msgstr "Про"
#: editor/editor_node.cpp
msgid "Play the project."
-msgstr ""
+msgstr "ЗапуÑтити проект."
#: editor/editor_node.cpp
msgid "Play"
-msgstr ""
+msgstr "Відтворити"
#: editor/editor_node.cpp
msgid "Pause the scene"
-msgstr ""
+msgstr "Призупинити Ñцену"
#: editor/editor_node.cpp
msgid "Pause Scene"
-msgstr ""
+msgstr "Пауза Ñцени"
#: editor/editor_node.cpp
msgid "Stop the scene."
-msgstr ""
+msgstr "Зупинити Ñцену."
#: editor/editor_node.cpp
msgid "Stop"
-msgstr ""
+msgstr "Зупинити"
#: editor/editor_node.cpp
msgid "Play the edited scene."
-msgstr ""
+msgstr "Відтворити поточну відредаговану Ñцену."
#: editor/editor_node.cpp
msgid "Play Scene"
-msgstr ""
+msgstr "Відтворити Ñцену"
#: editor/editor_node.cpp
msgid "Play custom scene"
-msgstr ""
+msgstr "Відтворити вибіркову Ñцену"
#: editor/editor_node.cpp
msgid "Play Custom Scene"
-msgstr ""
+msgstr "Відтворити вибіркову Ñцену"
#: editor/editor_node.cpp
msgid "Spins when the editor window repaints!"
-msgstr ""
+msgstr "ОбертаєтьÑÑ, коли перемальовуєтьÑÑ Ð²Ñ–ÐºÐ½Ð¾ редактора!"
#: editor/editor_node.cpp
msgid "Update Always"
-msgstr ""
+msgstr "Завжди оновлювати"
#: editor/editor_node.cpp
msgid "Update Changes"
-msgstr ""
+msgstr "Оновити зміни"
#: editor/editor_node.cpp
msgid "Disable Update Spinner"
-msgstr ""
+msgstr "Вимкнути Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸ÐºÐ°"
#: editor/editor_node.cpp
msgid "Inspector"
-msgstr ""
+msgstr "ІнÑпектор"
#: editor/editor_node.cpp
msgid "Create a new resource in memory and edit it."
-msgstr ""
+msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ реÑурÑу в пам'Ñті Ñ– редагувати його."
#: editor/editor_node.cpp
msgid "Load an existing resource from disk and edit it."
-msgstr ""
+msgstr "Завантажити наÑвний реÑÑƒÑ€Ñ Ñ–Ð· диÑка та відредагувати його."
#: editor/editor_node.cpp
msgid "Save the currently edited resource."
-msgstr ""
+msgstr "Зберегти поточний редагований реÑурÑ."
#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp
msgid "Save As.."
-msgstr ""
+msgstr "Зберегти Ñк..."
#: editor/editor_node.cpp
msgid "Go to the previous edited object in history."
-msgstr ""
+msgstr "Перейти до попереднього редагованого об'єкта в Ñ–Ñторії."
#: editor/editor_node.cpp
msgid "Go to the next edited object in history."
-msgstr ""
+msgstr "Перейти до наÑтупного редагованого об'єкта в Ñ–Ñторії."
#: editor/editor_node.cpp
msgid "History of recently edited objects."
-msgstr ""
+msgstr "ІÑÑ‚Ð¾Ñ€Ñ–Ñ Ð½ÐµÑ‰Ð¾Ð´Ð°Ð²Ð½Ð¾ відредагованих об'єктів."
#: editor/editor_node.cpp
msgid "Object properties."
-msgstr ""
+msgstr "ВлаÑтивоÑті об'єкта."
#: editor/editor_node.cpp
msgid "Changes may be lost!"
-msgstr ""
+msgstr "Зміни можуть бути втрачені!"
#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp
#: editor/project_manager.cpp
msgid "Import"
-msgstr ""
+msgstr "Імпортувати"
#: editor/editor_node.cpp
msgid "Node"
-msgstr ""
+msgstr "Вузол"
#: editor/editor_node.cpp
msgid "FileSystem"
-msgstr ""
+msgstr "Файлова ÑиÑтема"
#: editor/editor_node.cpp
msgid "Output"
-msgstr ""
+msgstr "Результат"
#: editor/editor_node.cpp
msgid "Don't Save"
-msgstr ""
+msgstr "Ðе зберігати"
#: editor/editor_node.cpp
msgid "Import Templates From ZIP File"
-msgstr ""
+msgstr "Імпортувати шаблони з ZIP-файлу"
#: editor/editor_node.cpp editor/project_export.cpp
msgid "Export Project"
-msgstr ""
+msgstr "ЕкÑпортувати проект"
#: editor/editor_node.cpp
msgid "Export Library"
-msgstr ""
+msgstr "ЕкÑпортувати бібліотеку"
#: editor/editor_node.cpp
msgid "Merge With Existing"
-msgstr ""
+msgstr "Об'єднати з Ñ–Ñнуючим"
#: editor/editor_node.cpp
msgid "Password:"
-msgstr ""
+msgstr "Пароль:"
#: editor/editor_node.cpp
msgid "Open & Run a Script"
-msgstr ""
+msgstr "Відкрити Ñ– запуÑтити Ñкрипт"
#: editor/editor_node.cpp
msgid "New Inherited"
-msgstr ""
+msgstr "Ðовий уÑпадкований"
#: editor/editor_node.cpp
msgid "Load Errors"
-msgstr ""
+msgstr "Завантажити помилки"
#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp
msgid "Select"
-msgstr ""
+msgstr "Виділити"
#: editor/editor_node.cpp
msgid "Open 2D Editor"
-msgstr ""
+msgstr "Відкрити 2D редактор"
#: editor/editor_node.cpp
msgid "Open 3D Editor"
-msgstr ""
+msgstr "Відкрити 3D редактор"
#: editor/editor_node.cpp
msgid "Open Script Editor"
-msgstr ""
+msgstr "Відкрити редактор Ñкриптів"
#: editor/editor_node.cpp editor/project_manager.cpp
msgid "Open Asset Library"
-msgstr ""
+msgstr "Відкрити бібліотеку активів"
#: editor/editor_node.cpp
msgid "Open the next Editor"
-msgstr ""
+msgstr "Відкрити наÑтупний редактор"
#: editor/editor_node.cpp
msgid "Open the previous Editor"
-msgstr ""
+msgstr "Відкрити попередній редактор"
#: editor/editor_plugin.cpp
msgid "Creating Mesh Previews"
-msgstr ""
+msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ переглÑду Ñітки"
#: editor/editor_plugin.cpp
msgid "Thumbnail.."
-msgstr ""
+msgstr "Мініатюра.."
#: editor/editor_plugin_settings.cpp
msgid "Installed Plugins:"
-msgstr ""
+msgstr "Ð’Ñтановлені плагіни:"
#: editor/editor_plugin_settings.cpp
msgid "Update"
-msgstr ""
+msgstr "Оновити"
#: editor/editor_plugin_settings.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Version:"
-msgstr ""
+msgstr "ВерÑÑ–Ñ:"
#: editor/editor_plugin_settings.cpp
msgid "Author:"
-msgstr ""
+msgstr "Ðвтор:"
#: editor/editor_plugin_settings.cpp
msgid "Status:"
-msgstr ""
+msgstr "СтатуÑ:"
#: editor/editor_profiler.cpp
msgid "Stop Profiling"
-msgstr ""
+msgstr "Зупинити профілюваннÑ"
#: editor/editor_profiler.cpp
msgid "Start Profiling"
-msgstr ""
+msgstr "Початок профілюваннÑ"
#: editor/editor_profiler.cpp
msgid "Measure:"
-msgstr ""
+msgstr "Вимірювати:"
#: editor/editor_profiler.cpp
msgid "Frame Time (sec)"
-msgstr ""
+msgstr "Ð§Ð°Ñ ÐºÐ°Ð´Ñ€Ñƒ (Ñек)"
#: editor/editor_profiler.cpp
msgid "Average Time (sec)"
-msgstr ""
+msgstr "Середній Ñ‡Ð°Ñ (Ñек)"
#: editor/editor_profiler.cpp
msgid "Frame %"
-msgstr ""
+msgstr "Кадр %"
#: editor/editor_profiler.cpp
msgid "Physics Frame %"
-msgstr ""
+msgstr "Фізика кадрів %"
#: editor/editor_profiler.cpp editor/script_editor_debugger.cpp
msgid "Time:"
-msgstr ""
+msgstr "ЧаÑ:"
#: editor/editor_profiler.cpp
msgid "Inclusive"
-msgstr ""
+msgstr "Включно"
#: editor/editor_profiler.cpp
msgid "Self"
-msgstr ""
+msgstr "Цей об'єкт"
#: editor/editor_profiler.cpp
msgid "Frame #:"
-msgstr ""
+msgstr "Кадр #:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "ЧаÑ:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "Виклик"
#: editor/editor_run_native.cpp
msgid "Select device from the list"
-msgstr ""
+msgstr "Вибрати приÑтрій зі ÑпиÑку"
#: editor/editor_run_native.cpp
msgid ""
@@ -2269,514 +2384,552 @@ msgstr ""
#: editor/editor_run_script.cpp
msgid "Write your logic in the _run() method."
-msgstr ""
+msgstr "Ðапишіть Ñвою логіку в методі _run ()."
#: editor/editor_run_script.cpp
msgid "There is an edited scene already."
-msgstr ""
+msgstr "Є вже редагована Ñцена."
#: editor/editor_run_script.cpp
msgid "Couldn't instance script:"
-msgstr ""
+msgstr "Ðеможливо Ñтворити екземплÑÑ€ Ñкрипту:"
#: editor/editor_run_script.cpp
msgid "Did you forget the 'tool' keyword?"
-msgstr ""
+msgstr "Ви забули ключове Ñлово \"інÑтрумент\"?"
#: editor/editor_run_script.cpp
msgid "Couldn't run script:"
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити Ñкрипт:"
#: editor/editor_run_script.cpp
msgid "Did you forget the '_run' method?"
-msgstr ""
+msgstr "Ви забули метод \"_run\"?"
#: editor/editor_settings.cpp
msgid "Default (Same as Editor)"
-msgstr ""
+msgstr "За промовчаннÑм (так Ñамо, Ñк редактор)"
#: editor/editor_sub_scene.cpp
msgid "Select Node(s) to Import"
-msgstr ""
+msgstr "Виберіть вузол(вузли) Ð´Ð»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ñƒ"
#: editor/editor_sub_scene.cpp
msgid "Scene Path:"
-msgstr ""
+msgstr "ШлÑÑ… до Ñцени:"
#: editor/editor_sub_scene.cpp
msgid "Import From Node:"
-msgstr ""
+msgstr "Імпортувати з вузла:"
#: editor/export_template_manager.cpp
msgid "Re-Download"
-msgstr ""
+msgstr "Перезавантажити"
#: editor/export_template_manager.cpp
msgid "Uninstall"
-msgstr ""
+msgstr "Видалити"
#: editor/export_template_manager.cpp
msgid "(Installed)"
-msgstr ""
+msgstr "(Ð’Ñтановлено)"
#: editor/export_template_manager.cpp
msgid "Download"
-msgstr ""
+msgstr "Завантажити"
#: editor/export_template_manager.cpp
msgid "(Missing)"
-msgstr ""
+msgstr "(ВідÑутній)"
#: editor/export_template_manager.cpp
msgid "(Current)"
-msgstr ""
+msgstr "(Поточний)"
#: editor/export_template_manager.cpp
msgid "Retrieving mirrors, please wait.."
-msgstr ""
+msgstr "ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð·ÐµÑ€ÐºÐ°Ð», будь лаÑка, зачекайте.."
#: editor/export_template_manager.cpp
msgid "Remove template version '%s'?"
-msgstr ""
+msgstr "Видалити верÑÑ–ÑŽ шаблону '%s'?"
#: editor/export_template_manager.cpp
msgid "Can't open export templates zip."
-msgstr ""
+msgstr "Ðеможливо відкрити ZIP-файл шаблону екÑпорту."
#: editor/export_template_manager.cpp
msgid "Invalid version.txt format inside templates."
-msgstr ""
+msgstr "Ðеправильний формат version.txt у шаблонах."
#: editor/export_template_manager.cpp
msgid ""
"Invalid version.txt format inside templates. Revision is not a valid "
"identifier."
msgstr ""
+"Ðеправильний формат version.txt у шаблонах. Ідентифікатор ревізії не Ñ” "
+"дійÑним."
#: editor/export_template_manager.cpp
msgid "No version.txt found inside templates."
-msgstr ""
+msgstr "Файл version.txt не знайдено у шаблонах."
#: editor/export_template_manager.cpp
msgid "Error creating path for templates:\n"
-msgstr ""
+msgstr "Помилка ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÑˆÐ»Ñху Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñ–Ð²:\n"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
-msgstr ""
+msgstr "ВитÑг шаблонів екÑпорту"
#: editor/export_template_manager.cpp
msgid "Importing:"
-msgstr ""
+msgstr "ІмпортуваннÑ:"
#: editor/export_template_manager.cpp
msgid ""
"No download links found for this version. Direct download is only available "
"for official releases."
msgstr ""
+"Ðемає поÑилань на Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— верÑÑ–Ñ—. ПрÑме Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð¾Ñтупне "
+"лише Ð´Ð»Ñ Ð¾Ñ„Ñ–Ñ†Ñ–Ð¹Ð½Ð¸Ñ… випуÑків."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve."
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð²Ð¸Ñ€Ñ–ÑˆÐ¸Ñ‚Ð¸ проблему."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't connect."
-msgstr ""
+msgstr "Ðе вдаєтьÑÑ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ÑÑ."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No response."
-msgstr ""
+msgstr "Ðемає відповіді."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
-msgstr ""
+#, fuzzy
+msgid "Request Failed."
+msgstr "Запит не вдавÑÑ."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Redirect Loop."
-msgstr ""
+msgstr "Циклічне переÑпрÑмуваннÑ."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Failed:"
-msgstr ""
+msgstr "Ðе вдалоÑÑ:"
#: editor/export_template_manager.cpp
msgid "Can't write file."
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати файл."
#: editor/export_template_manager.cpp
msgid "Download Complete."
-msgstr ""
+msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð¾."
#: editor/export_template_manager.cpp
msgid "Error requesting url: "
-msgstr ""
+msgstr "Помилка запиту url: "
#: editor/export_template_manager.cpp
msgid "Connecting to Mirror.."
-msgstr ""
+msgstr "ÐŸÑ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ дзеркала.."
#: editor/export_template_manager.cpp
msgid "Disconnected"
-msgstr ""
+msgstr "Роз'єднано"
#: editor/export_template_manager.cpp
msgid "Resolving"
-msgstr ""
+msgstr "ВирішеннÑ"
#: editor/export_template_manager.cpp
msgid "Can't Resolve"
-msgstr ""
+msgstr "Ðе вдаєтьÑÑ Ð²Ð¸Ñ€Ñ–ÑˆÐ¸Ñ‚Ð¸"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Connecting.."
-msgstr ""
+msgstr "З’єданнÑ.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
-msgstr ""
+#, fuzzy
+msgid "Can't Connect"
+msgstr "Ðе вдаєтьÑÑ Ð·â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ"
#: editor/export_template_manager.cpp
msgid "Connected"
-msgstr ""
+msgstr "З’єднано"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Requesting.."
-msgstr ""
+msgstr "Запит..."
#: editor/export_template_manager.cpp
msgid "Downloading"
-msgstr ""
+msgstr "ЗавантаженнÑ"
#: editor/export_template_manager.cpp
msgid "Connection Error"
-msgstr ""
+msgstr "Помилка з'єднаннÑ"
#: editor/export_template_manager.cpp
msgid "SSL Handshake Error"
-msgstr ""
+msgstr "Помилка SSL Handshake"
#: editor/export_template_manager.cpp
msgid "Current Version:"
-msgstr ""
+msgstr "Поточна верÑÑ–Ñ:"
#: editor/export_template_manager.cpp
msgid "Installed Versions:"
-msgstr ""
+msgstr "Ð’Ñтановлені верÑÑ–Ñ—:"
#: editor/export_template_manager.cpp
msgid "Install From File"
-msgstr ""
+msgstr "Ð’Ñтановити з файлу"
#: editor/export_template_manager.cpp
msgid "Remove Template"
-msgstr ""
+msgstr "Видалити шаблон"
#: editor/export_template_manager.cpp
msgid "Select template file"
-msgstr ""
+msgstr "Виберіть файл шаблону"
#: editor/export_template_manager.cpp
msgid "Export Template Manager"
-msgstr ""
+msgstr "Менеджер екÑпорту шаблонів"
#: editor/export_template_manager.cpp
msgid "Download Templates"
-msgstr ""
+msgstr "Завантажити шаблони"
#: editor/export_template_manager.cpp
msgid "Select mirror from list: "
-msgstr ""
+msgstr "Виберіть дзеркало зі ÑпиÑку: "
#: editor/file_type_cache.cpp
msgid "Can't open file_type_cache.cch for writing, not saving file type cache!"
msgstr ""
+"Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл file_type_cache.cch Ð´Ð»Ñ Ð½Ð°Ð¿Ð¸ÑаннÑ, кеш тип файлу "
+"не буде збережений!"
#: editor/filesystem_dock.cpp
msgid "Cannot navigate to '%s' as it has not been found in the file system!"
msgstr ""
+"Ðеможливо перейти до \"'%s' , оÑкільки він не був знайдений в файлової "
+"ÑиÑтемі!"
#: editor/filesystem_dock.cpp
msgid "View items as a grid of thumbnails"
-msgstr ""
+msgstr "ПереглÑд елементів у виглÑді Ñітки еÑкізів"
#: editor/filesystem_dock.cpp
msgid "View items as a list"
-msgstr ""
+msgstr "ПереглÑд елементів Ñк ÑпиÑок"
#: editor/filesystem_dock.cpp
msgid ""
"\n"
"Status: Import of file failed. Please fix file and reimport manually."
msgstr ""
+"\n"
+"СтатуÑ: не вдалоÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ñ‚Ð¸ файл. Виправте файл та повторно імпортуйте "
+"вручну."
#: editor/filesystem_dock.cpp
msgid "Cannot move/rename resources root."
-msgstr ""
+msgstr "Ðеможливо переміÑтити/перейменувати корінь реÑурÑів."
#: editor/filesystem_dock.cpp
msgid "Cannot move a folder into itself.\n"
-msgstr ""
+msgstr "Ðе вдаєтьÑÑ Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñтити теку в Ñебе.\n"
#: editor/filesystem_dock.cpp
msgid "Error moving:\n"
-msgstr ""
+msgstr "Помилка переміщеннÑ:\n"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "Помилка завантаженнÑ:"
#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
-msgstr ""
+msgstr "Ðеможливо оновити залежноÑті:\n"
#: editor/filesystem_dock.cpp
msgid "No name provided"
-msgstr ""
+msgstr "Ім'Ñ Ð½Ðµ вказано"
#: editor/filesystem_dock.cpp
msgid "Provided name contains invalid characters"
-msgstr ""
+msgstr "Ðадане ім'Ñ Ð¼Ñ–Ñтить некоректні Ñимволи"
#: editor/filesystem_dock.cpp
msgid "No name provided."
-msgstr ""
+msgstr "Ім'Ñ Ð½Ðµ вказано."
#: editor/filesystem_dock.cpp
msgid "Name contains invalid characters."
-msgstr ""
+msgstr "Ðазва міÑтить некоректні Ñимволи."
#: editor/filesystem_dock.cpp
msgid "A file or folder with this name already exists."
-msgstr ""
+msgstr "Файл або тека з таким іменем вже Ñ–Ñнує."
#: editor/filesystem_dock.cpp
msgid "Renaming file:"
-msgstr ""
+msgstr "ÐŸÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ:"
#: editor/filesystem_dock.cpp
msgid "Renaming folder:"
-msgstr ""
+msgstr "ÐŸÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÐ¸:"
#: editor/filesystem_dock.cpp
-msgid "Expand all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "Дублювати"
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
-msgstr ""
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "ÐŸÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÐ¸:"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr ""
+msgid "Expand all"
+msgstr "Розгорнути вÑÑ–"
#: editor/filesystem_dock.cpp
-msgid "Rename.."
-msgstr ""
+msgid "Collapse all"
+msgstr "Згорнути вÑÑ–"
#: editor/filesystem_dock.cpp
-msgid "Move To.."
-msgstr ""
+msgid "Rename.."
+msgstr "Перейменувати..."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr ""
+msgid "Move To.."
+msgstr "ПереміÑтити до..."
#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr ""
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "Відкрити Ñцену"
#: editor/filesystem_dock.cpp
msgid "Instance"
-msgstr ""
+msgstr "ЕкземплÑÑ€"
#: editor/filesystem_dock.cpp
msgid "Edit Dependencies.."
-msgstr ""
+msgstr "Редагувати залежноÑті.."
#: editor/filesystem_dock.cpp
msgid "View Owners.."
-msgstr ""
+msgstr "ПереглÑнути влаÑників.."
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "Дублювати"
#: editor/filesystem_dock.cpp
msgid "Previous Directory"
-msgstr ""
+msgstr "Попередній каталог"
#: editor/filesystem_dock.cpp
msgid "Next Directory"
-msgstr ""
+msgstr "ÐаÑтупний каталог"
#: editor/filesystem_dock.cpp
msgid "Re-Scan Filesystem"
-msgstr ""
+msgstr "Повторне ÑÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¾Ñ— ÑиÑтеми"
#: editor/filesystem_dock.cpp
msgid "Toggle folder status as Favorite"
-msgstr ""
+msgstr "Переключити ÑÑ‚Ð°Ñ‚ÑƒÑ Ñ‚ÐµÐºÐ¸ у вибране"
#: editor/filesystem_dock.cpp
msgid "Instance the selected scene(s) as child of the selected node."
-msgstr ""
+msgstr "Додати обрану Ñцену(и), Ñк нащадка обраного вузла."
#: editor/filesystem_dock.cpp
msgid ""
"Scanning Files,\n"
"Please Wait.."
msgstr ""
+"Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð²,\n"
+"будь лаÑка, зачекайте..."
#: editor/filesystem_dock.cpp
msgid "Move"
-msgstr ""
+msgstr "ПереміÑтити"
#: editor/filesystem_dock.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/project_manager.cpp
msgid "Rename"
-msgstr ""
+msgstr "Перейменувати"
#: editor/groups_editor.cpp
msgid "Add to Group"
-msgstr ""
+msgstr "Додати до групи"
#: editor/groups_editor.cpp
msgid "Remove from Group"
-msgstr ""
+msgstr "Вилучити з групи"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Single Scene"
-msgstr ""
+msgstr "Імпортувати в ÑкоÑті однієї Ñцени"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Animations"
-msgstr ""
+msgstr "Імпортувати з окремими анімаціÑми"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials"
-msgstr ""
+msgstr "Імпортувати з окремими матеріалами"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects"
-msgstr ""
+msgstr "Імпортувати з окремими об'єктами"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials"
-msgstr ""
+msgstr "Імпортувати з окремими об'єктами + матеріалами"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Animations"
-msgstr ""
+msgstr "Імпортувати з окремими об'єктами + анімації"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials+Animations"
-msgstr ""
+msgstr "Імпортувати з окремими матеріалами + анімації"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Objects+Materials+Animations"
-msgstr ""
+msgstr "Імпортувати окремі об'єкти + матеріали + анімації"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes"
-msgstr ""
+msgstr "Імпортувати Ñк кілька Ñцен"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes+Materials"
-msgstr ""
+msgstr "Імпортувати Ñк кілька Ñцен + матеріали"
#: editor/import/resource_importer_scene.cpp
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Import Scene"
-msgstr ""
+msgstr "Імпортувати Ñцену"
#: editor/import/resource_importer_scene.cpp
msgid "Importing Scene.."
-msgstr ""
+msgstr "Ð†Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñцени.."
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "Ð§Ð°Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ñ–Ñ— (Ñек):"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "Ð§Ð°Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ñ–Ñ— (Ñек):"
#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
-msgstr ""
+msgstr "ЗапуÑк кориÑтувацького Ñкрипту.."
#: editor/import/resource_importer_scene.cpp
msgid "Couldn't load post-import script:"
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ Ñкрипт піÑÐ»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ñƒ:"
#: editor/import/resource_importer_scene.cpp
msgid "Invalid/broken script for post-import (check console):"
-msgstr ""
+msgstr "Пошкоджений/зламаний Ñкрипт Ð´Ð»Ñ Ð¿Ð¾ÑÑ‚-імпорту (перевірте конÑоль):"
#: editor/import/resource_importer_scene.cpp
msgid "Error running post-import script:"
-msgstr ""
+msgstr "Помилка запуÑку піÑÐ»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ñƒ Ñкрипту:"
#: editor/import/resource_importer_scene.cpp
msgid "Saving.."
-msgstr ""
+msgstr "ЗбереженнÑ..."
#: editor/import_dock.cpp
msgid "Set as Default for '%s'"
-msgstr ""
+msgstr "Ð’Ñтановити за замовчуваннÑм Ð´Ð»Ñ \"%s\""
#: editor/import_dock.cpp
msgid "Clear Default for '%s'"
-msgstr ""
+msgstr "ОчиÑтити за замовчуваннÑм Ð´Ð»Ñ '%s'"
#: editor/import_dock.cpp
msgid " Files"
-msgstr ""
+msgstr " Файли"
#: editor/import_dock.cpp
msgid "Import As:"
-msgstr ""
+msgstr "Імпортувати Ñк:"
#: editor/import_dock.cpp editor/property_editor.cpp
msgid "Preset.."
-msgstr ""
+msgstr "Заздалегідь уÑтановлений.."
#: editor/import_dock.cpp
msgid "Reimport"
-msgstr ""
+msgstr "Переімпортивути"
#: editor/multi_node_edit.cpp
msgid "MultiNode Set"
-msgstr ""
+msgstr "Мультивузловий набір"
#: editor/node_dock.cpp
msgid "Groups"
-msgstr ""
+msgstr "Групи"
#: editor/node_dock.cpp
msgid "Select a Node to edit Signals and Groups."
-msgstr ""
+msgstr "Виберіть вузол Ð´Ð»Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñигналів та груп."
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create Poly"
-msgstr ""
+msgstr "Створити полігон"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/collision_polygon_editor_plugin.cpp
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Edit Poly"
-msgstr ""
+msgstr "Редагувати полігон"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Insert Point"
-msgstr ""
+msgstr "Ð’Ñтавити точку"
#: editor/plugins/abstract_polygon_2d_editor.cpp
#: editor/plugins/collision_polygon_editor_plugin.cpp
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Edit Poly (Remove Point)"
-msgstr ""
+msgstr "Редагувати полігон (вилучити точку)"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Remove Poly And Point"
-msgstr ""
+msgstr "Вилучити полігон та точку"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Create a new polygon from scratch"
-msgstr ""
+msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ полігону з нулÑ"
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid ""
@@ -2785,225 +2938,231 @@ msgid ""
"Ctrl+LMB: Split Segment.\n"
"RMB: Erase Point."
msgstr ""
+"Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ñнуючого полігону:\n"
+"ЛКМ: переміÑтити точку.\n"
+"Ctrl+ЛКМ: розділити Ñегмент.\n"
+"ПКМ: видалити точку."
#: editor/plugins/abstract_polygon_2d_editor.cpp
msgid "Delete points"
-msgstr ""
+msgstr "Видалити точки"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Toggle Autoplay"
-msgstr ""
+msgstr "Перемкнути автовідтвореннÑ"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Animation Name:"
-msgstr ""
+msgstr "Ðове ім'Ñ Ð°Ð½Ñ–Ð¼Ð°Ñ†Ñ–Ñ—:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "New Anim"
-msgstr ""
+msgstr "Ðова анімаціÑ"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Animation Name:"
-msgstr ""
+msgstr "Змініть ім'Ñ Ð°Ð½Ñ–Ð¼Ð°Ñ†Ñ–Ñ—:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Delete Animation?"
-msgstr ""
+msgstr "Видалити анімацію?"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Remove Animation"
-msgstr ""
+msgstr "Вилучити анімацію"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: Invalid animation name!"
-msgstr ""
+msgstr "ПОМИЛКÐ: неправильне ім'Ñ Ð°Ð½Ñ–Ð¼Ð°Ñ†Ñ–Ñ—!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: Animation name already exists!"
-msgstr ""
+msgstr "ПОМИЛКÐ: Ðазва анімації вже Ñ–Ñнує!"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Rename Animation"
-msgstr ""
+msgstr "Перейменувати анімацію"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Add Animation"
-msgstr ""
+msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð°Ð½Ñ–Ð¼Ð°Ñ†Ñ–Ñ—"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Next Changed"
-msgstr ""
+msgstr "Змінена подальша анімаціÑ"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Change Blend Time"
-msgstr ""
+msgstr "Змінити Ñ‡Ð°Ñ Ð·Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load Animation"
-msgstr ""
+msgstr "Завантажити анімацію"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Duplicate Animation"
-msgstr ""
+msgstr "Дублювати анімацію"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation to copy!"
-msgstr ""
+msgstr "ПОМИЛКÐ: Ðемає копії анімації!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation resource on clipboard!"
-msgstr ""
+msgstr "ПОМИЛКÐ: Ðемає анімаційного реÑурÑу в буфері обміну!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Pasted Animation"
-msgstr ""
+msgstr "Ð’Ñтавлена анімаціÑ"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Paste Animation"
-msgstr ""
+msgstr "Ð’Ñтавити анімацію"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "ERROR: No animation to edit!"
-msgstr ""
+msgstr "ПОМИЛКÐ: Ðемає анімації Ð´Ð»Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from current pos. (A)"
msgstr ""
+"Відтворити обрану анімацію в зворотньому напрÑмку від поточної позиції. (A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation backwards from end. (Shift+A)"
-msgstr ""
+msgstr "Відтворити вибрану анімацію назад з кінцÑ. (Shift+A)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Stop animation playback. (S)"
-msgstr ""
+msgstr "Зупинити Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð°Ð½Ñ–Ð¼Ð°Ñ†Ñ–Ñ—. (S)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from start. (Shift+D)"
-msgstr ""
+msgstr "Відтворити вибрану анімацію від початку. (Shift+D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Play selected animation from current pos. (D)"
-msgstr ""
+msgstr "Відтворити вибрану анімацію з поточної позиції. (D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation position (in seconds)."
-msgstr ""
+msgstr "ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ Ð°Ð½Ñ–Ð¼Ð°Ñ†Ñ–Ñ— (в Ñекундах)."
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Scale animation playback globally for the node."
-msgstr ""
+msgstr "Шкала Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾ анімації Ð´Ð»Ñ Ð²ÑƒÐ·Ð»Ð°."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create new animation in player."
-msgstr ""
+msgstr "Створювати нові анімації у програвачі."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load animation from disk."
-msgstr ""
+msgstr "Завантажити анімацію з диÑка."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Load an animation from disk."
-msgstr ""
+msgstr "Завантажити цю анімацію з диÑка."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Save the current animation"
-msgstr ""
+msgstr "Зберегти поточну анімацію"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Display list of animations in player."
-msgstr ""
+msgstr "Відобразити ÑпиÑок анімації у програвачі."
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Autoplay on Load"
-msgstr ""
+msgstr "ÐÐ²Ñ‚Ð¾Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸ завантаженні"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Edit Target Blend Times"
-msgstr ""
+msgstr "Редагувати цільовий Ñ‡Ð°Ñ Ð·Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Tools"
-msgstr ""
+msgstr "ІнÑтрументи анімації"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Copy Animation"
-msgstr ""
+msgstr "Копіювати анімацію"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "КалькуваннÑ"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "Увімкнути калькуваннÑ"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "ОпиÑ"
+msgstr "ÐапрÑмки"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Past"
-msgstr ""
+msgstr "Минулі"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Future"
-msgstr ""
+msgstr "Майбутні"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "Глибина"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1 крок"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2 кроки"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3 кроки"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
-msgstr ""
+msgstr "Тільки відмінноÑті"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Force White Modulate"
-msgstr ""
+msgstr "ПримуÑово Ñ€Ð¾Ð·Ñ„Ð°Ñ€Ð±Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ñ–Ð»Ð¸Ð¼"
#: editor/plugins/animation_player_editor_plugin.cpp
+#, fuzzy
msgid "Include Gizmos (3D)"
-msgstr ""
+msgstr "Включити ÒÑ–Ð·Ð¼Ð¾Ñ (3D)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Create New Animation"
-msgstr ""
+msgstr "Створити нову анімацію"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Animation Name:"
-msgstr ""
+msgstr "Ðазва анімації:"
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp
#: editor/script_create_dialog.cpp
msgid "Error!"
-msgstr ""
+msgstr "Помилка!"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Blend Times:"
-msgstr ""
+msgstr "Ð§Ð°Ñ Ð·Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ:"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Next (Auto Queue):"
-msgstr ""
+msgstr "Далі (автоматична черга):"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Cross-Animation Blend Times"
@@ -3012,20 +3171,20 @@ msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
-msgstr ""
+msgstr "ÐнімаціÑ"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "New name:"
-msgstr ""
+msgstr "Ðова назва:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Edit Filters"
-msgstr ""
+msgstr "Редагувати фільтри"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Scale:"
-msgstr ""
+msgstr "МаÑштаб:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Fade In (s):"
@@ -3037,44 +3196,44 @@ msgstr ""
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend"
-msgstr ""
+msgstr "Змішати"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix"
-msgstr ""
+msgstr "ПоєднаннÑ"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Auto Restart:"
-msgstr ""
+msgstr "Ðвтоматичний перезапуÑк:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Restart (s):"
-msgstr ""
+msgstr "ПерезапуÑтити (Ñек.):"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Random Restart (s):"
-msgstr ""
+msgstr "Випадкові Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ (Ñек.):"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Start!"
-msgstr ""
+msgstr "Почати!"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Amount:"
-msgstr ""
+msgstr "ОбÑÑг:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend:"
-msgstr ""
+msgstr "Змішувати:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend 0:"
-msgstr ""
+msgstr "Ð—Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ 0:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend 1:"
-msgstr ""
+msgstr "Ð—Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ 1:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "X-Fade Time (s):"
@@ -3082,11 +3241,11 @@ msgstr ""
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Current:"
-msgstr ""
+msgstr "Поточний:"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Add Input"
-msgstr ""
+msgstr "Додати вхід"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Clear Auto-Advance"
@@ -3098,19 +3257,19 @@ msgstr ""
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Delete Input"
-msgstr ""
+msgstr "Видалити введеннÑ"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation tree is valid."
-msgstr ""
+msgstr "Дерево анімації Ñ” дійÑним."
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation tree is invalid."
-msgstr ""
+msgstr "Дерево анімації недійÑне."
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Animation Node"
-msgstr ""
+msgstr "Ðнімаційний вузол"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "OneShot Node"
@@ -3118,7 +3277,7 @@ msgstr ""
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Mix Node"
-msgstr ""
+msgstr "Змішувати вузол"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Blend2 Node"
@@ -3146,71 +3305,71 @@ msgstr ""
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Import Animations.."
-msgstr ""
+msgstr "Імпортувати анімації.."
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Edit Node Filters"
-msgstr ""
+msgstr "Редагувати фільтри вузла"
#: editor/plugins/animation_tree_editor_plugin.cpp
msgid "Filters.."
-msgstr ""
+msgstr "Фільтри..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Free"
-msgstr ""
+msgstr "Вивільнити"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Contents:"
-msgstr ""
+msgstr "ЗміÑÑ‚:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "View Files"
-msgstr ""
+msgstr "ПереглÑд файлів"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve hostname:"
-msgstr ""
+msgstr "Ðеможливо розпізнати ім'Ñ Ñ…Ð¾Ñта:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Connection error, please try again."
-msgstr ""
+msgstr "Помилка з'єднаннÑ, будь лаÑка, повторіть Ñпробу."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't connect to host:"
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ÑÑ Ð´Ð¾ хоÑту:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "No response from host:"
-msgstr ""
+msgstr "Ðемає відповіді від хоÑта:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, return code:"
-msgstr ""
+msgstr "Помилка запиту, код поверненнÑ:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Request failed, too many redirects"
-msgstr ""
+msgstr "Запит не вдавÑÑ, забагато перенаправлень"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Bad download hash, assuming file has been tampered with."
-msgstr ""
+msgstr "РозбіжніÑть хеша завантаженнÑ, можливо файл був змінений."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Expected:"
-msgstr ""
+msgstr "ОчікуєтьÑÑ:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Got:"
-msgstr ""
+msgstr "Отримав:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Failed sha256 hash check"
-msgstr ""
+msgstr "Помилка перевірки Ñ…ÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ sha256"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Asset Download Error:"
-msgstr ""
+msgstr "Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Fetching:"
@@ -3218,77 +3377,78 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Resolving.."
-msgstr ""
+msgstr "ВирішеннÑ..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Error making request"
-msgstr ""
+msgstr "Помилка ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Idle"
-msgstr ""
+msgstr "ПроÑтій"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Retry"
-msgstr ""
+msgstr "Повторити Ñпробу"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download Error"
-msgstr ""
+msgstr "Помилка завантаженнÑ"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Download for this asset is already in progress!"
-msgstr ""
+msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ актива вже виконуєтьÑÑ!"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "first"
-msgstr ""
+msgstr "перший"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "prev"
-msgstr ""
+msgstr "попередній"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "next"
-msgstr ""
+msgstr "наÑтупний"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "last"
-msgstr ""
+msgstr "оÑтанній"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
-msgstr ""
+msgstr "Ð’Ñе"
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/project_settings_editor.cpp
msgid "Plugins"
-msgstr ""
+msgstr "Плагіни"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Sort:"
-msgstr ""
+msgstr "Сортувати:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Reverse"
-msgstr ""
+msgstr "Зворотний"
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/project_settings_editor.cpp
msgid "Category:"
-msgstr ""
+msgstr "КатегоріÑ:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Site:"
-msgstr ""
+msgstr "Сайт:"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Support.."
-msgstr ""
+msgstr "Підтримка..."
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Official"
-msgstr ""
+msgstr "Офіційний"
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Testing"
@@ -3296,15 +3456,36 @@ msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Assets ZIP File"
+msgstr "ZIP файл активів"
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
msgstr ""
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
-msgstr ""
+msgstr "Попередній переглÑд"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Configure Snap"
-msgstr ""
+msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð²'Ñзки"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
@@ -3330,39 +3511,39 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Action"
-msgstr ""
+msgstr "ПереміÑтити дію"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move vertical guide"
-msgstr ""
+msgstr "ПереміÑтити вертикальну напрÑмну"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create new vertical guide"
-msgstr ""
+msgstr "Створити нову вертикальну напрÑмну"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Remove vertical guide"
-msgstr ""
+msgstr "Вилучити вертикальну напрÑмну"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move horizontal guide"
-msgstr ""
+msgstr "ПереміÑтити горизонтальну напрÑмну"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create new horizontal guide"
-msgstr ""
+msgstr "Створити нову горизонтальну напрÑмну"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Remove horizontal guide"
-msgstr ""
+msgstr "Вилучити горизонтальну напрÑмну"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Create new horizontal and vertical guides"
-msgstr ""
+msgstr "Створити нові горизонтальні та вертикальні напрÑмні"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Edit IK Chain"
-msgstr ""
+msgstr "Редагувати ІК-ланцюг"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Edit CanvasItem"
@@ -3382,11 +3563,11 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Paste Pose"
-msgstr ""
+msgstr "Ð’Ñтавити позу"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Select Mode"
-msgstr ""
+msgstr "Режим виділеннÑ"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Drag: Rotate"
@@ -3394,7 +3575,7 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+Drag: Move"
-msgstr ""
+msgstr "Alt+ПеретÑгнути: переміÑтити"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)."
@@ -3402,15 +3583,15 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Alt+RMB: Depth list selection"
-msgstr ""
+msgstr "Ðльт+ПКМ: СпиÑок вибору глибини"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Move Mode"
-msgstr ""
+msgstr "Режим переміщеннÑ"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Rotate Mode"
-msgstr ""
+msgstr "Режим повороту"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -3418,6 +3599,8 @@ msgid ""
"Show a list of all objects at the position clicked\n"
"(same as Alt+RMB in select mode)."
msgstr ""
+"Показати ÑпиÑок уÑÑ–Ñ… об'єктів, натиÑнутих на позицію\n"
+"(так Ñамо, Ñк Ðльт+ПКМ у режимі вибору)."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Click to change object's rotation pivot."
@@ -3425,36 +3608,35 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Pan Mode"
-msgstr ""
+msgstr "Режим панорамуваннÑ"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Toggles snapping"
-msgstr ""
+msgstr "Перемикає прив'ÑзуваннÑ"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
-msgstr ""
+msgstr "За допомогою функції прив'Ñзки"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snapping options"
-msgstr ""
+msgstr "Параметри прив'Ñзки"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap to grid"
-msgstr ""
+msgstr "Прив'Ñзати до Ñітки"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Rotation Snap"
-msgstr ""
+msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð²'Ñзки"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Configure Snap..."
-msgstr ""
+msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð²'Ñзки..."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Snap Relative"
-msgstr ""
+msgstr "ВідноÑна прив'Ñзка"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Use Pixel Snap"
@@ -3487,16 +3669,16 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Lock the selected object in place (can't be moved)."
-msgstr ""
+msgstr "Ð‘Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ об'єкта на міÑці (неможливо переміÑтити)."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Unlock the selected object (can be moved)."
-msgstr ""
+msgstr "Розблокувати вибраний об'єкт (можна переміÑтити)."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Makes sure the object's children are not selectable."
-msgstr ""
+msgstr "Гарантує нащадки об'єкта не можуть бути обрані."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Restores the object's children's ability to be selected."
@@ -3504,45 +3686,45 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make Bones"
-msgstr ""
+msgstr "Зробити кіÑтки"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Bones"
-msgstr ""
+msgstr "ОчиÑтити кіÑтки"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show Bones"
-msgstr ""
+msgstr "Показати кіÑтки"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Make IK Chain"
-msgstr ""
+msgstr "Зробити IK-ланцюг"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear IK Chain"
-msgstr ""
+msgstr "ОчиÑтити ІК-ланцюг"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View"
-msgstr ""
+msgstr "ПереглÑд"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Show Grid"
-msgstr ""
+msgstr "Показати Ñітку"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show helpers"
-msgstr ""
+msgstr "Показати помічники"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show rulers"
-msgstr ""
+msgstr "Показати лінійки"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Show guides"
-msgstr ""
+msgstr "Показати напрÑмні"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Center Selection"
@@ -3554,27 +3736,27 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Layout"
-msgstr ""
+msgstr "Макет"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Keys"
-msgstr ""
+msgstr "Ð’Ñтавити ключі"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key"
-msgstr ""
+msgstr "Ð’Ñтавити ключ"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
-msgstr ""
+msgstr "Ð’Ñтавити ключ (Ñ–Ñнуючі доріжки)"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Copy Pose"
-msgstr ""
+msgstr "Копіювати позу"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Clear Pose"
-msgstr ""
+msgstr "ОчиÑтити позу"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Drag pivot from mouse position"
@@ -3586,24 +3768,24 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Multiply grid step by 2"
-msgstr ""
+msgstr "Помножити крок Ñітки на 2"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Divide grid step by 2"
-msgstr ""
+msgstr "Розділити крок Ñітки на 2"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Add %s"
-msgstr ""
+msgstr "Додати %s"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Adding %s..."
-msgstr ""
+msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ %s..."
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Create Node"
-msgstr ""
+msgstr "Створити вузол"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
@@ -3612,22 +3794,12 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
-msgstr ""
+msgstr "Ð¦Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð²Ð¸Ð¼Ð°Ð³Ð°Ñ” одного обраного вузла."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Change default type"
-msgstr ""
+msgstr "Змінити тип за промовчаннÑм"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid ""
@@ -3637,7 +3809,7 @@ msgstr ""
#: editor/plugins/collision_polygon_editor_plugin.cpp
msgid "Create Poly3D"
-msgstr ""
+msgstr "Створити полігон3D"
#: editor/plugins/collision_shape_2d_editor_plugin.cpp
msgid "Set Handle"
@@ -3645,25 +3817,25 @@ msgstr ""
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Remove item %d?"
-msgstr ""
+msgstr "Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð° %d?"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
#: editor/plugins/theme_editor_plugin.cpp
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Add Item"
-msgstr ""
+msgstr "Додати елемент"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Remove Selected Item"
-msgstr ""
+msgstr "Вилучити вибраний елемент"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Import from Scene"
-msgstr ""
+msgstr "Імпортувати зі Ñцени"
#: editor/plugins/cube_grid_theme_editor_plugin.cpp
msgid "Update from Scene"
-msgstr ""
+msgstr "Оновити зі Ñцени"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Flat0"
@@ -3687,7 +3859,7 @@ msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
msgid "Modify Curve Point"
-msgstr ""
+msgstr "Змінити точку кривої"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Modify Curve Tangent"
@@ -3699,11 +3871,11 @@ msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
msgid "Add point"
-msgstr ""
+msgstr "Додати точку"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Remove point"
-msgstr ""
+msgstr "Вилучити точку"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Left linear"
@@ -3719,7 +3891,7 @@ msgstr ""
#: editor/plugins/curve_editor_plugin.cpp
msgid "Remove Curve Point"
-msgstr ""
+msgstr "Видалити точку кривої"
#: editor/plugins/curve_editor_plugin.cpp
msgid "Toggle Curve Linear Tangent"
@@ -3744,15 +3916,15 @@ msgstr ""
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item %d"
-msgstr ""
+msgstr "Елемент %d"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Items"
-msgstr ""
+msgstr "Елементи"
#: editor/plugins/item_list_editor_plugin.cpp
msgid "Item List Editor"
-msgstr ""
+msgstr "Редактор ÑпиÑку елементів"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid ""
@@ -3766,19 +3938,19 @@ msgstr ""
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Create a new polygon from scratch."
-msgstr ""
+msgstr "Створити новий полігон з нулÑ."
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Edit existing polygon:"
-msgstr ""
+msgstr "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ñнуючого полігону:"
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "LMB: Move Point."
-msgstr ""
+msgstr "ЛКМ: ПереміÑтити точку."
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "Ctrl+LMB: Split Segment."
-msgstr ""
+msgstr "CTRL+ЛКМ: Розділити Ñегмент."
#: editor/plugins/light_occluder_2d_editor_plugin.cpp
msgid "RMB: Erase Point."
@@ -3798,7 +3970,7 @@ msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "This doesn't work on scene root!"
-msgstr ""
+msgstr "Це не працює на корінь Ñцени!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Shape"
@@ -3810,6 +3982,22 @@ msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Navigation Mesh"
+msgstr "Створити навигаційну Ñітку"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
@@ -3818,19 +4006,19 @@ msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh has not surface to create outlines from!"
-msgstr ""
+msgstr "Сітка не має поверхні, щоб Ñтворити контури!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Could not create outline!"
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ñтворити контур!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline"
-msgstr ""
+msgstr "Створити контур"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Mesh"
-msgstr ""
+msgstr "Сітка"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Static Body"
@@ -3853,6 +4041,20 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "ПереглÑд"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "ПереглÑд"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -3870,7 +4072,7 @@ msgstr ""
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (invalid path)."
-msgstr ""
+msgstr "Джерело Ñітки недійÑне (неправильний шлÑÑ…)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Mesh source is invalid (not a MeshInstance)."
@@ -3886,11 +4088,11 @@ msgstr ""
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (invalid path)."
-msgstr ""
+msgstr "Джерело поверхні недійÑне (неправильний шлÑÑ…)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (no geometry)."
-msgstr ""
+msgstr "Джерело поверхні недійÑне (без геометрії)."
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Surface source is invalid (no faces)."
@@ -3906,15 +4108,15 @@ msgstr ""
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Select a Source Mesh:"
-msgstr ""
+msgstr "Виберіть джерело Ñітки:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Select a Target Surface:"
-msgstr ""
+msgstr "Виберіть цільову поверхню:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate Surface"
-msgstr ""
+msgstr "Заповнити поверхню"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate MultiMesh"
@@ -3922,7 +4124,7 @@ msgstr ""
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Target Surface:"
-msgstr ""
+msgstr "Цільова поверхнÑ:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Source Mesh:"
@@ -3946,19 +4148,19 @@ msgstr ""
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Rotation:"
-msgstr ""
+msgstr "Випадкове обертаннÑ:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Tilt:"
-msgstr ""
+msgstr "Випадковий нахил:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Random Scale:"
-msgstr ""
+msgstr "Випадковий маÑштаб:"
#: editor/plugins/multimesh_editor_plugin.cpp
msgid "Populate"
-msgstr ""
+msgstr "Заповнити"
#: editor/plugins/navigation_mesh_editor_plugin.cpp
msgid "Bake!"
@@ -3970,15 +4172,15 @@ msgstr ""
#: editor/plugins/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
-msgstr ""
+msgstr "ОчиÑтити навігаційну Ñітку."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Setting up Configuration..."
-msgstr ""
+msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ—..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Calculating grid size..."
-msgstr ""
+msgstr "Розрахунок розміру Ñітки..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Creating heightfield..."
@@ -3986,7 +4188,7 @@ msgstr ""
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Marking walkable triangles..."
-msgstr ""
+msgstr "ÐŸÐ¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ…Ñ–Ð´Ð½Ð¸Ñ… трикутників..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Constructing compact heightfield..."
@@ -4002,7 +4204,7 @@ msgstr ""
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Creating contours..."
-msgstr ""
+msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÑƒÑ€Ñ–Ð²..."
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Creating polymesh..."
@@ -4014,7 +4216,7 @@ msgstr ""
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Navigation Mesh Generator Setup:"
-msgstr ""
+msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð° навігаційної Ñітки:"
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Parsing Geometry..."
@@ -4022,15 +4224,11 @@ msgstr ""
#: editor/plugins/navigation_mesh_generator.cpp
msgid "Done!"
-msgstr ""
+msgstr "Зроблено!"
#: editor/plugins/navigation_polygon_editor_plugin.cpp
msgid "Create Navigation Polygon"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
+msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ð¹Ð½Ð¾Ð³Ð¾ полігону"
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
@@ -4043,37 +4241,37 @@ msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Error loading image:"
-msgstr ""
+msgstr "Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ:"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
-msgstr ""
+msgstr "ЧаÑтинки"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generated Point Count:"
-msgstr ""
+msgstr "КількіÑть генерованих точок:"
#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generation Time (sec):"
-msgstr ""
+msgstr "Ð§Ð°Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ñ–Ñ— (Ñек):"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Emission Mask"
@@ -4081,7 +4279,7 @@ msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Capture from Pixel"
-msgstr ""
+msgstr "Ð—Ð°Ñ…Ð¾Ð¿Ð»ÐµÐ½Ð½Ñ Ð· пікÑелÑ"
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Emission Colors"
@@ -4089,7 +4287,7 @@ msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
msgid "Node does not contain geometry."
-msgstr ""
+msgstr "Вузол не міÑтить геометрії."
#: editor/plugins/particles_editor_plugin.cpp
msgid "Node does not contain geometry (faces)."
@@ -4120,10 +4318,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4133,7 +4327,7 @@ msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
msgid "Surface Points"
-msgstr ""
+msgstr "Точки поверхні"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Surface Points+Normal (Directed)"
@@ -4141,7 +4335,7 @@ msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
msgid "Volume"
-msgstr ""
+msgstr "Об'єм"
#: editor/plugins/particles_editor_plugin.cpp
msgid "Emission Source: "
@@ -4153,7 +4347,7 @@ msgstr ""
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove Point from Curve"
-msgstr ""
+msgstr "Видалити точку з кривої"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Remove Out-Control from Curve"
@@ -4166,11 +4360,11 @@ msgstr ""
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Add Point to Curve"
-msgstr ""
+msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ до кривої"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move Point in Curve"
-msgstr ""
+msgstr "ПереміÑтити точку на криву"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Move In-Control in Curve"
@@ -4183,7 +4377,7 @@ msgstr ""
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Select Points"
-msgstr ""
+msgstr "Виберіть пункти"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -4193,12 +4387,12 @@ msgstr ""
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Click: Add Point"
-msgstr ""
+msgstr "Клацніть: Додати точку"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Right Click: Delete Point"
-msgstr ""
+msgstr "Клацніть правою кнопкою миші: видалити точку"
#: editor/plugins/path_2d_editor_plugin.cpp
msgid "Select Control Points (Shift+Drag)"
@@ -4207,7 +4401,7 @@ msgstr ""
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Add Point (in empty space)"
-msgstr ""
+msgstr "Додати точку (в порожньому проÑторі)"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
@@ -4217,16 +4411,16 @@ msgstr ""
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Delete Point"
-msgstr ""
+msgstr "Вилучити точку"
#: editor/plugins/path_2d_editor_plugin.cpp
#: editor/plugins/path_editor_plugin.cpp
msgid "Close Curve"
-msgstr ""
+msgstr "Закрити криву"
#: editor/plugins/path_editor_plugin.cpp
msgid "Curve Point #"
-msgstr ""
+msgstr "Точку кривої #"
#: editor/plugins/path_editor_plugin.cpp
msgid "Set Curve Point Position"
@@ -4234,7 +4428,7 @@ msgstr ""
#: editor/plugins/path_editor_plugin.cpp
msgid "Set Curve In Position"
-msgstr ""
+msgstr "Ð’Ñтановити криву в позиції"
#: editor/plugins/path_editor_plugin.cpp
msgid "Set Curve Out Position"
@@ -4270,15 +4464,15 @@ msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Move Point"
-msgstr ""
+msgstr "ПереміÑтити точку"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Ctrl: Rotate"
-msgstr ""
+msgstr "Ctrl: повернути"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift: Move All"
-msgstr ""
+msgstr "Shift: ПереміÑтити вÑÑ–"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Shift+Ctrl: Scale"
@@ -4286,15 +4480,15 @@ msgstr ""
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Move Polygon"
-msgstr ""
+msgstr "ПереміÑтити полігон"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Rotate Polygon"
-msgstr ""
+msgstr "Повернути полігон"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Scale Polygon"
-msgstr ""
+msgstr "МаÑштабувати полігон"
#: editor/plugins/polygon_2d_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
@@ -4302,7 +4496,7 @@ msgstr ""
#: editor/project_settings_editor.cpp editor/property_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit"
-msgstr ""
+msgstr "Редагувати"
#: editor/plugins/polygon_2d_editor_plugin.cpp
msgid "Polygon->UV"
@@ -4331,20 +4525,20 @@ msgstr ""
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "ERROR: Couldn't load resource!"
-msgstr ""
+msgstr "ПОМИЛКÐ: Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ реÑурÑ!"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Add Resource"
-msgstr ""
+msgstr "Додати реÑурÑ"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Rename Resource"
-msgstr ""
+msgstr "Перейменувати реÑурÑ"
#: editor/plugins/resource_preloader_editor_plugin.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "Delete Resource"
-msgstr ""
+msgstr "Вилучити реÑурÑ"
#: editor/plugins/resource_preloader_editor_plugin.cpp
msgid "Resource clipboard is empty!"
@@ -4371,14 +4565,16 @@ msgid ""
"Close and save changes?\n"
"\""
msgstr ""
+"Закрити та зберегти зміни?\n"
+"\""
#: editor/plugins/script_editor_plugin.cpp
msgid "Error while saving theme"
-msgstr ""
+msgstr "Помилка під Ñ‡Ð°Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‚ÐµÐ¼Ð¸"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error saving"
-msgstr ""
+msgstr "Помилка збереженнÑ"
#: editor/plugins/script_editor_plugin.cpp
msgid "Error importing theme"
@@ -4394,7 +4590,7 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
msgid "Save Theme As.."
-msgstr ""
+msgstr "Зберегти тему Ñк..."
#: editor/plugins/script_editor_plugin.cpp
msgid " Class Reference"
@@ -4406,11 +4602,13 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4426,7 +4624,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4439,6 +4637,11 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "Копіювати шлÑÑ…"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4625,11 +4828,7 @@ msgid "Clone Down"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+msgid "Fold/Unfold Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -4957,6 +5156,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "Гаразд :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5061,6 +5268,18 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5133,10 +5352,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5178,6 +5393,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5560,6 +5779,11 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "Ðабір тайлів.."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5571,6 +5795,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "СкаÑувати"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5688,10 +5916,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -5826,15 +6050,15 @@ msgstr ""
#: editor/project_manager.cpp
msgid "Exit"
-msgstr ""
+msgstr "Вихід"
#: editor/project_manager.cpp
msgid "Restart Now"
-msgstr ""
+msgstr "Перезавантажити зараз"
#: editor/project_manager.cpp
msgid "Can't run project"
-msgstr ""
+msgstr "Ðе вдаєтьÑÑ Ð·Ð°Ð¿ÑƒÑтити проект"
#: editor/project_manager.cpp
msgid ""
@@ -5844,7 +6068,7 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Key "
-msgstr ""
+msgstr "Клавіша "
#: editor/project_settings_editor.cpp
msgid "Joy Button"
@@ -5856,7 +6080,7 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Mouse Button"
-msgstr ""
+msgstr "Кнопка миші"
#: editor/project_settings_editor.cpp
msgid "Invalid action (anything goes but '/' or ':')."
@@ -5888,7 +6112,7 @@ msgstr ""
#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp
msgid "Press a Key.."
-msgstr ""
+msgstr "ÐатиÑніть клавішу,..."
#: editor/project_settings_editor.cpp
msgid "Mouse Button Index:"
@@ -5916,19 +6140,19 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Button 6"
-msgstr ""
+msgstr "Кнопка 6"
#: editor/project_settings_editor.cpp
msgid "Button 7"
-msgstr ""
+msgstr "Кнопка 7"
#: editor/project_settings_editor.cpp
msgid "Button 8"
-msgstr ""
+msgstr "Кнопка 8"
#: editor/project_settings_editor.cpp
msgid "Button 9"
-msgstr ""
+msgstr "Кнопка 9"
#: editor/project_settings_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
@@ -5948,7 +6172,7 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
+msgid "Erase Input Action"
msgstr ""
#: editor/project_settings_editor.cpp
@@ -6016,10 +6240,14 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Error saving settings."
+msgid "Add Input Action"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Error saving settings."
+msgstr "Помилка Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ."
+
+#: editor/project_settings_editor.cpp
msgid "Settings saved OK."
msgstr ""
@@ -6029,7 +6257,7 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Add Translation"
-msgstr ""
+msgstr "Додати переклад"
#: editor/project_settings_editor.cpp
msgid "Remove Translation"
@@ -6097,15 +6325,15 @@ msgstr ""
#: editor/project_settings_editor.cpp
msgid "Localization"
-msgstr ""
+msgstr "ЛокалізаціÑ"
#: editor/project_settings_editor.cpp
msgid "Translations"
-msgstr ""
+msgstr "Переклади"
#: editor/project_settings_editor.cpp
msgid "Translations:"
-msgstr ""
+msgstr "Переклади:"
#: editor/project_settings_editor.cpp
msgid "Remaps"
@@ -6173,7 +6401,7 @@ msgstr ""
#: editor/property_editor.cpp
msgid "File.."
-msgstr ""
+msgstr "Файл..."
#: editor/property_editor.cpp
msgid "Dir.."
@@ -6189,6 +6417,10 @@ msgstr ""
#: editor/property_editor.cpp
msgid "New Script"
+msgstr "Ðовий Ñкрипт"
+
+#: editor/property_editor.cpp
+msgid "New %s"
msgstr ""
#: editor/property_editor.cpp
@@ -6223,6 +6455,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6231,10 +6467,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6277,7 +6509,7 @@ msgstr ""
#: editor/run_settings_dialog.cpp
msgid "Current Scene"
-msgstr ""
+msgstr "Поточна Ñцена"
#: editor/run_settings_dialog.cpp
msgid "Main Scene"
@@ -6294,7 +6526,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp editor/script_create_dialog.cpp
#: scene/gui/dialogs.cpp
msgid "OK"
-msgstr ""
+msgstr "Гаразд"
#: editor/scene_tree_dock.cpp
msgid "No parent to instance the scenes at."
@@ -6306,7 +6538,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Ok"
-msgstr ""
+msgstr "Гаразд"
#: editor/scene_tree_dock.cpp
msgid ""
@@ -6348,7 +6580,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Save New Scene As.."
-msgstr ""
+msgstr "Зберегти нову Ñцену Ñк..."
#: editor/scene_tree_dock.cpp
msgid "Editable Children"
@@ -6386,7 +6618,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Error saving scene."
-msgstr ""
+msgstr "Помилка Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñцени."
#: editor/scene_tree_dock.cpp
msgid "Error duplicating scene to save it."
@@ -6402,7 +6634,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp
msgid "Open in Editor"
-msgstr ""
+msgstr "Відкрити в редакторі"
#: editor/scene_tree_dock.cpp
msgid "Delete Node(s)"
@@ -6438,7 +6670,7 @@ msgstr ""
#: editor/scene_tree_dock.cpp
msgid "Copy Node Path"
-msgstr ""
+msgstr "Копіювати вузол шлÑху"
#: editor/scene_tree_dock.cpp
msgid "Delete (No Confirm)"
@@ -6518,13 +6750,15 @@ msgstr ""
#: editor/scene_tree_editor.cpp
msgid "Open script"
-msgstr ""
+msgstr "Відкрити Ñкрипт"
#: editor/scene_tree_editor.cpp
msgid ""
"Node is locked.\n"
"Click to unlock"
msgstr ""
+"Вузол заблоковано.\n"
+"ÐатиÑніть, щоб розблокувати"
#: editor/scene_tree_editor.cpp
msgid ""
@@ -6542,7 +6776,7 @@ msgstr ""
#: editor/scene_tree_editor.cpp
msgid "Rename Node"
-msgstr ""
+msgstr "Перейменувати вузол"
#: editor/scene_tree_editor.cpp
msgid "Scene Tree (Nodes):"
@@ -6554,7 +6788,7 @@ msgstr ""
#: editor/scene_tree_editor.cpp
msgid "Select a Node"
-msgstr ""
+msgstr "Виберіть вузол"
#: editor/script_create_dialog.cpp
msgid "Error loading template '%s'"
@@ -6570,7 +6804,7 @@ msgstr ""
#: editor/script_create_dialog.cpp
msgid "N/A"
-msgstr ""
+msgstr "Ð/З"
#: editor/script_create_dialog.cpp
msgid "Path is empty"
@@ -6602,7 +6836,7 @@ msgstr ""
#: editor/script_create_dialog.cpp
msgid "Invalid Path"
-msgstr ""
+msgstr "Ðеправильний шлÑÑ…"
#: editor/script_create_dialog.cpp
msgid "Invalid class name"
@@ -6626,15 +6860,15 @@ msgstr ""
#: editor/script_create_dialog.cpp
msgid "Create new script file"
-msgstr ""
+msgstr "Створити новий файл Ñкрипту"
#: editor/script_create_dialog.cpp
msgid "Load existing script file"
-msgstr ""
+msgstr "Завантажити наÑвний файл Ñкрипту"
#: editor/script_create_dialog.cpp
msgid "Language"
-msgstr ""
+msgstr "Мова"
#: editor/script_create_dialog.cpp
msgid "Inherits"
@@ -6666,19 +6900,19 @@ msgstr ""
#: editor/script_editor_debugger.cpp
msgid "Warning"
-msgstr ""
+msgstr "ПопередженнÑ"
#: editor/script_editor_debugger.cpp
msgid "Error:"
-msgstr ""
+msgstr "Помилка:"
#: editor/script_editor_debugger.cpp
msgid "Source:"
-msgstr ""
+msgstr "Джерело:"
#: editor/script_editor_debugger.cpp
msgid "Function:"
-msgstr ""
+msgstr "ФункціÑ:"
#: editor/script_editor_debugger.cpp
msgid "Pick one or more items from the list to display the graph."
@@ -6686,7 +6920,7 @@ msgstr ""
#: editor/script_editor_debugger.cpp
msgid "Errors"
-msgstr ""
+msgstr "Помилки"
#: editor/script_editor_debugger.cpp
msgid "Child Process Connected"
@@ -6706,11 +6940,11 @@ msgstr ""
#: editor/script_editor_debugger.cpp
msgid "Variable"
-msgstr ""
+msgstr "Змінна"
#: editor/script_editor_debugger.cpp
msgid "Errors:"
-msgstr ""
+msgstr "Помилки:"
#: editor/script_editor_debugger.cpp
msgid "Stack Trace (if applicable):"
@@ -6784,6 +7018,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6798,7 +7036,7 @@ msgstr ""
#: editor/spatial_editor_gizmos.cpp
msgid "Change Camera Size"
-msgstr ""
+msgstr "Змінити розмір камери"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Sphere Shape Radius"
@@ -6832,18 +7070,57 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
-msgid "Library"
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
-msgid "Status"
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
-msgid "Libraries: "
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "Видалити точку кривої"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "Бібліотека"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
msgstr ""
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "Бібліотека"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Library"
+msgstr "Бібліотека"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Status"
+msgstr "СтатуÑ"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
+msgid "Libraries: "
+msgstr "Бібліотеки: "
+
#: modules/gdnative/register_types.cpp
msgid "GDNative"
msgstr ""
@@ -6868,11 +7145,11 @@ msgstr ""
#: modules/gdscript/gdscript_functions.cpp
msgid "Not based on a script"
-msgstr ""
+msgstr "Ðе заÑнований на Ñкрипті"
#: modules/gdscript/gdscript_functions.cpp
msgid "Not based on a resource file"
-msgstr ""
+msgstr "Ðе заÑнований на файлі реÑурÑів"
#: modules/gdscript/gdscript_functions.cpp
msgid "Invalid instance dictionary format (missing @path)"
@@ -6988,7 +7265,7 @@ msgstr ""
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clear Selection"
-msgstr ""
+msgstr "ОчиÑтити виділене"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Settings"
@@ -7054,11 +7331,11 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Functions:"
-msgstr ""
+msgstr "Функції:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Variables:"
-msgstr ""
+msgstr "Змінні:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Name is not a valid identifier:"
@@ -7070,35 +7347,35 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Function"
-msgstr ""
+msgstr "Перейменувати функцію"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Variable"
-msgstr ""
+msgstr "Перейменувати змінну"
#: modules/visual_script/visual_script_editor.cpp
msgid "Rename Signal"
-msgstr ""
+msgstr "Перейменувати Ñигнал"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Function"
-msgstr ""
+msgstr "Додати функцію"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Variable"
-msgstr ""
+msgstr "Додати змінну"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Signal"
-msgstr ""
+msgstr "Додати Ñигнал"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Expression"
-msgstr ""
+msgstr "Змінити вираз"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node"
-msgstr ""
+msgstr "Додати вузол"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove VisualScript Nodes"
@@ -7134,7 +7411,7 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Preload Node"
-msgstr ""
+msgstr "Додати попередньо завантажений вузол"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Node(s) From Tree"
@@ -7150,7 +7427,7 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Base Type"
-msgstr ""
+msgstr "Змінити базовий тип"
#: modules/visual_script/visual_script_editor.cpp
msgid "Move Node(s)"
@@ -7162,7 +7439,7 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Connect Nodes"
-msgstr ""
+msgstr "Приєднати вузли"
#: modules/visual_script/visual_script_editor.cpp
msgid "Condition"
@@ -7174,27 +7451,27 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Switch"
-msgstr ""
+msgstr "Перемикач"
#: modules/visual_script/visual_script_editor.cpp
msgid "Iterator"
-msgstr ""
+msgstr "Ітератор"
#: modules/visual_script/visual_script_editor.cpp
msgid "While"
-msgstr ""
+msgstr "Поки"
#: modules/visual_script/visual_script_editor.cpp
msgid "Return"
-msgstr ""
+msgstr "ПоверненнÑ"
#: modules/visual_script/visual_script_editor.cpp
msgid "Call"
-msgstr ""
+msgstr "Виклик"
#: modules/visual_script/visual_script_editor.cpp
msgid "Get"
-msgstr ""
+msgstr "Отримати"
#: modules/visual_script/visual_script_editor.cpp
msgid "Script already has function '%s'"
@@ -7202,11 +7479,11 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Input Value"
-msgstr ""
+msgstr "Зміна вхідного значеннÑ"
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
-msgstr ""
+msgstr "Ðеможливо Ñкопіювати вузол функції."
#: modules/visual_script/visual_script_editor.cpp
msgid "Clipboard is empty!"
@@ -7218,51 +7495,51 @@ msgstr ""
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Function"
-msgstr ""
+msgstr "Вилучити функцію"
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit Variable"
-msgstr ""
+msgstr "Редагувати змінну"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Variable"
-msgstr ""
+msgstr "Вилучити змінну"
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit Signal"
-msgstr ""
+msgstr "Редагувати Ñигнал"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Signal"
-msgstr ""
+msgstr "Вилучити Ñигнал"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Variable:"
-msgstr ""
+msgstr "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ—:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Editing Signal:"
-msgstr ""
+msgstr "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñигналу:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Base Type:"
-msgstr ""
+msgstr "Базовий тип:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Available Nodes:"
-msgstr ""
+msgstr "ДоÑтупні вузли:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Select or create a function to edit graph"
-msgstr ""
+msgstr "Виберіть або Ñтворіть функцію Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ñ€Ð°Ñ„Ð°"
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit Signal Arguments:"
-msgstr ""
+msgstr "Редагувати аргументи Ñигналу:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Edit Variable:"
-msgstr ""
+msgstr "Редагувати змінну:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Delete Selected"
@@ -7286,27 +7563,27 @@ msgstr "Ð’Ñтавити вузли"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
-msgstr ""
+msgstr "Тип вводу не ітерабельний: "
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid"
-msgstr ""
+msgstr "Ітератор Ñтав недійÑним"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Iterator became invalid: "
-msgstr ""
+msgstr "Ітератор Ñтав недійÑним: "
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name."
-msgstr ""
+msgstr "Ðеправильний Ñ–Ð½Ð´ÐµÐºÑ Ð²Ð»Ð°ÑтивоÑті імені."
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Base object is not a Node!"
-msgstr ""
+msgstr "Базовий об'єкт не є вузлом!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Path does not lead Node!"
-msgstr ""
+msgstr "ШлÑÑ… не веде до вузла!"
#: modules/visual_script/visual_script_func_nodes.cpp
msgid "Invalid index property name '%s' in node %s."
@@ -7314,7 +7591,7 @@ msgstr ""
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid argument of type: "
-msgstr ""
+msgstr ": Ðеправильний тип аргументу: "
#: modules/visual_script/visual_script_nodes.cpp
msgid ": Invalid arguments: "
@@ -7344,7 +7621,7 @@ msgstr "ЗапуÑтити в браузері"
#: platform/javascript/export/export.cpp
msgid "Run exported HTML in the system's default browser."
-msgstr ""
+msgstr "Виконати екÑпортований HTML у браузері за умовчаннÑм ÑиÑтеми."
#: platform/javascript/export/export.cpp
msgid "Could not write file:\n"
@@ -7352,19 +7629,19 @@ msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати файл:\n"
#: platform/javascript/export/export.cpp
msgid "Could not open template for export:\n"
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ шаблон Ð´Ð»Ñ ÐµÐºÑпорту:\n"
#: platform/javascript/export/export.cpp
msgid "Invalid export template:\n"
-msgstr ""
+msgstr "Ðеправильний шаблон екÑпорту:\n"
#: platform/javascript/export/export.cpp
msgid "Could not read custom HTML shell:\n"
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ñпеціальну оболонку HTML:\n"
#: platform/javascript/export/export.cpp
msgid "Could not read boot splash image file:\n"
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ñ‚Ð¸ файл Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ñтавки:\n"
#: scene/2d/animated_sprite.cpp
msgid ""
@@ -7489,6 +7766,25 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "Побудова Ñітки"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "Побудова Ñітки"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr "Завершальна ділÑнка"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "Побудова Ñітки"
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7517,13 +7813,11 @@ msgstr ""
msgid "Plotting Meshes"
msgstr "Побудова Ñітки"
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
+"РеÑÑƒÑ€Ñ Ðавігаційна Ñітка повинен бути вÑтановлений або Ñтворений Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ "
+"цього вузла."
#: scene/3d/navigation_mesh.cpp
msgid ""
@@ -7566,17 +7860,13 @@ msgstr ""
#: scene/gui/color_picker.cpp
msgid "Raw Mode"
-msgstr ""
+msgstr "Raw (Ñирий) режим"
#: scene/gui/color_picker.cpp
msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "СкаÑувати"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "СповіщеннÑ!"
@@ -7586,7 +7876,7 @@ msgstr "Будь-лаÑка підтвердіть..."
#: scene/gui/file_dialog.cpp
msgid "Select this Folder"
-msgstr ""
+msgstr "Обрати цю теку"
#: scene/gui/popup.cpp
msgid ""
@@ -7635,3 +7925,12 @@ msgstr "Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÑˆÑ€Ð¸Ñ„Ñ‚Ñƒ."
#: scene/resources/dynamic_font.cpp
msgid "Invalid font size."
msgstr "ÐедійÑний розмір шрифту."
+
+#~ msgid "Move Add Key"
+#~ msgstr "ПоÑунути ключ"
+
+#~ msgid "Create Subscription"
+#~ msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñки"
+
+#~ msgid "List:"
+#~ msgstr "СпиÑок:"
diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po
index da20b0e26a..5b0708e977 100644
--- a/editor/translations/ur_PK.po
+++ b/editor/translations/ur_PK.po
@@ -27,7 +27,7 @@ msgid "All Selection"
msgstr ".تمام کا انتخاب"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
+msgid "Anim Change Keyframe Time"
msgstr ""
#: editor/animation_editor.cpp
@@ -39,7 +39,7 @@ msgid "Anim Change Transform"
msgstr ""
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+msgid "Anim Change Keyframe Value"
msgstr ""
#: editor/animation_editor.cpp
@@ -532,8 +532,8 @@ msgid "Connecting Signal:"
msgstr ""
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "سب سکریپشن بنائیں"
+msgid "Disconnect '%s' from '%s'"
+msgstr ""
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -549,8 +549,9 @@ msgid "Signals"
msgstr ""
#: editor/create_dialog.cpp
-msgid "Create New"
-msgstr ""
+#, fuzzy
+msgid "Create New %s"
+msgstr "سب سکریپشن بنائیں"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -564,7 +565,7 @@ msgstr ""
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr ""
@@ -601,6 +602,7 @@ msgid ""
msgstr ""
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr ""
@@ -701,9 +703,10 @@ msgid "Delete selected files?"
msgstr ""
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr ""
@@ -843,6 +846,11 @@ msgid "Rename Audio Bus"
msgstr ".تمام کا انتخاب"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr ".تمام کا انتخاب"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr ""
@@ -890,8 +898,8 @@ msgstr ""
msgid "Bus options"
msgstr ""
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr ""
@@ -904,6 +912,10 @@ msgid "Delete Effect"
msgstr ""
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr ""
@@ -1057,7 +1069,8 @@ msgstr ""
msgid "Node Name:"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr ""
@@ -1065,10 +1078,6 @@ msgstr ""
msgid "Singleton"
msgstr ""
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr ""
@@ -1081,6 +1090,14 @@ msgstr ""
msgid "Updating scene.."
msgstr ""
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr ""
@@ -1130,6 +1147,22 @@ msgstr ""
msgid "Select Current Folder"
msgstr ""
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr ".سب Ú©Ú†Ú¾ تسلیم Ûوچکا ÛÛ’"
@@ -1177,10 +1210,6 @@ msgid "Go Up"
msgstr ""
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr ""
@@ -1360,7 +1389,8 @@ msgstr ""
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr ""
@@ -2252,6 +2282,14 @@ msgstr ""
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr ""
@@ -2387,7 +2425,7 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+msgid "Request Failed."
msgstr ""
#: editor/export_template_manager.cpp
@@ -2435,7 +2473,7 @@ msgid "Connecting.."
msgstr ""
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+msgid "Can't Connect"
msgstr ""
#: editor/export_template_manager.cpp
@@ -2528,6 +2566,10 @@ msgid "Error moving:\n"
msgstr ""
#: editor/filesystem_dock.cpp
+msgid "Error duplicating:\n"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr ""
@@ -2560,31 +2602,31 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
+msgid "Duplicating file:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
+msgid "Duplicating folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
+msgid "Expand all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Rename.."
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Move To.."
+msgid "Rename.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
+msgid "Move To.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
+msgid "Open Scene(s)"
msgstr ""
#: editor/filesystem_dock.cpp
@@ -2600,6 +2642,10 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+msgid "Duplicate.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2692,6 +2738,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3256,6 +3310,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr ""
@@ -3297,6 +3352,27 @@ msgstr ""
msgid "Assets ZIP File"
msgstr "Ø§Ø«Ø§Ø«Û Ú©ÛŒ زپ ÙØ§Ø¦Ù„"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3435,7 +3511,6 @@ msgid "Toggles snapping"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3616,16 +3691,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3820,6 +3885,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3860,6 +3941,18 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV1"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV2"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4036,10 +4129,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4057,15 +4146,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4127,10 +4216,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4417,11 +4502,13 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4438,7 +4525,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4451,6 +4538,10 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+msgid "Copy Script Path"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4637,11 +4728,7 @@ msgid "Clone Down"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+msgid "Fold/Unfold Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -4969,6 +5056,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5073,6 +5168,18 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5148,10 +5255,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5193,6 +5296,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5580,6 +5687,10 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Tile Set"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5591,6 +5702,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr ""
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5708,10 +5823,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -5970,8 +6081,9 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr ""
+#, fuzzy
+msgid "Erase Input Action"
+msgstr ".تمام کا انتخاب"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6038,6 +6150,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6215,6 +6331,10 @@ msgid "New Script"
msgstr "سب سکریپشن بنائیں"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6246,6 +6366,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6254,10 +6378,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6816,6 +6936,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6865,15 +6989,52 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ".Ù†ÙˆÙ¹ÙØ¦Ø± Ú©Û’ اکسٹنٹ Ú©Ùˆ تبدیل کیجیۓ"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr ".تمام کا انتخاب"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7529,6 +7690,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7557,10 +7734,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7613,10 +7786,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr ""
@@ -7676,5 +7845,8 @@ msgstr ""
msgid "Invalid font size."
msgstr ""
+#~ msgid "Create Subscription"
+#~ msgstr "سب سکریپشن بنائیں"
+
#~ msgid "Samples"
#~ msgstr "نمونے"
diff --git a/editor/translations/vi.po b/editor/translations/vi.po
index 11b923a83a..5aa4f10d06 100644
--- a/editor/translations/vi.po
+++ b/editor/translations/vi.po
@@ -30,8 +30,9 @@ msgid "All Selection"
msgstr "Chá»n tất cả"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr ""
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "Äổi giá trị"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -42,7 +43,8 @@ msgid "Anim Change Transform"
msgstr ""
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "Äổi giá trị"
#: editor/animation_editor.cpp
@@ -534,7 +536,7 @@ msgid "Connecting Signal:"
msgstr ""
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
+msgid "Disconnect '%s' from '%s'"
msgstr ""
#: editor/connections_dialog.cpp
@@ -551,8 +553,9 @@ msgid "Signals"
msgstr ""
#: editor/create_dialog.cpp
-msgid "Create New"
-msgstr ""
+#, fuzzy
+msgid "Create New %s"
+msgstr "Tạo"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
#: editor/filesystem_dock.cpp
@@ -566,7 +569,7 @@ msgstr ""
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr ""
@@ -603,6 +606,7 @@ msgid ""
msgstr ""
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr ""
@@ -703,9 +707,10 @@ msgid "Delete selected files?"
msgstr ""
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr ""
@@ -844,6 +849,10 @@ msgid "Rename Audio Bus"
msgstr ""
#: editor/editor_audio_buses.cpp
+msgid "Change Audio Bus Volume"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr ""
@@ -891,8 +900,8 @@ msgstr ""
msgid "Bus options"
msgstr ""
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr ""
@@ -905,6 +914,10 @@ msgid "Delete Effect"
msgstr ""
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr ""
@@ -1055,7 +1068,8 @@ msgstr ""
msgid "Node Name:"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr ""
@@ -1063,10 +1077,6 @@ msgstr ""
msgid "Singleton"
msgstr ""
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr ""
@@ -1079,6 +1089,14 @@ msgstr ""
msgid "Updating scene.."
msgstr ""
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr ""
@@ -1128,6 +1146,22 @@ msgstr ""
msgid "Select Current Folder"
msgstr ""
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr ""
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr ""
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr ""
@@ -1175,10 +1209,6 @@ msgid "Go Up"
msgstr ""
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr ""
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr ""
@@ -1354,7 +1384,8 @@ msgstr ""
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr ""
@@ -2244,6 +2275,14 @@ msgstr ""
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr ""
@@ -2379,7 +2418,7 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+msgid "Request Failed."
msgstr ""
#: editor/export_template_manager.cpp
@@ -2426,7 +2465,7 @@ msgid "Connecting.."
msgstr ""
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+msgid "Can't Connect"
msgstr ""
#: editor/export_template_manager.cpp
@@ -2517,6 +2556,10 @@ msgid "Error moving:\n"
msgstr ""
#: editor/filesystem_dock.cpp
+msgid "Error duplicating:\n"
+msgstr ""
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr ""
@@ -2549,31 +2592,31 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
+msgid "Duplicating file:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
+msgid "Duplicating folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
+msgid "Expand all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Rename.."
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Move To.."
+msgid "Rename.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
+msgid "Move To.."
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
+msgid "Open Scene(s)"
msgstr ""
#: editor/filesystem_dock.cpp
@@ -2589,6 +2632,10 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+msgid "Duplicate.."
+msgstr ""
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2681,6 +2728,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3243,6 +3298,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr ""
@@ -3284,6 +3340,27 @@ msgstr ""
msgid "Assets ZIP File"
msgstr ""
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3418,7 +3495,6 @@ msgid "Toggles snapping"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3598,16 +3674,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3799,6 +3865,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3839,6 +3921,18 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV1"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "View UV2"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4015,10 +4109,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4036,15 +4126,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4106,10 +4196,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4392,11 +4478,13 @@ msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4412,7 +4500,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4425,6 +4513,10 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+msgid "Copy Script Path"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4611,11 +4703,7 @@ msgid "Clone Down"
msgstr ""
#: editor/plugins/script_text_editor.cpp
-msgid "Fold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+msgid "Fold/Unfold Line"
msgstr ""
#: editor/plugins/script_text_editor.cpp
@@ -4943,6 +5031,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5047,6 +5143,18 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5119,10 +5227,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5164,6 +5268,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5546,6 +5654,10 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Tile Set"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5557,6 +5669,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr ""
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5674,10 +5790,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -5934,7 +6046,7 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
+msgid "Erase Input Action"
msgstr ""
#: editor/project_settings_editor.cpp
@@ -6002,6 +6114,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6178,6 +6294,10 @@ msgid "New Script"
msgstr ""
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6209,6 +6329,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6217,10 +6341,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6770,6 +6890,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -6818,15 +6942,51 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Remove current entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7475,6 +7635,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7503,10 +7679,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7559,10 +7731,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "Cảnh báo!"
diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po
index ab00b50a1c..c19be8aaec 100644
--- a/editor/translations/zh_CN.po
+++ b/editor/translations/zh_CN.po
@@ -23,8 +23,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2017-11-27 10:44+0000\n"
-"Last-Translator: dragonandy <dragonandy@foxmail.com>\n"
+"PO-Revision-Date: 2017-12-10 10:33+0000\n"
+"Last-Translator: Geequlim <geequlim@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"godot-engine/godot/zh_Hans/>\n"
"Language: zh_CN\n"
@@ -43,8 +43,9 @@ msgid "All Selection"
msgstr "所有选中项"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr "移动已添加关键帧"
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "修改动画值"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -55,7 +56,8 @@ msgid "Anim Change Transform"
msgstr "ä¿®æ”¹å˜æ¢"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "修改动画值"
#: editor/animation_editor.cpp
@@ -547,8 +549,9 @@ msgid "Connecting Signal:"
msgstr "连接事件:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr "创建订阅"
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "连接'%s'到'%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -564,7 +567,8 @@ msgid "Signals"
msgstr "ä¿¡å·"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "新建"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -579,7 +583,7 @@ msgstr "最近文件:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "æœç´¢:"
@@ -616,6 +620,7 @@ msgid ""
msgstr "资æº'%s'æ­£åœ¨ä½¿ç”¨ä¸­ï¼Œä¿®æ”¹å°†åœ¨é‡æ–°åŠ è½½åŽç”Ÿæ•ˆã€‚"
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr "ä¾èµ–"
@@ -716,9 +721,10 @@ msgid "Delete selected files?"
msgstr "删除选中的文件?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "删除"
@@ -859,6 +865,11 @@ msgid "Rename Audio Bus"
msgstr "é‡å‘½å音频总线(Audio Bus)"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "切æ¢éŸ³é¢‘独å¥"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr "切æ¢éŸ³é¢‘独å¥"
@@ -906,8 +917,8 @@ msgstr "æ—通"
msgid "Bus options"
msgstr "音频总线选项"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "æ‹·è´"
@@ -920,6 +931,10 @@ msgid "Delete Effect"
msgstr "删除效果"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr "添加音频总线(Audio Bus)"
@@ -1070,7 +1085,8 @@ msgstr "路径:"
msgid "Node Name:"
msgstr "节点åç§°:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "åç§°"
@@ -1078,10 +1094,6 @@ msgstr "åç§°"
msgid "Singleton"
msgstr "å•独(Singleton)"
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "列表:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "更新场景"
@@ -1094,6 +1106,15 @@ msgstr "ä¿å­˜ä¿®æ”¹ä¸­.."
msgid "Updating scene.."
msgstr "更新场景中.."
+#: editor/editor_data.cpp
+#, fuzzy
+msgid "[empty]"
+msgstr "(空)"
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr "请先选择一个目录"
@@ -1140,9 +1161,24 @@ msgid "File Exists, Overwrite?"
msgstr "文件已存在,确定è¦è¦†ç›–它å—?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select Current Folder"
-msgstr "新建目录"
+msgstr "选择当å‰ç›®å½•"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "æ‹·è´è·¯å¾„"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr "在资æºç®¡ç†å™¨ä¸­æ‰“å¼€"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "New Folder.."
+msgstr "新建文件夹 .."
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "刷新"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
@@ -1191,10 +1227,6 @@ msgid "Go Up"
msgstr "上一级"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "刷新"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "åˆ‡æ¢æ˜¾ç¤ºéšè—文件"
@@ -1374,7 +1406,8 @@ msgstr "输出:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "清除"
@@ -1516,7 +1549,6 @@ msgstr ""
"请阅读与导入场景相关的文档, 以便更好地ç†è§£æ­¤å·¥ä½œæµã€‚"
#: editor/editor_node.cpp
-#, fuzzy
msgid ""
"This is a remote object so changes to it will not be kept.\n"
"Please read the documentation relevant to debugging to better understand "
@@ -1526,14 +1558,12 @@ msgstr ""
"请阅读与调试相关的文档,以便更好地ç†è§£è¿™ä¸ªå·¥ä½œæµã€‚"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Expand all properties"
-msgstr "展开所有"
+msgstr "展开所有属性"
#: editor/editor_node.cpp
-#, fuzzy
msgid "Collapse all properties"
-msgstr "收起所有"
+msgstr "收起所有属性"
#: editor/editor_node.cpp
msgid "Copy Params"
@@ -1783,19 +1813,16 @@ msgid "Switch Scene Tab"
msgstr "切æ¢åœºæ™¯æ ‡ç­¾é¡µ"
#: editor/editor_node.cpp
-#, fuzzy
msgid "%d more files or folders"
-msgstr "%d个文件或目录未展示"
+msgstr "%d 个文件或目录未展示"
#: editor/editor_node.cpp
-#, fuzzy
msgid "%d more folders"
-msgstr "%d个目录未展示"
+msgstr "%d 个目录未展示"
#: editor/editor_node.cpp
-#, fuzzy
msgid "%d more files"
-msgstr "%d个文件未展示"
+msgstr "%d 个文件未展示"
#: editor/editor_node.cpp
msgid "Dock Position"
@@ -2298,6 +2325,16 @@ msgstr "自身"
msgid "Frame #:"
msgstr "帧åºå·:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "æ—¶é—´:"
+
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Calls"
+msgstr "调用到"
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "从列表中选择设备"
@@ -2435,7 +2472,8 @@ msgstr "æ— å“应。"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "请求失败."
#: editor/export_template_manager.cpp
@@ -2482,7 +2520,8 @@ msgid "Connecting.."
msgstr "连接中.."
#: editor/export_template_manager.cpp
-msgid "Can't Conect"
+#, fuzzy
+msgid "Can't Connect"
msgstr "无法连接"
#: editor/export_template_manager.cpp
@@ -2575,6 +2614,11 @@ msgid "Error moving:\n"
msgstr "移动时出错:\n"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "加载出错:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr "无法更新ä¾èµ–关系:\n"
@@ -2607,6 +2651,16 @@ msgid "Renaming folder:"
msgstr "é‡å‘½å文件夹:"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "æ‹·è´"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "é‡å‘½å文件夹:"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr "展开所有"
@@ -2615,10 +2669,6 @@ msgid "Collapse all"
msgstr "收起所有"
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "æ‹·è´è·¯å¾„"
-
-#: editor/filesystem_dock.cpp
msgid "Rename.."
msgstr "é‡å‘½å为..."
@@ -2627,12 +2677,9 @@ msgid "Move To.."
msgstr "移动.."
#: editor/filesystem_dock.cpp
-msgid "New Folder.."
-msgstr "新建文件夹 .."
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr "在资æºç®¡ç†å™¨ä¸­æ‰“å¼€"
+#, fuzzy
+msgid "Open Scene(s)"
+msgstr "打开场景"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2647,6 +2694,11 @@ msgid "View Owners.."
msgstr "查看所有者.."
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "æ‹·è´"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr "上一个目录"
@@ -2696,9 +2748,8 @@ msgid "Import as Single Scene"
msgstr "导入为独立场景"
#: editor/import/resource_importer_scene.cpp
-#, fuzzy
msgid "Import with Separate Animations"
-msgstr "导入独立动画"
+msgstr "导入独立的动画"
#: editor/import/resource_importer_scene.cpp
msgid "Import with Separate Materials"
@@ -2713,19 +2764,16 @@ msgid "Import with Separate Objects+Materials"
msgstr "导入独立物体 + æè´¨"
#: editor/import/resource_importer_scene.cpp
-#, fuzzy
msgid "Import with Separate Objects+Animations"
-msgstr "导入独立物体 + 动画"
+msgstr "导入独立物体+动画"
#: editor/import/resource_importer_scene.cpp
-#, fuzzy
msgid "Import with Separate Materials+Animations"
-msgstr "导入独立æè´¨ + 动画"
+msgstr "导入独立æè´¨+动画"
#: editor/import/resource_importer_scene.cpp
-#, fuzzy
msgid "Import with Separate Objects+Materials+Animations"
-msgstr "导入独立物体 + æè´¨ + 动画"
+msgstr "导入独立物体+æè´¨+动画"
#: editor/import/resource_importer_scene.cpp
msgid "Import as Multiple Scenes"
@@ -2745,6 +2793,16 @@ msgid "Importing Scene.."
msgstr "导入场景.."
#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating Lightmaps"
+msgstr "转移到光照贴图:"
+
+#: editor/import/resource_importer_scene.cpp
+#, fuzzy
+msgid "Generating for Mesh: "
+msgstr "正在生æˆAABB"
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr "执行自定义脚本.."
@@ -2990,21 +3048,19 @@ msgstr "æ‹·è´åŠ¨ç”»"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Onion Skinning"
-msgstr ""
+msgstr "洋葱皮(Onion Skining)"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Enable Onion Skinning"
-msgstr ""
+msgstr "å¯ç”¨æ´‹è‘±çš®(Onion Skinning)"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Directions"
-msgstr "选项:"
+msgstr "æ–¹å‘"
#: editor/plugins/animation_player_editor_plugin.cpp
-#, fuzzy
msgid "Past"
-msgstr "粘贴"
+msgstr "穿过"
#: editor/plugins/animation_player_editor_plugin.cpp
#, fuzzy
@@ -3013,19 +3069,19 @@ msgstr "功能"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Depth"
-msgstr ""
+msgstr "深度"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "1 step"
-msgstr ""
+msgstr "1æ­¥"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "2 steps"
-msgstr ""
+msgstr "2æ­¥"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "3 steps"
-msgstr ""
+msgstr "3æ­¥"
#: editor/plugins/animation_player_editor_plugin.cpp
msgid "Differences Only"
@@ -3314,6 +3370,7 @@ msgid "last"
msgstr "最åŽä¸€é¡µ"
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "全部"
@@ -3355,6 +3412,28 @@ msgstr "测试"
msgid "Assets ZIP File"
msgstr "ZIP资æºåŒ…"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "转移到光照贴图:"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr "预览"
@@ -3491,7 +3570,6 @@ msgid "Toggles snapping"
msgstr "切æ¢å¸é™„"
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr "使用å¸é™„"
@@ -3673,16 +3751,6 @@ msgstr "从%s实例化场景出错"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "好å§"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr "æ²¡æœ‰é€‰ä¸­èŠ‚ç‚¹æ¥æ·»åŠ å®žä¾‹ã€‚"
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr "æ­¤æ“作åªèƒ½åº”用于å•个选中节点。"
@@ -3881,6 +3949,22 @@ msgid "Create Navigation Mesh"
msgstr "创建导航Mesh(网格)"
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr "MeshInstance (网格实例) 缺少 Mesh(网格)ï¼"
@@ -3921,6 +4005,20 @@ msgid "Create Outline Mesh.."
msgstr "创建轮廓网格(Outline Mesh).."
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "视图"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "视图"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr "创建轮廓网格(Outline Mesh)"
@@ -4105,10 +4203,6 @@ msgid "Create Navigation Polygon"
msgstr "创建导航多边形"
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr "清除Emission Mask(å‘å°„å±è”½ï¼‰"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr "正在生æˆAABB"
@@ -4126,10 +4220,6 @@ msgid "No pixels with transparency > 128 in image.."
msgstr "å›¾ç‰‡ä¸­æ²¡æœ‰é€æ˜Žåº¦> 128çš„åƒç´ .."
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
-msgstr "设置Emission Mask(å‘å°„å±è”½ï¼‰"
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Generate Visibility Rect"
msgstr "生æˆå¯è§†åŒ–区域"
@@ -4138,6 +4228,10 @@ msgid "Load Emission Mask"
msgstr "加载Emission Mask(å‘å°„å±è”½ï¼‰"
#: editor/plugins/particles_2d_editor_plugin.cpp
+msgid "Clear Emission Mask"
+msgstr "清除Emission Mask(å‘å°„å±è”½ï¼‰"
+
+#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Particles"
msgstr "ç²’å­"
@@ -4196,10 +4290,6 @@ msgid "Create Emission Points From Node"
msgstr "从节点创建å‘射器(Emission)"
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr "清除å‘射器(Emitter)"
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr "创建å‘射器(Emitter)"
@@ -4482,17 +4572,18 @@ msgid " Class Reference"
msgstr " 类引用"
#: editor/plugins/script_editor_plugin.cpp
-#, fuzzy
msgid "Sort"
-msgstr "排åº:"
+msgstr "排åº"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "å‘上移动"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "å‘下移动"
@@ -4508,7 +4599,7 @@ msgstr "上一个脚本"
msgid "File"
msgstr "文件"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr "新建"
@@ -4521,6 +4612,11 @@ msgid "Soft Reload Script"
msgstr "软é‡è½½è„šæœ¬"
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "æ‹·è´è·¯å¾„"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr "åŽé€€"
@@ -4711,11 +4807,7 @@ msgstr "æ‹·è´åˆ°ä¸‹ä¸€è¡Œ"
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
-msgstr "折å è¡Œ"
-
-#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
+msgid "Fold/Unfold Line"
msgstr "å–æ¶ˆæŠ˜å è¡Œ"
#: editor/plugins/script_text_editor.cpp
@@ -5044,6 +5136,14 @@ msgstr "帧数"
msgid "Align with view"
msgstr "与视图对é½"
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "好å§"
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr "æ²¡æœ‰é€‰ä¸­èŠ‚ç‚¹æ¥æ·»åŠ å®žä¾‹ã€‚"
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr "显示法线"
@@ -5152,6 +5252,20 @@ msgid "Scale Mode (R)"
msgstr "缩放模å¼ï¼ˆR)"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr "æœ¬åœ°åæ ‡"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Local Space Mode (%s)"
+msgstr "缩放模å¼ï¼ˆR)"
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "å¸é™„模å¼:"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr "底部视图"
@@ -5225,10 +5339,6 @@ msgid "Configure Snap.."
msgstr "设置å¸é™„.."
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr "æœ¬åœ°åæ ‡"
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr "å˜æ¢å¯¹è¯æ¡†.."
@@ -5270,6 +5380,10 @@ msgid "Settings"
msgstr "设置"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr "å¸é™„设置"
@@ -5655,6 +5769,11 @@ msgid "Merge from scene?"
msgstr "确定è¦åˆå¹¶åœºæ™¯ï¼Ÿ"
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "ç –å—集.."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr "从场景中创建"
@@ -5666,6 +5785,10 @@ msgstr "从场景中åˆå¹¶"
msgid "Error"
msgstr "错误"
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "å–æ¶ˆ"
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr "å¯ç”¨"
@@ -5784,10 +5907,6 @@ msgid "Imported Project"
msgstr "已导入的项目"
#: editor/project_manager.cpp
-msgid " "
-msgstr " .. "
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr "ä¸ºé¡¹ç›®å‘½åæ˜¯ä¸€ä¸ªå¥½ä¸»æ„。"
@@ -5943,6 +6062,8 @@ msgid ""
"You don't currently have any projects.\n"
"Would you like to explore the official example projects in the Asset Library?"
msgstr ""
+"æ‚¨ç›®å‰æ²¡æœ‰ä»»ä½•项目。\n"
+"是å¦è¦æ‰“开资æºå•†åº—æµè§ˆå®˜æ–¹æ ·ä¾‹é¡¹ç›®ï¼Ÿ"
#: editor/project_settings_editor.cpp
msgid "Key "
@@ -6050,8 +6171,9 @@ msgid "Joypad Button Index:"
msgstr "手柄按钮:"
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr "添加输入动作"
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "移除输入事件"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6098,9 +6220,8 @@ msgid "Select a setting item first!"
msgstr "请先选择一个设置项目 ï¼"
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "No property '%s' exists."
-msgstr "没有属性 '%s'"
+msgstr "属性 '%s' ä¸å­˜åœ¨"
#: editor/project_settings_editor.cpp
msgid "Setting '%s' is internal, and it can't be deleted."
@@ -6119,6 +6240,10 @@ msgid "Already existing"
msgstr "å·²ç»å­˜åœ¨"
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr "添加输入动作"
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr "ä¿å­˜è®¾ç½®å‡ºé”™ã€‚"
@@ -6298,6 +6423,10 @@ msgid "New Script"
msgstr "新建脚本"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr "转æ¢ä¸ºç‹¬ç«‹èµ„æº"
@@ -6329,6 +6458,11 @@ msgstr "(Bit)ä½ %d, val %d."
msgid "On"
msgstr "å¯ç”¨"
+#: editor/property_editor.cpp
+#, fuzzy
+msgid "[Empty]"
+msgstr "添加空白帧"
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr "设置"
@@ -6337,10 +6471,6 @@ msgstr "设置"
msgid "Properties:"
msgstr "属性:"
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr "选项:"
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr "选择属性"
@@ -6579,9 +6709,8 @@ msgid "Remote"
msgstr "移除"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Local"
-msgstr "地区"
+msgstr "本地"
#: editor/scene_tree_dock.cpp
msgid "Clear Inheritance? (No Undo!)"
@@ -6905,6 +7034,10 @@ msgstr "从场景树设置"
msgid "Shortcuts"
msgstr "å¿«æ·é”®"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "设置光照åŠå¾„"
@@ -6953,16 +7086,56 @@ msgstr "修改粒å­AABB"
msgid "Change Probe Extents"
msgstr "修改探针(Probe)范围"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "移除路径顶点"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Platform"
+msgstr "å¤åˆ¶åˆ°å¹³å°.."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "库"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "GDNative"
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Library"
msgstr "库"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr "状æ€"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr "库: "
@@ -7025,9 +7198,8 @@ msgid "GridMap Duplicate Selection"
msgstr "å¤åˆ¶é€‰ä¸­é¡¹"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Floor:"
-msgstr "目录:"
+msgstr "地æ¿:"
#: modules/gridmap/grid_map_editor_plugin.cpp
#, fuzzy
@@ -7636,6 +7808,25 @@ msgstr "锚 id å¿…é¡»ä¸æ˜¯ 0 或这个锚点将ä¸ç»‘定到实际的锚"
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr "ARVROrigin 必须拥有 ARVRCamera å­èŠ‚ç‚¹"
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Meshes: "
+msgstr "正在绘制网格"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Plotting Lights:"
+msgstr "正在绘制网格"
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr "正在完æˆåˆ’分"
+
+#: scene/3d/baked_lightmap.cpp
+#, fuzzy
+msgid "Lighting Meshes: "
+msgstr "正在绘制网格"
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7670,10 +7861,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr "正在绘制网格"
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr "正在完æˆåˆ’分"
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr "此节点需è¦è®¾ç½®NavigationMeshèµ„æºæ‰èƒ½å·¥ä½œã€‚"
@@ -7733,10 +7920,6 @@ msgid "Add current color as a preset"
msgstr "将当å‰é¢œè‰²æ·»åŠ ä¸ºé¢„è®¾"
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "å–æ¶ˆ"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "æç¤ºï¼"
@@ -7769,9 +7952,8 @@ msgstr ""
"寸。"
#: scene/gui/tree.cpp
-#, fuzzy
msgid "(Other)"
-msgstr "(其它)"
+msgstr "(其它)"
#: scene/main/scene_tree.cpp
msgid ""
@@ -7806,6 +7988,31 @@ msgstr "加载字体出错。"
msgid "Invalid font size."
msgstr "字体大å°éžæ³•。"
+#~ msgid "Move Add Key"
+#~ msgstr "移动已添加关键帧"
+
+#~ msgid "Create Subscription"
+#~ msgstr "创建订阅"
+
+#~ msgid "List:"
+#~ msgstr "列表:"
+
+#~ msgid "Set Emission Mask"
+#~ msgstr "设置Emission Mask(å‘å°„å±è”½ï¼‰"
+
+#~ msgid "Clear Emitter"
+#~ msgstr "清除å‘射器(Emitter)"
+
+#, fuzzy
+#~ msgid "Fold Line"
+#~ msgstr "折å è¡Œ"
+
+#~ msgid " "
+#~ msgstr " .. "
+
+#~ msgid "Sections:"
+#~ msgstr "选项:"
+
#~ msgid "Cannot navigate to '"
#~ msgstr "无法导航到 '"
@@ -8342,9 +8549,6 @@ msgstr "字体大å°éžæ³•。"
#~ msgid "Making BVH"
#~ msgstr "制作BVH(动作骨骼)"
-#~ msgid "Transfer to Lightmaps:"
-#~ msgstr "转移到光照贴图:"
-
#~ msgid "Allocating Texture #"
#~ msgstr "分é…çº¹ç† #"
@@ -8496,9 +8700,6 @@ msgstr "字体大å°éžæ³•。"
#~ msgid "Del"
#~ msgstr "删除"
-#~ msgid "Copy To Platform.."
-#~ msgstr "å¤åˆ¶åˆ°å¹³å°.."
-
#~ msgid "just pressed"
#~ msgstr "正好按下"
diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po
index 1035e4f6e8..9a36df351c 100644
--- a/editor/translations/zh_HK.po
+++ b/editor/translations/zh_HK.po
@@ -29,8 +29,8 @@ msgstr "所有é¸é …"
#: editor/animation_editor.cpp
#, fuzzy
-msgid "Move Add Key"
-msgstr "移動"
+msgid "Anim Change Keyframe Time"
+msgstr "動畫變化數值"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -41,7 +41,8 @@ msgid "Anim Change Transform"
msgstr ""
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
+#, fuzzy
+msgid "Anim Change Keyframe Value"
msgstr "動畫變化數值"
#: editor/animation_editor.cpp
@@ -573,8 +574,9 @@ msgid "Connecting Signal:"
msgstr "連接訊號:"
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
-msgstr ""
+#, fuzzy
+msgid "Disconnect '%s' from '%s'"
+msgstr "由 '%s' 連到 '%s'"
#: editor/connections_dialog.cpp
msgid "Connect.."
@@ -590,7 +592,8 @@ msgid "Signals"
msgstr "訊號"
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "新增"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -605,7 +608,7 @@ msgstr "最近:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "æœå°‹ï¼š"
@@ -642,6 +645,7 @@ msgid ""
msgstr ""
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr ""
@@ -744,9 +748,10 @@ msgid "Delete selected files?"
msgstr "è¦åˆªé™¤é¸ä¸­æª”案?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "刪除"
@@ -896,6 +901,11 @@ msgid "Rename Audio Bus"
msgstr "釿–°å‘½åAutoload"
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "動畫變化數值"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr ""
@@ -946,8 +956,8 @@ msgstr "ç•¥éŽ"
msgid "Bus options"
msgstr "é¸é …"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr "複製"
@@ -962,6 +972,10 @@ msgid "Delete Effect"
msgstr "刪除é¸ä¸­æª”案"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr ""
@@ -1130,7 +1144,8 @@ msgstr "路徑:"
msgid "Node Name:"
msgstr ""
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "å稱"
@@ -1138,10 +1153,6 @@ msgstr "å稱"
msgid "Singleton"
msgstr ""
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr ""
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "更新場景"
@@ -1154,6 +1165,14 @@ msgstr "儲存本地更改.."
msgid "Updating scene.."
msgstr "正在更新場景..."
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
#, fuzzy
msgid "Please select a base directory first"
@@ -1205,6 +1224,23 @@ msgstr "檔案已存在, è¦è¦†è“‹å—Ž?"
msgid "Select Current Folder"
msgstr "新增資料夾"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr "複製路徑"
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+#, fuzzy
+msgid "New Folder.."
+msgstr "新增資料夾"
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "釿–°æ•´ç†"
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr "所有類型"
@@ -1252,10 +1288,6 @@ msgid "Go Up"
msgstr ""
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "釿–°æ•´ç†"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr "(ä¸ï¼‰é¡¯ç¤ºéš±è—的文件"
@@ -1444,7 +1476,8 @@ msgstr ""
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "清空"
@@ -2385,6 +2418,15 @@ msgstr ""
msgid "Frame #:"
msgstr "幀 #:"
+#: editor/editor_profiler.cpp
+#, fuzzy
+msgid "Time"
+msgstr "時間:"
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr "從列表é¸å–設備"
@@ -2526,7 +2568,8 @@ msgstr "沒有回應。"
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+#, fuzzy
+msgid "Request Failed."
msgstr "請求失敗。"
#: editor/export_template_manager.cpp
@@ -2580,7 +2623,7 @@ msgstr "連到..."
#: editor/export_template_manager.cpp
#, fuzzy
-msgid "Can't Conect"
+msgid "Can't Connect"
msgstr "ä¸èƒ½é€£æŽ¥ã€‚"
#: editor/export_template_manager.cpp
@@ -2680,6 +2723,11 @@ msgid "Error moving:\n"
msgstr "載入錯誤:"
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "載入錯誤:"
+
+#: editor/filesystem_dock.cpp
msgid "Unable to update dependencies:\n"
msgstr ""
@@ -2714,6 +2762,16 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "複製"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicating folder:"
+msgstr "複製"
+
+#: editor/filesystem_dock.cpp
msgid "Expand all"
msgstr ""
@@ -2722,10 +2780,6 @@ msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
-msgstr "複製路徑"
-
-#: editor/filesystem_dock.cpp
#, fuzzy
msgid "Rename.."
msgstr "釿–°å‘½å.."
@@ -2737,12 +2791,8 @@ msgstr "æ¬åˆ°.."
#: editor/filesystem_dock.cpp
#, fuzzy
-msgid "New Folder.."
-msgstr "新增資料夾"
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr ""
+msgid "Open Scene(s)"
+msgstr "開啓場景"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2757,6 +2807,11 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "複製"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2850,6 +2905,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3426,6 +3489,7 @@ msgid "last"
msgstr "å°¾é "
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "全部"
@@ -3467,6 +3531,27 @@ msgstr "測試"
msgid "Assets ZIP File"
msgstr "Assets ZIP 檔"
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Bake Lightmaps"
+msgstr ""
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3604,7 +3689,6 @@ msgid "Toggles snapping"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3786,16 +3870,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr "OK :("
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3992,6 +4066,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -4032,6 +4122,20 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "檔案"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "檔案"
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4209,10 +4313,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4230,15 +4330,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4300,10 +4400,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4591,11 +4687,13 @@ msgstr "排åºï¼š"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr "上移"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr "下移"
@@ -4611,7 +4709,7 @@ msgstr ""
msgid "File"
msgstr "檔案"
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4624,6 +4722,11 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+#, fuzzy
+msgid "Copy Script Path"
+msgstr "複製路徑"
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4817,14 +4920,10 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
+msgid "Fold/Unfold Line"
msgstr "跳到行"
#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
msgstr ""
@@ -5155,6 +5254,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr "OK :("
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5265,6 +5372,19 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+#, fuzzy
+msgid "Snap Mode (%s)"
+msgstr "鏿“‡æ¨¡å¼"
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5340,10 +5460,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5385,6 +5501,10 @@ msgid "Settings"
msgstr "設定"
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5772,6 +5892,11 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+#, fuzzy
+msgid "Tile Set"
+msgstr "TileSet.."
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5783,6 +5908,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr "å–æ¶ˆ"
+
#: editor/project_export.cpp
#, fuzzy
msgid "Runnable"
@@ -5907,10 +6036,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -6174,8 +6299,9 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr ""
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "縮放selection"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6244,6 +6370,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6423,6 +6553,10 @@ msgid "New Script"
msgstr "下一個腳本"
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6456,6 +6590,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6464,10 +6602,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
#, fuzzy
msgid "Select Property"
@@ -7039,6 +7173,10 @@ msgstr ""
msgid "Shortcuts"
msgstr ""
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr ""
@@ -7087,16 +7225,55 @@ msgstr ""
msgid "Change Probe Extents"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "åªé™é¸ä¸­"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Dynamic Library"
+msgstr "MeshLibrary.."
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "GDNativeLibrary"
+msgstr "MeshLibrary.."
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
#, fuzzy
msgid "Library"
msgstr "MeshLibrary.."
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7772,6 +7949,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7800,10 +7993,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7856,10 +8045,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr "å–æ¶ˆ"
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr "警告!"
@@ -7921,6 +8106,10 @@ msgid "Invalid font size."
msgstr "無效字型"
#, fuzzy
+#~ msgid "Move Add Key"
+#~ msgstr "移動"
+
+#, fuzzy
#~ msgid ""
#~ "\n"
#~ "Source: "
diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po
index 8a68c1f1a7..4b17c01e15 100644
--- a/editor/translations/zh_TW.po
+++ b/editor/translations/zh_TW.po
@@ -32,8 +32,9 @@ msgid "All Selection"
msgstr "æ‰€æœ‰çš„é¸æ“‡"
#: editor/animation_editor.cpp
-msgid "Move Add Key"
-msgstr ""
+#, fuzzy
+msgid "Anim Change Keyframe Time"
+msgstr "動畫更改座標"
#: editor/animation_editor.cpp
msgid "Anim Change Transition"
@@ -44,8 +45,9 @@ msgid "Anim Change Transform"
msgstr "動畫更改座標"
#: editor/animation_editor.cpp
-msgid "Anim Change Value"
-msgstr ""
+#, fuzzy
+msgid "Anim Change Keyframe Value"
+msgstr "動畫更改座標"
#: editor/animation_editor.cpp
msgid "Anim Change Call"
@@ -537,7 +539,7 @@ msgid "Connecting Signal:"
msgstr ""
#: editor/connections_dialog.cpp
-msgid "Create Subscription"
+msgid "Disconnect '%s' from '%s'"
msgstr ""
#: editor/connections_dialog.cpp
@@ -554,7 +556,8 @@ msgid "Signals"
msgstr ""
#: editor/create_dialog.cpp
-msgid "Create New"
+#, fuzzy
+msgid "Create New %s"
msgstr "新增"
#: editor/create_dialog.cpp editor/editor_file_dialog.cpp
@@ -569,7 +572,7 @@ msgstr "最近存å–:"
#: editor/create_dialog.cpp editor/editor_node.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
#: editor/plugins/script_editor_plugin.cpp editor/property_selector.cpp
-#: editor/quick_open.cpp editor/settings_config_dialog.cpp
+#: editor/quick_open.cpp
msgid "Search:"
msgstr "æœå°‹:"
@@ -608,6 +611,7 @@ msgid ""
msgstr ""
#: editor/dependency_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Dependencies"
msgstr ""
@@ -710,9 +714,10 @@ msgid "Delete selected files?"
msgstr "ç¢ºå®šåˆªé™¤æ‰€é¸æ“‡çš„æª”案嗎?"
#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp
-#: editor/editor_node.cpp editor/filesystem_dock.cpp
-#: editor/plugins/item_list_editor_plugin.cpp editor/project_export.cpp
-#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp
+#: editor/editor_file_dialog.cpp editor/editor_node.cpp
+#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp
+#: editor/project_export.cpp editor/project_settings_editor.cpp
+#: editor/scene_tree_dock.cpp
msgid "Delete"
msgstr "刪除"
@@ -852,6 +857,11 @@ msgid "Rename Audio Bus"
msgstr ""
#: editor/editor_audio_buses.cpp
+#, fuzzy
+msgid "Change Audio Bus Volume"
+msgstr "é‡è¨­ç¸®æ”¾å¤§å°"
+
+#: editor/editor_audio_buses.cpp
msgid "Toggle Audio Bus Solo"
msgstr ""
@@ -900,8 +910,8 @@ msgstr ""
msgid "Bus options"
msgstr "除錯é¸é …"
-#: editor/editor_audio_buses.cpp editor/plugins/tile_map_editor_plugin.cpp
-#: editor/scene_tree_dock.cpp
+#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp
+#: editor/plugins/tile_map_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "Duplicate"
msgstr ""
@@ -916,6 +926,10 @@ msgid "Delete Effect"
msgstr "刪除"
#: editor/editor_audio_buses.cpp
+msgid "Audio"
+msgstr ""
+
+#: editor/editor_audio_buses.cpp
msgid "Add Audio Bus"
msgstr ""
@@ -1068,7 +1082,8 @@ msgstr "路徑:"
msgid "Node Name:"
msgstr "節點å稱:"
-#: editor/editor_autoload_settings.cpp editor/project_manager.cpp
+#: editor/editor_autoload_settings.cpp editor/editor_profiler.cpp
+#: editor/project_manager.cpp editor/settings_config_dialog.cpp
msgid "Name"
msgstr "å稱"
@@ -1076,10 +1091,6 @@ msgstr "å稱"
msgid "Singleton"
msgstr ""
-#: editor/editor_autoload_settings.cpp
-msgid "List:"
-msgstr "列表:"
-
#: editor/editor_data.cpp
msgid "Updating Scene"
msgstr "更新場景"
@@ -1092,6 +1103,14 @@ msgstr "正在儲存變更.."
msgid "Updating scene.."
msgstr "更新場景中.."
+#: editor/editor_data.cpp
+msgid "[empty]"
+msgstr ""
+
+#: editor/editor_data.cpp
+msgid "[unsaved]"
+msgstr ""
+
#: editor/editor_dir_dialog.cpp
msgid "Please select a base directory first"
msgstr ""
@@ -1142,6 +1161,23 @@ msgstr "檔案已經存在, è¦è¦†å¯«å—Ž?"
msgid "Select Current Folder"
msgstr "新增資料夾"
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Copy Path"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+msgid "Show In File Manager"
+msgstr ""
+
+#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
+#, fuzzy
+msgid "New Folder.."
+msgstr "新增資料夾"
+
+#: editor/editor_file_dialog.cpp
+msgid "Refresh"
+msgstr "釿–°æ•´ç†"
+
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "All Recognized"
msgstr ""
@@ -1189,10 +1225,6 @@ msgid "Go Up"
msgstr "往上"
#: editor/editor_file_dialog.cpp
-msgid "Refresh"
-msgstr "釿–°æ•´ç†"
-
-#: editor/editor_file_dialog.cpp
msgid "Toggle Hidden Files"
msgstr ""
@@ -1369,7 +1401,8 @@ msgstr "輸出:"
#: editor/editor_log.cpp editor/plugins/animation_tree_editor_plugin.cpp
#: editor/property_editor.cpp editor/script_editor_debugger.cpp
-#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp
+#: scene/gui/text_edit.cpp
msgid "Clear"
msgstr "清除"
@@ -2270,6 +2303,14 @@ msgstr ""
msgid "Frame #:"
msgstr ""
+#: editor/editor_profiler.cpp
+msgid "Time"
+msgstr ""
+
+#: editor/editor_profiler.cpp
+msgid "Calls"
+msgstr ""
+
#: editor/editor_run_native.cpp
msgid "Select device from the list"
msgstr ""
@@ -2406,7 +2447,7 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
-msgid "Req. Failed."
+msgid "Request Failed."
msgstr ""
#: editor/export_template_manager.cpp
@@ -2458,7 +2499,7 @@ msgstr "連接..."
#: editor/export_template_manager.cpp
#, fuzzy
-msgid "Can't Conect"
+msgid "Can't Connect"
msgstr "連接..."
#: editor/export_template_manager.cpp
@@ -2555,6 +2596,11 @@ msgstr "載入時發生錯誤:"
#: editor/filesystem_dock.cpp
#, fuzzy
+msgid "Error duplicating:\n"
+msgstr "載入時發生錯誤:"
+
+#: editor/filesystem_dock.cpp
+#, fuzzy
msgid "Unable to update dependencies:\n"
msgstr "場景缺少了æŸäº›è³‡æºä»¥è‡³æ–¼ç„¡æ³•載入"
@@ -2588,15 +2634,20 @@ msgid "Renaming folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Expand all"
+#, fuzzy
+msgid "Duplicating file:"
+msgstr "載入時發生錯誤:"
+
+#: editor/filesystem_dock.cpp
+msgid "Duplicating folder:"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Collapse all"
+msgid "Expand all"
msgstr ""
#: editor/filesystem_dock.cpp
-msgid "Copy Path"
+msgid "Collapse all"
msgstr ""
#: editor/filesystem_dock.cpp
@@ -2609,12 +2660,8 @@ msgstr ""
#: editor/filesystem_dock.cpp
#, fuzzy
-msgid "New Folder.."
-msgstr "新增資料夾"
-
-#: editor/filesystem_dock.cpp
-msgid "Show In File Manager"
-msgstr ""
+msgid "Open Scene(s)"
+msgstr "開啟場景"
#: editor/filesystem_dock.cpp
msgid "Instance"
@@ -2629,6 +2676,11 @@ msgid "View Owners.."
msgstr ""
#: editor/filesystem_dock.cpp
+#, fuzzy
+msgid "Duplicate.."
+msgstr "複製動畫關éµç•«æ ¼"
+
+#: editor/filesystem_dock.cpp
msgid "Previous Directory"
msgstr ""
@@ -2722,6 +2774,14 @@ msgid "Importing Scene.."
msgstr ""
#: editor/import/resource_importer_scene.cpp
+msgid "Generating Lightmaps"
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
+msgid "Generating for Mesh: "
+msgstr ""
+
+#: editor/import/resource_importer_scene.cpp
msgid "Running Custom Script.."
msgstr ""
@@ -3289,6 +3349,7 @@ msgid "last"
msgstr ""
#: editor/plugins/asset_library_editor_plugin.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "All"
msgstr "全部"
@@ -3330,6 +3391,28 @@ msgstr ""
msgid "Assets ZIP File"
msgstr ""
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"Can't determine a save path for lightmap images.\n"
+"Save your scene (for images to be saved in the same dir), or pick a save "
+"path from the BakedLightmap properties."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid ""
+"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake "
+"Light' flag is on."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+msgid "Failed creating lightmap images, make sure path is writable."
+msgstr ""
+
+#: editor/plugins/baked_lightmap_editor_plugin.cpp
+#, fuzzy
+msgid "Bake Lightmaps"
+msgstr "變更光æºåŠå¾‘"
+
#: editor/plugins/camera_editor_plugin.cpp
msgid "Preview"
msgstr ""
@@ -3465,7 +3548,6 @@ msgid "Toggles snapping"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Use Snap"
msgstr ""
@@ -3646,16 +3728,6 @@ msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "OK :("
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
-msgid "No parent to instance a child at."
-msgstr ""
-
-#: editor/plugins/canvas_item_editor_plugin.cpp
-#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
msgid "This operation requires a single selected node."
msgstr ""
@@ -3851,6 +3923,22 @@ msgid "Create Navigation Mesh"
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Contained Mesh is not of type ArrayMesh."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "UV Unwrap failed, mesh may not be manifold?"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "No mesh to debug."
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Model has no UV in this layer"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "MeshInstance lacks a Mesh!"
msgstr ""
@@ -3891,6 +3979,20 @@ msgid "Create Outline Mesh.."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV1"
+msgstr "éŽæ¿¾æª”案.."
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+#, fuzzy
+msgid "View UV2"
+msgstr "éŽæ¿¾æª”案.."
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
+msgid "Unwrap UV2 for Lightmap/AO"
+msgstr ""
+
+#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Outline Mesh"
msgstr ""
@@ -4068,10 +4170,6 @@ msgid "Create Navigation Polygon"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Clear Emission Mask"
-msgstr ""
-
-#: editor/plugins/particles_2d_editor_plugin.cpp
#: editor/plugins/particles_editor_plugin.cpp
msgid "Generating AABB"
msgstr ""
@@ -4089,15 +4187,15 @@ msgid "No pixels with transparency > 128 in image.."
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Set Emission Mask"
+msgid "Generate Visibility Rect"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Generate Visibility Rect"
+msgid "Load Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
-msgid "Load Emission Mask"
+msgid "Clear Emission Mask"
msgstr ""
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -4159,10 +4257,6 @@ msgid "Create Emission Points From Node"
msgstr ""
#: editor/plugins/particles_editor_plugin.cpp
-msgid "Clear Emitter"
-msgstr ""
-
-#: editor/plugins/particles_editor_plugin.cpp
msgid "Create Emitter"
msgstr ""
@@ -4449,11 +4543,13 @@ msgstr "排åº:"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Up"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Move Down"
msgstr ""
@@ -4469,7 +4565,7 @@ msgstr ""
msgid "File"
msgstr ""
-#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp
+#: editor/plugins/script_editor_plugin.cpp
msgid "New"
msgstr ""
@@ -4482,6 +4578,10 @@ msgid "Soft Reload Script"
msgstr ""
#: editor/plugins/script_editor_plugin.cpp
+msgid "Copy Script Path"
+msgstr ""
+
+#: editor/plugins/script_editor_plugin.cpp
msgid "History Prev"
msgstr ""
@@ -4672,14 +4772,10 @@ msgstr ""
#: editor/plugins/script_text_editor.cpp
#, fuzzy
-msgid "Fold Line"
+msgid "Fold/Unfold Line"
msgstr "å‰å¾€ç¬¬...行"
#: editor/plugins/script_text_editor.cpp
-msgid "Unfold Line"
-msgstr ""
-
-#: editor/plugins/script_text_editor.cpp
msgid "Fold All Lines"
msgstr ""
@@ -5007,6 +5103,14 @@ msgstr ""
msgid "Align with view"
msgstr ""
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "OK :("
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp
+msgid "No parent to instance a child at."
+msgstr ""
+
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
msgstr ""
@@ -5115,6 +5219,18 @@ msgid "Scale Mode (R)"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Coords"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Local Space Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Snap Mode (%s)"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Bottom View"
msgstr ""
@@ -5188,10 +5304,6 @@ msgid "Configure Snap.."
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
-msgid "Local Coords"
-msgstr ""
-
-#: editor/plugins/spatial_editor_plugin.cpp
msgid "Transform Dialog.."
msgstr ""
@@ -5233,6 +5345,10 @@ msgid "Settings"
msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
+msgid "Skeleton Gizmo visibility"
+msgstr ""
+
+#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Settings"
msgstr ""
@@ -5618,6 +5734,10 @@ msgid "Merge from scene?"
msgstr ""
#: editor/plugins/tile_set_editor_plugin.cpp
+msgid "Tile Set"
+msgstr ""
+
+#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create from Scene"
msgstr ""
@@ -5629,6 +5749,10 @@ msgstr ""
msgid "Error"
msgstr ""
+#: editor/progress_dialog.cpp scene/gui/dialogs.cpp
+msgid "Cancel"
+msgstr ""
+
#: editor/project_export.cpp
msgid "Runnable"
msgstr ""
@@ -5749,10 +5873,6 @@ msgid "Imported Project"
msgstr ""
#: editor/project_manager.cpp
-msgid " "
-msgstr ""
-
-#: editor/project_manager.cpp
msgid "It would be a good idea to name your project."
msgstr ""
@@ -6013,8 +6133,9 @@ msgid "Joypad Button Index:"
msgstr ""
#: editor/project_settings_editor.cpp
-msgid "Add Input Action"
-msgstr ""
+#, fuzzy
+msgid "Erase Input Action"
+msgstr "æ‰€æœ‰çš„é¸æ“‡"
#: editor/project_settings_editor.cpp
msgid "Erase Input Action Event"
@@ -6082,6 +6203,10 @@ msgid "Already existing"
msgstr ""
#: editor/project_settings_editor.cpp
+msgid "Add Input Action"
+msgstr ""
+
+#: editor/project_settings_editor.cpp
msgid "Error saving settings."
msgstr ""
@@ -6261,6 +6386,10 @@ msgid "New Script"
msgstr ""
#: editor/property_editor.cpp
+msgid "New %s"
+msgstr ""
+
+#: editor/property_editor.cpp
msgid "Make Unique"
msgstr ""
@@ -6293,6 +6422,10 @@ msgstr ""
msgid "On"
msgstr ""
+#: editor/property_editor.cpp
+msgid "[Empty]"
+msgstr ""
+
#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp
msgid "Set"
msgstr ""
@@ -6301,10 +6434,6 @@ msgstr ""
msgid "Properties:"
msgstr ""
-#: editor/property_editor.cpp
-msgid "Sections:"
-msgstr ""
-
#: editor/property_selector.cpp
msgid "Select Property"
msgstr ""
@@ -6866,6 +6995,10 @@ msgstr ""
msgid "Shortcuts"
msgstr "æ·å¾‘"
+#: editor/settings_config_dialog.cpp
+msgid "Binding"
+msgstr ""
+
#: editor/spatial_editor_gizmos.cpp
msgid "Change Light Radius"
msgstr "變更光æºåŠå¾‘"
@@ -6915,15 +7048,52 @@ msgstr ""
msgid "Change Probe Extents"
msgstr "變更框型範åœ"
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select the dynamic library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Select dependencies of the library for this entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+#, fuzzy
+msgid "Remove current entry"
+msgstr "移除"
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Double click to create a new entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform:"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Platform"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Dynamic Library"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "Add an architecture entry"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_editor_plugin.cpp
+msgid "GDNativeLibrary"
+msgstr ""
+
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Status"
msgstr ""
-#: modules/gdnative/gd_native_library_editor.cpp
+#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Libraries: "
msgstr ""
@@ -7595,6 +7765,22 @@ msgstr ""
msgid "ARVROrigin requires an ARVRCamera child node"
msgstr ""
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Meshes: "
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Plotting Lights:"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp
+msgid "Finishing Plot"
+msgstr ""
+
+#: scene/3d/baked_lightmap.cpp
+msgid "Lighting Meshes: "
+msgstr ""
+
#: scene/3d/collision_polygon.cpp
msgid ""
"CollisionPolygon only serves to provide a collision shape to a "
@@ -7623,10 +7809,6 @@ msgstr ""
msgid "Plotting Meshes"
msgstr ""
-#: scene/3d/gi_probe.cpp
-msgid "Finishing Plot"
-msgstr ""
-
#: scene/3d/navigation_mesh.cpp
msgid "A NavigationMesh resource must be set or created for this node to work."
msgstr ""
@@ -7679,10 +7861,6 @@ msgid "Add current color as a preset"
msgstr ""
#: scene/gui/dialogs.cpp
-msgid "Cancel"
-msgstr ""
-
-#: scene/gui/dialogs.cpp
msgid "Alert!"
msgstr ""
@@ -7743,6 +7921,9 @@ msgstr "讀å–字體錯誤。"
msgid "Invalid font size."
msgstr "無效的字體大å°ã€‚"
+#~ msgid "List:"
+#~ msgstr "列表:"
+
#, fuzzy
#~ msgid "Selection -> Duplicate"
#~ msgstr "åƒ…é¸æ“‡å€åŸŸ"
diff --git a/main/SCsub b/main/SCsub
index 2cc617fc2c..5748bc38d2 100644
--- a/main/SCsub
+++ b/main/SCsub
@@ -24,6 +24,27 @@ def make_splash(target, source, env):
g.write("#endif")
+def make_splash_editor(target, source, env):
+
+ src = source[0].srcnode().abspath
+ dst = target[0].srcnode().abspath
+ f = open(src, "rb")
+ g = open(dst, "w")
+
+ buf = f.read()
+
+ g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
+ g.write("#ifndef BOOT_SPLASH_EDITOR_H\n")
+ g.write("#define BOOT_SPLASH_EDITOR_H\n")
+ g.write('static const Color boot_splash_editor_bg_color = Color::html("#232323");\n')
+ g.write("static const unsigned char boot_splash_editor_png[] = {\n")
+ for i in range(len(buf)):
+ g.write(byte_to_str(buf[i]) + ",\n")
+ g.write("};\n")
+ g.write("#endif")
+
+
+
def make_app_icon(target, source, env):
src = source[0].srcnode().abspath
@@ -51,6 +72,9 @@ Export('env')
env.Depends("#main/splash.gen.h", "#main/splash.png")
env.Command("#main/splash.gen.h", "#main/splash.png", make_splash)
+env.Depends("#main/splash_editor.gen.h", "#main/splash_editor.png")
+env.Command("#main/splash_editor.gen.h", "#main/splash_editor.png", make_splash_editor)
+
env.Depends("#main/app_icon.gen.h", "#main/app_icon.png")
env.Command("#main/app_icon.gen.h", "#main/app_icon.png", make_app_icon)
diff --git a/main/main.cpp b/main/main.cpp
index c6e20f6d3b..5648676c4c 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -42,6 +42,7 @@
#include "script_debugger_remote.h"
#include "servers/register_server_types.h"
#include "splash.gen.h"
+#include "splash_editor.gen.h"
#include "input_map.h"
#include "io/resource_loader.h"
@@ -1051,7 +1052,12 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
#ifndef NO_DEFAULT_BOOT_LOGO
MAIN_PRINT("Main: Create bootsplash");
+#if defined(TOOLS_ENABLED) && !defined(NO_EDITOR_SPLASH)
+
+ Ref<Image> splash = editor ? memnew(Image(boot_splash_editor_png)) : memnew(Image(boot_splash_png));
+#else
Ref<Image> splash = memnew(Image(boot_splash_png));
+#endif
MAIN_PRINT("Main: ClearColor");
VisualServer::get_singleton()->set_default_clear_color(boot_splash_bg_color);
@@ -1442,6 +1448,9 @@ bool Main::start() {
bool snap_controls = GLOBAL_DEF("gui/common/snap_controls_to_pixels", true);
sml->get_root()->set_snap_controls_to_pixels(snap_controls);
+ bool font_oversampling = GLOBAL_DEF("rendering/quality/dynamic_fonts/use_oversampling", false);
+ sml->set_use_font_oversampling(font_oversampling);
+
} else {
GLOBAL_DEF("display/window/stretch/mode", "disabled");
ProjectSettings::get_singleton()->set_custom_property_info("display/window/stretch/mode", PropertyInfo(Variant::STRING, "display/window/stretch/mode", PROPERTY_HINT_ENUM, "disabled,2d,viewport"));
@@ -1452,6 +1461,7 @@ bool Main::start() {
sml->set_auto_accept_quit(GLOBAL_DEF("application/config/auto_accept_quit", true));
sml->set_quit_on_go_back(GLOBAL_DEF("application/config/quit_on_go_back", true));
GLOBAL_DEF("gui/common/snap_controls_to_pixels", true);
+ GLOBAL_DEF("rendering/quality/dynamic_fonts/use_oversampling", false);
}
String local_game_path;
@@ -1861,6 +1871,7 @@ void Main::cleanup() {
if (engine)
memdelete(engine);
+ message_queue->flush();
memdelete(message_queue);
unregister_core_driver_types();
diff --git a/main/splash_sponsors.png b/main/splash_editor.png
index d8677f1749..d8677f1749 100644
--- a/main/splash_sponsors.png
+++ b/main/splash_editor.png
Binary files differ
diff --git a/methods.py b/methods.py
index e861303e63..f9da6c8dd5 100644
--- a/methods.py
+++ b/methods.py
@@ -1755,16 +1755,16 @@ def precious_program(env, program, sources, **args):
return program
def add_shared_library(env, name, sources, **args):
- library = env.SharedLibrary(name, sources, **args)
- env.NoCache(library)
- return library
+ library = env.SharedLibrary(name, sources, **args)
+ env.NoCache(library)
+ return library
def add_library(env, name, sources, **args):
- library = env.Library(name, sources, **args)
- env.NoCache(library)
- return library
+ library = env.Library(name, sources, **args)
+ env.NoCache(library)
+ return library
def add_program(env, name, sources, **args):
- program = env.Program(name, sources, **args)
- env.NoCache(program)
- return program
+ program = env.Program(name, sources, **args)
+ env.NoCache(program)
+ return program
diff --git a/modules/bullet/godot_result_callbacks.cpp b/modules/bullet/godot_result_callbacks.cpp
index cbf30c8a2e..37e45cfff8 100644
--- a/modules/bullet/godot_result_callbacks.cpp
+++ b/modules/bullet/godot_result_callbacks.cpp
@@ -142,6 +142,9 @@ bool GodotAllContactResultCallback::needsCollision(btBroadphaseProxy *proxy0) co
btScalar GodotAllContactResultCallback::addSingleResult(btManifoldPoint &cp, const btCollisionObjectWrapper *colObj0Wrap, int partId0, int index0, const btCollisionObjectWrapper *colObj1Wrap, int partId1, int index1) {
+ if (m_count >= m_resultMax)
+ return cp.getDistance();
+
if (cp.getDistance() <= 0) {
PhysicsDirectSpaceState::ShapeResult &result = m_results[m_count];
@@ -165,7 +168,7 @@ btScalar GodotAllContactResultCallback::addSingleResult(btManifoldPoint &cp, con
++m_count;
}
- return m_count < m_resultMax;
+ return cp.getDistance();
}
bool GodotContactPairContactResultCallback::needsCollision(btBroadphaseProxy *proxy0) const {
diff --git a/modules/bullet/rigid_body_bullet.cpp b/modules/bullet/rigid_body_bullet.cpp
index 669b2c3f0c..5e736c1856 100644
--- a/modules/bullet/rigid_body_bullet.cpp
+++ b/modules/bullet/rigid_body_bullet.cpp
@@ -264,6 +264,7 @@ RigidBodyBullet::RigidBodyBullet() :
can_sleep(true),
force_integration_callback(NULL),
isTransformChanged(false),
+ previousActiveState(true),
maxCollisionsDetection(0),
collisionsCount(0),
maxAreasWhereIam(10),
@@ -287,6 +288,7 @@ RigidBodyBullet::RigidBodyBullet() :
for (int i = areasWhereIam.size() - 1; 0 <= i; --i) {
areasWhereIam[i] = NULL;
}
+ btBody->setSleepingThresholds(0.2, 0.2);
}
RigidBodyBullet::~RigidBodyBullet() {
@@ -337,7 +339,7 @@ void RigidBodyBullet::set_space(SpaceBullet *p_space) {
void RigidBodyBullet::dispatch_callbacks() {
/// The check isTransformChanged is necessary in order to call integrated forces only when the first transform is sent
- if (btBody->isActive() && force_integration_callback && isTransformChanged) {
+ if ((btBody->isActive() || previousActiveState != btBody->isActive()) && force_integration_callback && isTransformChanged) {
BulletPhysicsDirectBodyState *bodyDirect = BulletPhysicsDirectBodyState::get_singleton(this);
@@ -364,6 +366,8 @@ void RigidBodyBullet::dispatch_callbacks() {
/// Lock axis
btBody->setLinearVelocity(btBody->getLinearVelocity() * btBody->getLinearFactor());
btBody->setAngularVelocity(btBody->getAngularVelocity() * btBody->getAngularFactor());
+
+ previousActiveState = btBody->isActive();
}
void RigidBodyBullet::set_force_integration_callback(ObjectID p_id, const StringName &p_method, const Variant &p_udata) {
@@ -580,7 +584,8 @@ Variant RigidBodyBullet::get_state(PhysicsServer::BodyState p_state) const {
void RigidBodyBullet::apply_central_impulse(const Vector3 &p_impulse) {
btVector3 btImpu;
G_TO_B(p_impulse, btImpu);
- btBody->activate();
+ if (Vector3() != p_impulse)
+ btBody->activate();
btBody->applyCentralImpulse(btImpu);
}
@@ -589,14 +594,16 @@ void RigidBodyBullet::apply_impulse(const Vector3 &p_pos, const Vector3 &p_impul
btVector3 btPos;
G_TO_B(p_impulse, btImpu);
G_TO_B(p_pos, btPos);
- btBody->activate();
+ if (Vector3() != p_impulse)
+ btBody->activate();
btBody->applyImpulse(btImpu, btPos);
}
void RigidBodyBullet::apply_torque_impulse(const Vector3 &p_impulse) {
btVector3 btImp;
G_TO_B(p_impulse, btImp);
- btBody->activate();
+ if (Vector3() != p_impulse)
+ btBody->activate();
btBody->applyTorqueImpulse(btImp);
}
@@ -605,28 +612,32 @@ void RigidBodyBullet::apply_force(const Vector3 &p_force, const Vector3 &p_pos)
btVector3 btPos;
G_TO_B(p_force, btForce);
G_TO_B(p_pos, btPos);
- btBody->activate();
+ if (Vector3() != p_force)
+ btBody->activate();
btBody->applyForce(btForce, btPos);
}
void RigidBodyBullet::apply_central_force(const Vector3 &p_force) {
btVector3 btForce;
G_TO_B(p_force, btForce);
- btBody->activate();
+ if (Vector3() != p_force)
+ btBody->activate();
btBody->applyCentralForce(btForce);
}
void RigidBodyBullet::apply_torque(const Vector3 &p_torque) {
btVector3 btTorq;
G_TO_B(p_torque, btTorq);
- btBody->activate();
+ if (Vector3() != p_torque)
+ btBody->activate();
btBody->applyTorque(btTorq);
}
void RigidBodyBullet::set_applied_force(const Vector3 &p_force) {
btVector3 btVec = btBody->getTotalTorque();
- btBody->activate();
+ if (Vector3() != p_force)
+ btBody->activate();
btBody->clearForces();
btBody->applyTorque(btVec);
@@ -644,7 +655,8 @@ Vector3 RigidBodyBullet::get_applied_force() const {
void RigidBodyBullet::set_applied_torque(const Vector3 &p_torque) {
btVector3 btVec = btBody->getTotalForce();
- btBody->activate();
+ if (Vector3() != p_torque)
+ btBody->activate();
btBody->clearForces();
btBody->applyCentralForce(btVec);
@@ -711,7 +723,8 @@ bool RigidBodyBullet::is_continuous_collision_detection_enabled() const {
void RigidBodyBullet::set_linear_velocity(const Vector3 &p_velocity) {
btVector3 btVec;
G_TO_B(p_velocity, btVec);
- btBody->activate();
+ if (Vector3() != p_velocity)
+ btBody->activate();
btBody->setLinearVelocity(btVec);
}
@@ -724,7 +737,8 @@ Vector3 RigidBodyBullet::get_linear_velocity() const {
void RigidBodyBullet::set_angular_velocity(const Vector3 &p_velocity) {
btVector3 btVec;
G_TO_B(p_velocity, btVec);
- btBody->activate();
+ if (Vector3() != p_velocity)
+ btBody->activate();
btBody->setAngularVelocity(btVec);
}
@@ -833,6 +847,9 @@ void RigidBodyBullet::on_exit_area(AreaBullet *p_area) {
void RigidBodyBullet::reload_space_override_modificator() {
+ if (!is_active())
+ return;
+
Vector3 newGravity(space->get_gravity_direction() * space->get_gravity_magnitude());
real_t newLinearDamp(linearDamp);
real_t newAngularDamp(angularDamp);
diff --git a/modules/bullet/rigid_body_bullet.h b/modules/bullet/rigid_body_bullet.h
index c0eb148e24..c3b72172d9 100644
--- a/modules/bullet/rigid_body_bullet.h
+++ b/modules/bullet/rigid_body_bullet.h
@@ -207,6 +207,7 @@ private:
bool isScratchedSpaceOverrideModificator;
bool isTransformChanged;
+ bool previousActiveState; // Last check state
ForceIntegrationCallback *force_integration_callback;
diff --git a/modules/enet/networked_multiplayer_enet.cpp b/modules/enet/networked_multiplayer_enet.cpp
index ce485956b4..396bebf0ea 100644
--- a/modules/enet/networked_multiplayer_enet.cpp
+++ b/modules/enet/networked_multiplayer_enet.cpp
@@ -386,7 +386,7 @@ int NetworkedMultiplayerENet::get_available_packet_count() const {
return incoming_packets.size();
}
-Error NetworkedMultiplayerENet::get_packet(const uint8_t **r_buffer, int &r_buffer_size) const {
+Error NetworkedMultiplayerENet::get_packet(const uint8_t **r_buffer, int &r_buffer_size) {
ERR_FAIL_COND_V(incoming_packets.size() == 0, ERR_UNAVAILABLE);
@@ -480,7 +480,7 @@ int NetworkedMultiplayerENet::get_max_packet_size() const {
return 1 << 24; //anything is good
}
-void NetworkedMultiplayerENet::_pop_current_packet() const {
+void NetworkedMultiplayerENet::_pop_current_packet() {
if (current_packet.packet) {
enet_packet_destroy(current_packet.packet);
diff --git a/modules/enet/networked_multiplayer_enet.h b/modules/enet/networked_multiplayer_enet.h
index 81d517147d..d7bc5c7849 100644
--- a/modules/enet/networked_multiplayer_enet.h
+++ b/modules/enet/networked_multiplayer_enet.h
@@ -86,12 +86,12 @@ private:
CompressionMode compression_mode;
- mutable List<Packet> incoming_packets;
+ List<Packet> incoming_packets;
- mutable Packet current_packet;
+ Packet current_packet;
uint32_t _gen_unique_id() const;
- void _pop_current_packet() const;
+ void _pop_current_packet();
Vector<uint8_t> src_compressor_mem;
Vector<uint8_t> dst_compressor_mem;
@@ -123,7 +123,7 @@ public:
virtual bool is_server() const;
virtual int get_available_packet_count() const;
- virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size) const; ///< buffer is GONE after next get_packet
+ virtual Error get_packet(const uint8_t **r_buffer, int &r_buffer_size); ///< buffer is GONE after next get_packet
virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size);
virtual int get_max_packet_size() const;
diff --git a/modules/gdnative/SCsub b/modules/gdnative/SCsub
index fd11c8d094..4e73ebfb9d 100644
--- a/modules/gdnative/SCsub
+++ b/modules/gdnative/SCsub
@@ -3,12 +3,12 @@
Import('env')
gdn_env = env.Clone()
-
-gdn_env.add_source_files(env.modules_sources, "gd_native_library_editor.cpp")
gdn_env.add_source_files(env.modules_sources, "gdnative.cpp")
gdn_env.add_source_files(env.modules_sources, "register_types.cpp")
gdn_env.add_source_files(env.modules_sources, "gdnative/*.cpp")
gdn_env.add_source_files(env.modules_sources, "nativescript/*.cpp")
+gdn_env.add_source_files(env.modules_sources, "gdnative_library_singleton_editor.cpp")
+gdn_env.add_source_files(env.modules_sources, "gdnative_library_editor_plugin.cpp")
gdn_env.Append(CPPPATH=['#modules/gdnative/include/'])
diff --git a/modules/gdnative/gdnative/gdnative.cpp b/modules/gdnative/gdnative/gdnative.cpp
index 92a88e354b..8ff67b10b1 100644
--- a/modules/gdnative/gdnative/gdnative.cpp
+++ b/modules/gdnative/gdnative/gdnative.cpp
@@ -52,10 +52,6 @@ godot_object GDAPI *godot_global_get_singleton(char *p_name) {
return (godot_object *)Engine::get_singleton()->get_singleton_object(String(p_name));
} // result shouldn't be freed
-void GDAPI *godot_get_stack_bottom() {
- return OS::get_singleton()->get_stack_bottom();
-}
-
// MethodBind API
godot_method_bind GDAPI *godot_method_bind_get_method(const char *p_classname, const char *p_methodname) {
diff --git a/modules/gdnative/gdnative_api.json b/modules/gdnative/gdnative_api.json
index b7b2553435..06c6e9f410 100644
--- a/modules/gdnative/gdnative_api.json
+++ b/modules/gdnative/gdnative_api.json
@@ -5533,12 +5533,6 @@
]
},
{
- "name": "godot_get_stack_bottom",
- "return_type": "void *",
- "arguments": [
- ]
- },
- {
"name": "godot_method_bind_get_method",
"return_type": "godot_method_bind *",
"arguments": [
diff --git a/modules/gdnative/gdnative_library_editor_plugin.cpp b/modules/gdnative/gdnative_library_editor_plugin.cpp
new file mode 100644
index 0000000000..1e638ab702
--- /dev/null
+++ b/modules/gdnative/gdnative_library_editor_plugin.cpp
@@ -0,0 +1,423 @@
+/*************************************************************************/
+/* gdnative_library_editor_plugin.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+
+#ifdef TOOLS_ENABLED
+#include "gdnative_library_editor_plugin.h"
+#include "gdnative.h"
+
+void GDNativeLibraryEditor::edit(Ref<GDNativeLibrary> p_library) {
+ library = p_library;
+ Ref<ConfigFile> config = p_library->get_config_file();
+
+ for (Map<String, NativePlatformConfig>::Element *E = platforms.front(); E; E = E->next()) {
+ for (List<String>::Element *it = E->value().entries.front(); it; it = it->next()) {
+
+ String target = E->key() + "." + it->get();
+ TargetConfig ecfg;
+ ecfg.library = config->get_value("entry", target, "");
+ ecfg.dependencies = config->get_value("dependencies", target, Array());
+ entry_configs[target] = ecfg;
+ }
+ }
+
+ _update_tree();
+}
+
+void GDNativeLibraryEditor::_bind_methods() {
+
+ ClassDB::bind_method("_on_item_button", &GDNativeLibraryEditor::_on_item_button);
+ ClassDB::bind_method("_on_library_selected", &GDNativeLibraryEditor::_on_library_selected);
+ ClassDB::bind_method("_on_dependencies_selected", &GDNativeLibraryEditor::_on_dependencies_selected);
+ ClassDB::bind_method("_on_filter_selected", &GDNativeLibraryEditor::_on_filter_selected);
+ ClassDB::bind_method("_on_item_collapsed", &GDNativeLibraryEditor::_on_item_collapsed);
+ ClassDB::bind_method("_on_item_activated", &GDNativeLibraryEditor::_on_item_activated);
+ ClassDB::bind_method("_on_create_new_entry", &GDNativeLibraryEditor::_on_create_new_entry);
+}
+
+void GDNativeLibraryEditor::_update_tree() {
+
+ tree->clear();
+ TreeItem *root = tree->create_item();
+
+ for (Map<String, NativePlatformConfig>::Element *E = platforms.front(); E; E = E->next()) {
+
+ if (showing_platform != E->key() && showing_platform != "All")
+ continue;
+
+ TreeItem *platform = tree->create_item(root);
+ platform->set_text(0, E->get().name);
+ platform->set_metadata(0, E->get().library_extension);
+
+ platform->set_custom_bg_color(0, get_color("prop_category", "Editor"));
+ platform->set_custom_bg_color(1, get_color("prop_category", "Editor"));
+ platform->set_custom_bg_color(2, get_color("prop_category", "Editor"));
+ platform->set_selectable(0, false);
+ platform->set_expand_right(0, true);
+
+ for (List<String>::Element *it = E->value().entries.front(); it; it = it->next()) {
+
+ String target = E->key() + "." + it->get();
+ TreeItem *bit = tree->create_item(platform);
+
+ bit->set_text(0, it->get());
+ bit->set_metadata(0, target);
+ bit->set_selectable(0, false);
+ bit->set_custom_bg_color(0, get_color("prop_subsection", "Editor"));
+
+ bit->add_button(1, get_icon("Folder", "EditorIcons"), BUTTON_SELECT_LIBRARY, false, TTR("Select the dynamic library for this entry"));
+ String file = entry_configs[target].library;
+ if (!file.empty()) {
+ bit->add_button(1, get_icon("Clear", "EditorIcons"), BUTTON_CLEAR_LIBRARY, false, TTR("Clear"));
+ }
+ bit->set_text(1, file);
+
+ bit->add_button(2, get_icon("Folder", "EditorIcons"), BUTTON_SELECT_DEPENDENCES, false, TTR("Select dependencies of the library for this entry"));
+ Array files = entry_configs[target].dependencies;
+ if (files.size()) {
+ bit->add_button(2, get_icon("Clear", "EditorIcons"), BUTTON_CLEAR_DEPENDENCES, false, TTR("Clear"));
+ }
+ bit->set_text(2, Variant(files));
+
+ bit->add_button(3, get_icon("MoveUp", "EditorIcons"), BUTTON_MOVE_UP, false, TTR("Move Up"));
+ bit->add_button(3, get_icon("MoveDown", "EditorIcons"), BUTTON_MOVE_DOWN, false, TTR("Move Down"));
+ bit->add_button(3, get_icon("Remove", "EditorIcons"), BUTTON_ERASE_ENTRY, false, TTR("Remove current entry"));
+ }
+
+ TreeItem *new_arch = tree->create_item(platform);
+ new_arch->set_text(0, TTR("Double click to create a new entry"));
+ new_arch->set_text_align(0, TreeItem::ALIGN_CENTER);
+ new_arch->set_custom_color(0, get_color("accent_color", "Editor"));
+ new_arch->set_expand_right(0, true);
+ new_arch->set_metadata(1, E->key());
+
+ platform->set_collapsed(collapsed_items.find(E->get().name) != NULL);
+ }
+}
+
+void GDNativeLibraryEditor::_on_item_button(Object *item, int column, int id) {
+
+ String target = Object::cast_to<TreeItem>(item)->get_metadata(0);
+ String platform = target.substr(0, target.find("."));
+ String entry = target.substr(platform.length() + 1, target.length());
+ String section = (id == BUTTON_SELECT_DEPENDENCES || id == BUTTON_CLEAR_DEPENDENCES) ? "dependencies" : "entry";
+
+ if (id == BUTTON_SELECT_LIBRARY || id == BUTTON_SELECT_DEPENDENCES) {
+
+ EditorFileDialog::Mode mode = EditorFileDialog::MODE_OPEN_FILE;
+ if (id == BUTTON_SELECT_DEPENDENCES)
+ mode = EditorFileDialog::MODE_OPEN_FILES;
+
+ file_dialog->set_meta("target", target);
+ file_dialog->set_meta("section", section);
+ file_dialog->clear_filters();
+ file_dialog->add_filter(Object::cast_to<TreeItem>(item)->get_parent()->get_metadata(0));
+ file_dialog->set_mode(mode);
+ file_dialog->popup_centered_ratio();
+
+ } else if (id == BUTTON_CLEAR_LIBRARY) {
+ _set_target_value(section, target, "");
+ } else if (id == BUTTON_CLEAR_DEPENDENCES) {
+ _set_target_value(section, target, Array());
+ } else if (id == BUTTON_ERASE_ENTRY) {
+ _erase_entry(platform, entry);
+ } else if (id == BUTTON_MOVE_UP || id == BUTTON_MOVE_DOWN) {
+ _move_entry(platform, entry, id);
+ }
+}
+
+void GDNativeLibraryEditor::_on_library_selected(const String &file) {
+
+ _set_target_value(file_dialog->get_meta("section"), file_dialog->get_meta("target"), file);
+}
+
+void GDNativeLibraryEditor::_on_dependencies_selected(const PoolStringArray &files) {
+
+ _set_target_value(file_dialog->get_meta("section"), file_dialog->get_meta("target"), files);
+}
+
+void GDNativeLibraryEditor::_on_filter_selected(int id) {
+
+ showing_platform = filter->get_item_metadata(id);
+ _update_tree();
+}
+
+void GDNativeLibraryEditor::_on_item_collapsed(Object *p_item) {
+
+ TreeItem *item = Object::cast_to<TreeItem>(p_item);
+ String name = item->get_text(0);
+
+ if (item->is_collapsed()) {
+ collapsed_items.insert(name);
+ } else if (Set<String>::Element *e = collapsed_items.find(name)) {
+ collapsed_items.erase(e);
+ }
+}
+
+void GDNativeLibraryEditor::_on_item_activated() {
+
+ TreeItem *item = tree->get_selected();
+ if (item && tree->get_selected_column() == 0 && item->get_metadata(0).get_type() == Variant::NIL) {
+ new_architecture_dialog->set_meta("platform", item->get_metadata(1));
+ new_architecture_dialog->popup_centered();
+ }
+}
+
+void GDNativeLibraryEditor::_on_create_new_entry() {
+
+ String platform = new_architecture_dialog->get_meta("platform");
+ String entry = new_architecture_input->get_text().strip_edges();
+ if (!entry.empty()) {
+ platforms[platform].entries.push_back(entry);
+ _update_tree();
+ }
+}
+
+void GDNativeLibraryEditor::_set_target_value(const String &section, const String &target, Variant file) {
+ if (section == "entry")
+ entry_configs[target].library = file;
+ else if (section == "dependencies")
+ entry_configs[target].dependencies = file;
+ _translate_to_config_file();
+ _update_tree();
+}
+
+void GDNativeLibraryEditor::_erase_entry(const String &platform, const String &entry) {
+
+ if (platforms.has(platform)) {
+ if (List<String>::Element *E = platforms[platform].entries.find(entry)) {
+
+ String target = platform + "." + entry;
+ Ref<ConfigFile> config = library->get_config_file();
+
+ platforms[platform].entries.erase(E);
+ _set_target_value("entry", target, "");
+ _set_target_value("dependencies", target, Array());
+ _translate_to_config_file();
+ _update_tree();
+ }
+ }
+}
+
+void GDNativeLibraryEditor::_move_entry(const String &platform, const String &entry, int dir) {
+ if (List<String>::Element *E = platforms[platform].entries.find(entry)) {
+ if (E->prev() && dir == BUTTON_MOVE_UP) {
+ platforms[platform].entries.insert_before(E->prev(), E->get());
+ platforms[platform].entries.erase(E);
+ } else if (E->next() && dir == BUTTON_MOVE_DOWN) {
+ platforms[platform].entries.insert_after(E->next(), E->get());
+ platforms[platform].entries.erase(E);
+ }
+ _translate_to_config_file();
+ _update_tree();
+ }
+}
+
+void GDNativeLibraryEditor::_translate_to_config_file() {
+
+ if (!library.is_null()) {
+
+ Ref<ConfigFile> config = library->get_config_file();
+ config->erase_section("entry");
+ config->erase_section("dependencies");
+
+ for (Map<String, NativePlatformConfig>::Element *E = platforms.front(); E; E = E->next()) {
+ for (List<String>::Element *it = E->value().entries.front(); it; it = it->next()) {
+
+ String target = E->key() + "." + it->get();
+ if (entry_configs[target].library.empty() && entry_configs[target].dependencies.empty())
+ continue;
+
+ config->set_value("entry", target, entry_configs[target].library);
+ config->set_value("dependencies", target, entry_configs[target].dependencies);
+ }
+ }
+
+ library->_change_notify();
+ }
+}
+
+GDNativeLibraryEditor::GDNativeLibraryEditor() {
+
+ showing_platform = "All";
+
+ { // Define platforms
+ NativePlatformConfig platform_windows;
+ platform_windows.name = "Windows";
+ platform_windows.entries.push_back("64");
+ platform_windows.entries.push_back("32");
+ platform_windows.library_extension = "*.dll";
+ platforms["Windows"] = platform_windows;
+
+ NativePlatformConfig platform_linux;
+ platform_linux.name = "Linux/X11";
+ platform_linux.entries.push_back("64");
+ platform_linux.entries.push_back("32");
+ platform_linux.library_extension = "*.so";
+ platforms["X11"] = platform_linux;
+
+ NativePlatformConfig platform_osx;
+ platform_osx.name = "Mac OSX";
+ platform_osx.entries.push_back("64");
+ platform_osx.entries.push_back("32");
+ platform_osx.library_extension = "*.dylib";
+ platforms["OSX"] = platform_osx;
+
+ NativePlatformConfig platform_haiku;
+ platform_haiku.name = "Haiku";
+ platform_haiku.entries.push_back("64");
+ platform_haiku.entries.push_back("32");
+ platform_haiku.library_extension = "*.so";
+ platforms["Haiku"] = platform_haiku;
+
+ NativePlatformConfig platform_uwp;
+ platform_uwp.name = "Windows Universal";
+ platform_uwp.entries.push_back("arm");
+ platform_uwp.entries.push_back("x86");
+ platform_uwp.entries.push_back("x64");
+ platform_uwp.library_extension = "*.dll";
+ platforms["UWP"] = platform_uwp;
+
+ NativePlatformConfig platform_android;
+ platform_android.name = "Android";
+ platform_android.entries.push_back("armeabi-v7a");
+ platform_android.entries.push_back("arm64-v8a");
+ platform_android.entries.push_back("x86");
+ platform_android.entries.push_back("x86_64");
+ platform_android.library_extension = "*.so";
+ platforms["Android"] = platform_android;
+
+ // TODO: Javascript platform is not supported yet
+ // NativePlatformConfig platform_html5;
+ // platform_html5.name = "HTML5";
+ // platform_html5.library_extension = "*.wasm";
+ // platforms["Javascript"] = platform_html5;
+
+ NativePlatformConfig platform_ios;
+ platform_ios.name = "iOS";
+ platform_ios.entries.push_back("armv7");
+ platform_ios.entries.push_back("arm64");
+ platform_ios.library_extension = "*.dylib";
+ platforms["iOS"] = platform_ios;
+ }
+
+ VBoxContainer *container = memnew(VBoxContainer);
+ add_child(container);
+ container->set_anchors_and_margins_preset(PRESET_WIDE);
+
+ HBoxContainer *hbox = memnew(HBoxContainer);
+ container->add_child(hbox);
+ Label *label = memnew(Label);
+ label->set_text(TTR("Platform:"));
+ hbox->add_child(label);
+ filter = memnew(OptionButton);
+ hbox->add_child(filter);
+ filter->set_h_size_flags(SIZE_EXPAND_FILL);
+
+ int idx = 0;
+ filter->add_item(TTR("All"), idx);
+ filter->set_item_metadata(idx, "All");
+ idx += 1;
+ for (Map<String, NativePlatformConfig>::Element *E = platforms.front(); E; E = E->next()) {
+ filter->add_item(E->get().name, idx);
+ filter->set_item_metadata(idx, E->key());
+ idx += 1;
+ }
+ filter->connect("item_selected", this, "_on_filter_selected");
+
+ tree = memnew(Tree);
+ container->add_child(tree);
+ tree->set_v_size_flags(SIZE_EXPAND_FILL);
+ tree->set_hide_root(true);
+ tree->set_column_titles_visible(true);
+ tree->set_columns(4);
+ tree->set_column_expand(0, false);
+ tree->set_column_min_width(0, int(200 * EDSCALE));
+ tree->set_column_title(0, TTR("Platform"));
+ tree->set_column_title(1, TTR("Dynamic Library"));
+ tree->set_column_title(2, TTR("Dependencies"));
+ tree->set_column_expand(3, false);
+ tree->set_column_min_width(3, int(110 * EDSCALE));
+ tree->connect("button_pressed", this, "_on_item_button");
+ tree->connect("item_collapsed", this, "_on_item_collapsed");
+ tree->connect("item_activated", this, "_on_item_activated");
+
+ file_dialog = memnew(EditorFileDialog);
+ file_dialog->set_access(EditorFileDialog::ACCESS_RESOURCES);
+ file_dialog->set_resizable(true);
+ add_child(file_dialog);
+ file_dialog->connect("file_selected", this, "_on_library_selected");
+ file_dialog->connect("files_selected", this, "_on_dependencies_selected");
+
+ new_architecture_dialog = memnew(ConfirmationDialog);
+ add_child(new_architecture_dialog);
+ new_architecture_dialog->set_title(TTR("Add an architecture entry"));
+ new_architecture_input = memnew(LineEdit);
+ new_architecture_dialog->add_child(new_architecture_input);
+ new_architecture_dialog->set_custom_minimum_size(Vector2(300, 80) * EDSCALE);
+ new_architecture_input->set_anchors_and_margins_preset(PRESET_HCENTER_WIDE, PRESET_MODE_MINSIZE, 5 * EDSCALE);
+ new_architecture_dialog->get_ok()->connect("pressed", this, "_on_create_new_entry");
+}
+
+void GDNativeLibraryEditorPlugin::edit(Object *p_node) {
+
+ if (Object::cast_to<GDNativeLibrary>(p_node)) {
+ library_editor->edit(Object::cast_to<GDNativeLibrary>(p_node));
+ library_editor->show();
+ } else
+ library_editor->hide();
+}
+
+bool GDNativeLibraryEditorPlugin::handles(Object *p_node) const {
+
+ return p_node->is_class("GDNativeLibrary");
+}
+
+void GDNativeLibraryEditorPlugin::make_visible(bool p_visible) {
+
+ if (p_visible) {
+ button->show();
+ EditorNode::get_singleton()->make_bottom_panel_item_visible(library_editor);
+
+ } else {
+ if (library_editor->is_visible_in_tree())
+ EditorNode::get_singleton()->hide_bottom_panel();
+ button->hide();
+ }
+}
+
+GDNativeLibraryEditorPlugin::GDNativeLibraryEditorPlugin(EditorNode *p_node) {
+
+ library_editor = memnew(GDNativeLibraryEditor);
+ library_editor->set_custom_minimum_size(Size2(0, 250 * EDSCALE));
+ button = p_node->add_bottom_panel_item(TTR("GDNativeLibrary"), library_editor);
+ button->hide();
+}
+
+#endif
diff --git a/modules/gdnative/gdnative_library_editor_plugin.h b/modules/gdnative/gdnative_library_editor_plugin.h
new file mode 100644
index 0000000000..1fa6a0c945
--- /dev/null
+++ b/modules/gdnative/gdnative_library_editor_plugin.h
@@ -0,0 +1,113 @@
+/*************************************************************************/
+/* gdnative_library_editor_plugin.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+#ifndef GDNATIVE_LIBRARY_EDITOR_PLUGIN_H
+#define GDNATIVE_LIBRARY_EDITOR_PLUGIN_H
+
+#ifdef TOOLS_ENABLED
+#include "editor/editor_node.h"
+#include "gdnative.h"
+
+class GDNativeLibraryEditor : public Control {
+
+ GDCLASS(GDNativeLibraryEditor, Control);
+
+ struct NativePlatformConfig {
+ String name;
+ String library_extension;
+ List<String> entries;
+ };
+
+ struct TargetConfig {
+ String library;
+ Array dependencies;
+ };
+
+ enum ItemButton {
+ BUTTON_SELECT_LIBRARY,
+ BUTTON_CLEAR_LIBRARY,
+ BUTTON_SELECT_DEPENDENCES,
+ BUTTON_CLEAR_DEPENDENCES,
+ BUTTON_ERASE_ENTRY,
+ BUTTON_MOVE_UP,
+ BUTTON_MOVE_DOWN,
+ };
+
+ Tree *tree;
+ OptionButton *filter;
+ EditorFileDialog *file_dialog;
+ ConfirmationDialog *new_architecture_dialog;
+ LineEdit *new_architecture_input;
+ Set<String> collapsed_items;
+
+ String showing_platform;
+ Ref<GDNativeLibrary> library;
+ Map<String, NativePlatformConfig> platforms;
+ Map<String, TargetConfig> entry_configs;
+
+protected:
+ static void _bind_methods();
+ void _update_tree();
+ void _on_item_button(Object *item, int column, int id);
+ void _on_library_selected(const String &file);
+ void _on_dependencies_selected(const PoolStringArray &files);
+ void _on_filter_selected(int id);
+ void _on_item_collapsed(Object *item);
+ void _on_item_activated();
+ void _on_create_new_entry();
+ void _set_target_value(const String &section, const String &target, Variant file);
+ void _erase_entry(const String &platform, const String &entry);
+ void _move_entry(const String &platform, const String &entry, int dir);
+ void _translate_to_config_file();
+
+public:
+ void edit(Ref<GDNativeLibrary> p_library);
+
+ GDNativeLibraryEditor();
+};
+
+class GDNativeLibraryEditorPlugin : public EditorPlugin {
+
+ GDCLASS(GDNativeLibraryEditorPlugin, EditorPlugin);
+
+ GDNativeLibraryEditor *library_editor;
+ EditorNode *editor;
+ Button *button;
+
+public:
+ virtual String get_name() const { return "GDNativeLibrary"; }
+ bool has_main_screen() const { return false; }
+ virtual void edit(Object *p_node);
+ virtual bool handles(Object *p_node) const;
+ virtual void make_visible(bool p_visible);
+
+ GDNativeLibraryEditorPlugin(EditorNode *p_node);
+};
+#endif
+#endif // GDNATIVE_LIBRARY_EDITOR_PLUGIN_H
diff --git a/modules/gdnative/gd_native_library_editor.cpp b/modules/gdnative/gdnative_library_singleton_editor.cpp
index fda5dcdcad..2ad497fcad 100644
--- a/modules/gdnative/gd_native_library_editor.cpp
+++ b/modules/gdnative/gdnative_library_singleton_editor.cpp
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* gd_native_library_editor.cpp */
+/* gdnative_library_singleton_editor.cpp */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -28,11 +28,10 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#ifdef TOOLS_ENABLED
-#include "gd_native_library_editor.h"
-
+#include "gdnative_library_singleton_editor.h"
#include "gdnative.h"
-void GDNativeLibraryEditor::_find_gdnative_singletons(EditorFileSystemDirectory *p_dir, const Set<String> &enabled_list) {
+void GDNativeLibrarySingletonEditor::_find_gdnative_singletons(EditorFileSystemDirectory *p_dir, const Set<String> &enabled_list) {
// check children
@@ -65,7 +64,7 @@ void GDNativeLibraryEditor::_find_gdnative_singletons(EditorFileSystemDirectory
}
}
-void GDNativeLibraryEditor::_update_libraries() {
+void GDNativeLibrarySingletonEditor::_update_libraries() {
updating = true;
libraries->clear();
@@ -88,7 +87,7 @@ void GDNativeLibraryEditor::_update_libraries() {
updating = false;
}
-void GDNativeLibraryEditor::_item_edited() {
+void GDNativeLibrarySingletonEditor::_item_edited() {
if (updating)
return;
@@ -119,7 +118,7 @@ void GDNativeLibraryEditor::_item_edited() {
}
}
-void GDNativeLibraryEditor::_notification(int p_what) {
+void GDNativeLibrarySingletonEditor::_notification(int p_what) {
if (p_what == NOTIFICATION_VISIBILITY_CHANGED) {
if (is_visible_in_tree()) {
@@ -128,12 +127,12 @@ void GDNativeLibraryEditor::_notification(int p_what) {
}
}
-void GDNativeLibraryEditor::_bind_methods() {
+void GDNativeLibrarySingletonEditor::_bind_methods() {
- ClassDB::bind_method(D_METHOD("_item_edited"), &GDNativeLibraryEditor::_item_edited);
+ ClassDB::bind_method(D_METHOD("_item_edited"), &GDNativeLibrarySingletonEditor::_item_edited);
}
-GDNativeLibraryEditor::GDNativeLibraryEditor() {
+GDNativeLibrarySingletonEditor::GDNativeLibrarySingletonEditor() {
libraries = memnew(Tree);
libraries->set_columns(2);
libraries->set_column_titles_visible(true);
diff --git a/modules/gdnative/gd_native_library_editor.h b/modules/gdnative/gdnative_library_singleton_editor.h
index a11c4620dd..ee1a32c5a5 100644
--- a/modules/gdnative/gd_native_library_editor.h
+++ b/modules/gdnative/gdnative_library_singleton_editor.h
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* gd_native_library_editor.h */
+/* gdnative_library_singleton_editor.h */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -34,7 +34,7 @@
#include "editor/editor_file_system.h"
#include "editor/project_settings_editor.h"
-class GDNativeLibraryEditor : public VBoxContainer {
+class GDNativeLibrarySingletonEditor : public VBoxContainer {
Tree *libraries;
bool updating;
@@ -48,7 +48,7 @@ protected:
static void _bind_methods();
public:
- GDNativeLibraryEditor();
+ GDNativeLibrarySingletonEditor();
};
#endif
diff --git a/modules/gdnative/include/gdnative/gdnative.h b/modules/gdnative/include/gdnative/gdnative.h
index f7f5606428..9d7829a51f 100644
--- a/modules/gdnative/include/gdnative/gdnative.h
+++ b/modules/gdnative/include/gdnative/gdnative.h
@@ -212,10 +212,6 @@ void GDAPI godot_object_destroy(godot_object *p_o);
godot_object GDAPI *godot_global_get_singleton(char *p_name); // result shouldn't be freed
-////// OS API
-
-void GDAPI *godot_get_stack_bottom(); // returns stack bottom of the main thread
-
////// MethodBind API
typedef struct {
diff --git a/modules/gdnative/register_types.cpp b/modules/gdnative/register_types.cpp
index 1cb35ec006..bd9bae5294 100644
--- a/modules/gdnative/register_types.cpp
+++ b/modules/gdnative/register_types.cpp
@@ -45,7 +45,8 @@
#ifdef TOOLS_ENABLED
#include "editor/editor_node.h"
-#include "gd_native_library_editor.h"
+#include "gdnative_library_editor_plugin.h"
+#include "gdnative_library_singleton_editor.h"
// Class used to discover singleton gdnative files
static void actual_discoverer_handler();
@@ -267,7 +268,7 @@ void GDNativeExportPlugin::_export_file(const String &p_path, const String &p_ty
static void editor_init_callback() {
- GDNativeLibraryEditor *library_editor = memnew(GDNativeLibraryEditor);
+ GDNativeLibrarySingletonEditor *library_editor = memnew(GDNativeLibrarySingletonEditor);
library_editor->set_name(TTR("GDNative"));
ProjectSettingsEditor::get_singleton()->get_tabs()->add_child(library_editor);
@@ -278,6 +279,8 @@ static void editor_init_callback() {
export_plugin.instance();
EditorExport::get_singleton()->add_export_plugin(export_plugin);
+
+ EditorNode::get_singleton()->add_editor_plugin(memnew(GDNativeLibraryEditorPlugin(EditorNode::get_singleton())));
}
#endif
diff --git a/modules/gdscript/gdscript_function.cpp b/modules/gdscript/gdscript_function.cpp
index ee23f0ea0f..d6352f1e6e 100644
--- a/modules/gdscript/gdscript_function.cpp
+++ b/modules/gdscript/gdscript_function.cpp
@@ -1257,6 +1257,8 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
exit_ok = true;
OPCODE_BREAK;
}
+
+// Enable for debugging
#if 0
default: {
diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp
index 36ae61e388..8c110143b8 100644
--- a/modules/gdscript/gdscript_parser.cpp
+++ b/modules/gdscript/gdscript_parser.cpp
@@ -597,12 +597,36 @@ GDScriptParser::Node *GDScriptParser::_parse_expression(Node *p_parent, bool p_s
OperatorNode *op = alloc_node<OperatorNode>();
op->op = OperatorNode::OP_CALL;
+ //Do a quick Array and Dictionary Check. Replace if either require no arguments.
+ bool replaced = false;
+
if (tokenizer->get_token() == GDScriptTokenizer::TK_BUILT_IN_TYPE) {
+ Variant::Type ct = tokenizer->get_token_type();
+ if (p_parsing_constant == false) {
+ if (ct == Variant::ARRAY) {
+ if (tokenizer->get_token(2) == GDScriptTokenizer::TK_PARENTHESIS_CLOSE) {
+ ArrayNode *arr = alloc_node<ArrayNode>();
+ expr = arr;
+ replaced = true;
+ tokenizer->advance(3);
+ }
+ }
+ if (ct == Variant::DICTIONARY) {
+ if (tokenizer->get_token(2) == GDScriptTokenizer::TK_PARENTHESIS_CLOSE) {
+ DictionaryNode *dict = alloc_node<DictionaryNode>();
+ expr = dict;
+ replaced = true;
+ tokenizer->advance(3);
+ }
+ }
+ }
- TypeNode *tn = alloc_node<TypeNode>();
- tn->vtype = tokenizer->get_token_type();
- op->arguments.push_back(tn);
- tokenizer->advance(2);
+ if (!replaced) {
+ TypeNode *tn = alloc_node<TypeNode>();
+ tn->vtype = tokenizer->get_token_type();
+ op->arguments.push_back(tn);
+ tokenizer->advance(2);
+ }
} else if (tokenizer->get_token() == GDScriptTokenizer::TK_BUILT_IN_FUNC) {
BuiltInFunctionNode *bn = alloc_node<BuiltInFunctionNode>();
@@ -628,11 +652,11 @@ GDScriptParser::Node *GDScriptParser::_parse_expression(Node *p_parent, bool p_s
_make_completable_call(0);
completion_node = op;
}
- if (!_parse_arguments(op, op->arguments, p_static, true))
- return NULL;
-
- expr = op;
-
+ if (!replaced) {
+ if (!_parse_arguments(op, op->arguments, p_static, true))
+ return NULL;
+ expr = op;
+ }
} else if (tokenizer->is_token_literal(0, true)) {
// We check with is_token_literal, as this allows us to use match/sync/etc. as a name
//identifier (reference)
diff --git a/modules/gridmap/doc_classes/GridMap.xml b/modules/gridmap/doc_classes/GridMap.xml
index 8c862b52e8..e9bb90631d 100644
--- a/modules/gridmap/doc_classes/GridMap.xml
+++ b/modules/gridmap/doc_classes/GridMap.xml
@@ -21,6 +21,26 @@
Clear all cells.
</description>
</method>
+ <method name="clear_baked_meshes">
+ <return type="void">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_bake_mesh_instance">
+ <return type="RID">
+ </return>
+ <argument index="0" name="idx" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="get_bake_meshes">
+ <return type="Array">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="get_cell_item" qualifiers="const">
<return type="int">
</return>
@@ -103,6 +123,16 @@
Array of [Vector3] with the non empty cell coordinates in the grid map.
</description>
</method>
+ <method name="make_baked_meshes">
+ <return type="void">
+ </return>
+ <argument index="0" name="gen_lightmap_uv" type="bool" default="false">
+ </argument>
+ <argument index="1" name="lightmap_uv_texel_size" type="float" default="0.1">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="map_to_world" qualifiers="const">
<return type="Vector3">
</return>
diff --git a/modules/gridmap/grid_map.cpp b/modules/gridmap/grid_map.cpp
index b3a1947647..0b73cbfc6d 100644
--- a/modules/gridmap/grid_map.cpp
+++ b/modules/gridmap/grid_map.cpp
@@ -101,6 +101,27 @@ bool GridMap::_set(const StringName &p_name, const Variant &p_value) {
}
}
_recreate_octant_data();
+ } else if (name == "baked_meshes") {
+
+ clear_baked_meshes();
+
+ Array meshes = p_value;
+
+ for (int i = 0; i < meshes.size(); i++) {
+ BakedMesh bm;
+ bm.mesh = meshes[i];
+ ERR_CONTINUE(!bm.mesh.is_valid());
+ bm.instance = VS::get_singleton()->instance_create();
+ VS::get_singleton()->get_singleton()->instance_set_base(bm.instance, bm.mesh->get_rid());
+ VS::get_singleton()->instance_attach_object_instance_id(bm.instance, get_instance_id());
+ if (is_inside_tree()) {
+ VS::get_singleton()->instance_set_scenario(bm.instance, get_world()->get_scenario());
+ VS::get_singleton()->instance_set_transform(bm.instance, get_global_transform());
+ }
+ baked_meshes.push_back(bm);
+ }
+
+ _recreate_octant_data();
} else
return false;
@@ -145,6 +166,15 @@ bool GridMap::_get(const StringName &p_name, Variant &r_ret) const {
d["cells"] = cells;
r_ret = d;
+ } else if (name == "baked_meshes") {
+
+ Array ret;
+ ret.resize(baked_meshes.size());
+ for (int i = 0; i < baked_meshes.size(); i++) {
+ ret.push_back(baked_meshes[i].mesh);
+ }
+ r_ret = ret;
+
} else
return false;
@@ -161,6 +191,9 @@ void GridMap::_get_property_list(List<PropertyInfo> *p_list) const {
p_list->push_back(PropertyInfo(Variant::BOOL, "cell_center_y"));
p_list->push_back(PropertyInfo(Variant::BOOL, "cell_center_z"));
p_list->push_back(PropertyInfo(Variant::REAL, "cell_scale"));
+ if (baked_meshes.size()) {
+ p_list->push_back(PropertyInfo(Variant::ARRAY, "baked_meshes", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE));
+ }
p_list->push_back(PropertyInfo(Variant::DICTIONARY, "data", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE));
}
@@ -235,6 +268,12 @@ bool GridMap::get_center_z() const {
void GridMap::set_cell_item(int p_x, int p_y, int p_z, int p_item, int p_rot) {
+ if (baked_meshes.size() && !recreating_octants) {
+ //if you set a cell item, baked meshes go good bye
+ clear_baked_meshes();
+ _recreate_octant_data();
+ }
+
ERR_FAIL_INDEX(ABS(p_x), 1 << 20);
ERR_FAIL_INDEX(ABS(p_y), 1 << 20);
ERR_FAIL_INDEX(ABS(p_z), 1 << 20);
@@ -436,16 +475,17 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
xform.basis.set_orthogonal_index(c.rot);
xform.set_origin(cellpos * cell_size + ofs);
xform.basis.scale(Vector3(cell_scale, cell_scale, cell_scale));
+ if (baked_meshes.size() == 0) {
+ if (theme->get_item_mesh(c.item).is_valid()) {
+ if (!multimesh_items.has(c.item)) {
+ multimesh_items[c.item] = List<Pair<Transform, IndexKey> >();
+ }
- if (theme->get_item_mesh(c.item).is_valid()) {
- if (!multimesh_items.has(c.item)) {
- multimesh_items[c.item] = List<Pair<Transform, IndexKey> >();
+ Pair<Transform, IndexKey> p;
+ p.first = xform;
+ p.second = E->get();
+ multimesh_items[c.item].push_back(p);
}
-
- Pair<Transform, IndexKey> p;
- p.first = xform;
- p.second = E->get();
- multimesh_items[c.item].push_back(p);
}
Vector<MeshLibrary::ShapeData> shapes = theme->get_item_shapes(c.item);
@@ -469,7 +509,7 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
nm.xform = xform;
if (navigation) {
- nm.id = navigation->navmesh_create(navmesh, xform, this);
+ nm.id = navigation->navmesh_add(navmesh, xform, this);
} else {
nm.id = -1;
}
@@ -477,41 +517,44 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
}
}
- //update multimeshes
- for (Map<int, List<Pair<Transform, IndexKey> > >::Element *E = multimesh_items.front(); E; E = E->next()) {
- Octant::MultimeshInstance mmi;
+ //update multimeshes, only if not baked
+ if (baked_meshes.size() == 0) {
+
+ for (Map<int, List<Pair<Transform, IndexKey> > >::Element *E = multimesh_items.front(); E; E = E->next()) {
+ Octant::MultimeshInstance mmi;
- RID mm = VS::get_singleton()->multimesh_create();
- VS::get_singleton()->multimesh_allocate(mm, E->get().size(), VS::MULTIMESH_TRANSFORM_3D, VS::MULTIMESH_COLOR_NONE);
- VS::get_singleton()->multimesh_set_mesh(mm, theme->get_item_mesh(E->key())->get_rid());
+ RID mm = VS::get_singleton()->multimesh_create();
+ VS::get_singleton()->multimesh_allocate(mm, E->get().size(), VS::MULTIMESH_TRANSFORM_3D, VS::MULTIMESH_COLOR_NONE);
+ VS::get_singleton()->multimesh_set_mesh(mm, theme->get_item_mesh(E->key())->get_rid());
- int idx = 0;
- for (List<Pair<Transform, IndexKey> >::Element *F = E->get().front(); F; F = F->next()) {
- VS::get_singleton()->multimesh_instance_set_transform(mm, idx, F->get().first);
+ int idx = 0;
+ for (List<Pair<Transform, IndexKey> >::Element *F = E->get().front(); F; F = F->next()) {
+ VS::get_singleton()->multimesh_instance_set_transform(mm, idx, F->get().first);
#ifdef TOOLS_ENABLED
- Octant::MultimeshInstance::Item it;
- it.index = idx;
- it.transform = F->get().first;
- it.key = F->get().second;
- mmi.items.push_back(it);
+ Octant::MultimeshInstance::Item it;
+ it.index = idx;
+ it.transform = F->get().first;
+ it.key = F->get().second;
+ mmi.items.push_back(it);
#endif
- idx++;
- }
+ idx++;
+ }
- RID instance = VS::get_singleton()->instance_create();
- VS::get_singleton()->instance_set_base(instance, mm);
+ RID instance = VS::get_singleton()->instance_create();
+ VS::get_singleton()->instance_set_base(instance, mm);
- if (is_inside_tree()) {
- VS::get_singleton()->instance_set_scenario(instance, get_world()->get_scenario());
- VS::get_singleton()->instance_set_transform(instance, get_global_transform());
- }
+ if (is_inside_tree()) {
+ VS::get_singleton()->instance_set_scenario(instance, get_world()->get_scenario());
+ VS::get_singleton()->instance_set_transform(instance, get_global_transform());
+ }
- mmi.multimesh = mm;
- mmi.instance = instance;
+ mmi.multimesh = mm;
+ mmi.instance = instance;
- g.multimesh_instances.push_back(mmi);
+ g.multimesh_instances.push_back(mmi);
+ }
}
if (col_debug.size()) {
@@ -556,7 +599,7 @@ void GridMap::_octant_enter_world(const OctantKey &p_key) {
if (cell_map.has(F->key()) && F->get().id < 0) {
Ref<NavigationMesh> nm = theme->get_item_navmesh(cell_map[F->key()].item);
if (nm.is_valid()) {
- F->get().id = navigation->navmesh_create(nm, F->get().xform, this);
+ F->get().id = navigation->navmesh_add(nm, F->get().xform, this);
}
}
}
@@ -642,6 +685,11 @@ void GridMap::_notification(int p_what) {
_octant_enter_world(E->key());
}
+ for (int i = 0; i < baked_meshes.size(); i++) {
+ VS::get_singleton()->instance_set_scenario(baked_meshes[i].instance, get_world()->get_scenario());
+ VS::get_singleton()->instance_set_transform(baked_meshes[i].instance, get_global_transform());
+ }
+
} break;
case NOTIFICATION_TRANSFORM_CHANGED: {
@@ -655,6 +703,10 @@ void GridMap::_notification(int p_what) {
last_transform = new_xform;
+ for (int i = 0; i < baked_meshes.size(); i++) {
+ VS::get_singleton()->instance_set_transform(baked_meshes[i].instance, get_global_transform());
+ }
+
} break;
case NOTIFICATION_EXIT_WORLD: {
@@ -667,6 +719,9 @@ void GridMap::_notification(int p_what) {
//_queue_octants_dirty(MAP_DIRTY_INSTANCES|MAP_DIRTY_TRANSFORMS);
//_update_octants_callback();
//_update_area_instances();
+ for (int i = 0; i < baked_meshes.size(); i++) {
+ VS::get_singleton()->instance_set_scenario(baked_meshes[i].instance, RID());
+ }
} break;
case NOTIFICATION_VISIBILITY_CHANGED: {
@@ -701,12 +756,14 @@ void GridMap::_queue_octants_dirty() {
void GridMap::_recreate_octant_data() {
+ recreating_octants = true;
Map<IndexKey, Cell> cell_copy = cell_map;
_clear_internal();
for (Map<IndexKey, Cell>::Element *E = cell_copy.front(); E; E = E->next()) {
set_cell_item(E->key().x, E->key().y, E->key().z, E->get().item, E->get().rot);
}
+ recreating_octants = false;
}
void GridMap::_clear_internal() {
@@ -726,6 +783,7 @@ void GridMap::_clear_internal() {
void GridMap::clear() {
_clear_internal();
+ clear_baked_meshes();
}
void GridMap::resource_changed(const RES &p_res) {
@@ -791,6 +849,11 @@ void GridMap::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_used_cells"), &GridMap::get_used_cells);
ClassDB::bind_method(D_METHOD("get_meshes"), &GridMap::get_meshes);
+ ClassDB::bind_method(D_METHOD("get_bake_meshes"), &GridMap::get_bake_meshes);
+ ClassDB::bind_method(D_METHOD("get_bake_mesh_instance", "idx"), &GridMap::get_bake_mesh_instance);
+
+ ClassDB::bind_method(D_METHOD("clear_baked_meshes"), &GridMap::clear_baked_meshes);
+ ClassDB::bind_method(D_METHOD("make_baked_meshes", "gen_lightmap_uv", "lightmap_uv_texel_size"), &GridMap::make_baked_meshes, DEFVAL(false), DEFVAL(0.1));
BIND_CONSTANT(INVALID_CELL_ITEM);
}
@@ -883,10 +946,129 @@ Vector3 GridMap::_get_offset() const {
cell_size.z * 0.5 * int(center_z));
}
+void GridMap::clear_baked_meshes() {
+
+ for (int i = 0; i < baked_meshes.size(); i++) {
+ VS::get_singleton()->free(baked_meshes[i].instance);
+ }
+ baked_meshes.clear();
+
+ _recreate_octant_data();
+}
+
+void GridMap::make_baked_meshes(bool p_gen_lightmap_uv, float p_lightmap_uv_texel_size) {
+
+ if (!theme.is_valid())
+ return;
+
+ //generate
+ Map<OctantKey, Map<Ref<Material>, Ref<SurfaceTool> > > surface_map;
+
+ for (Map<IndexKey, Cell>::Element *E = cell_map.front(); E; E = E->next()) {
+
+ IndexKey key = E->key();
+
+ int item = E->get().item;
+ if (!theme->has_item(item))
+ continue;
+
+ Ref<Mesh> mesh = theme->get_item_mesh(item);
+ if (!mesh.is_valid())
+ continue;
+
+ Vector3 cellpos = Vector3(key.x, key.y, key.z);
+ Vector3 ofs = _get_offset();
+
+ Transform xform;
+
+ xform.basis.set_orthogonal_index(E->get().rot);
+ xform.set_origin(cellpos * cell_size + ofs);
+ xform.basis.scale(Vector3(cell_scale, cell_scale, cell_scale));
+
+ OctantKey ok;
+ ok.x = key.x / octant_size;
+ ok.y = key.y / octant_size;
+ ok.z = key.z / octant_size;
+
+ if (!surface_map.has(ok)) {
+ surface_map[ok] = Map<Ref<Material>, Ref<SurfaceTool> >();
+ }
+
+ Map<Ref<Material>, Ref<SurfaceTool> > &mat_map = surface_map[ok];
+
+ for (int i = 0; i < mesh->get_surface_count(); i++) {
+
+ if (mesh->surface_get_primitive_type(i) != Mesh::PRIMITIVE_TRIANGLES)
+ continue;
+
+ Ref<Material> surf_mat = mesh->surface_get_material(i);
+ if (!mat_map.has(surf_mat)) {
+ Ref<SurfaceTool> st;
+ st.instance();
+ st->begin(Mesh::PRIMITIVE_TRIANGLES);
+ st->set_material(surf_mat);
+ mat_map[surf_mat] = st;
+ }
+
+ mat_map[surf_mat]->append_from(mesh, i, xform);
+ }
+ }
+
+ int ofs = 0;
+
+ for (Map<OctantKey, Map<Ref<Material>, Ref<SurfaceTool> > >::Element *E = surface_map.front(); E; E = E->next()) {
+
+ print_line("generating mesh " + itos(ofs++) + "/" + itos(surface_map.size()));
+ Ref<ArrayMesh> mesh;
+ mesh.instance();
+ for (Map<Ref<Material>, Ref<SurfaceTool> >::Element *F = E->get().front(); F; F = F->next()) {
+ F->get()->commit(mesh);
+ }
+
+ BakedMesh bm;
+ bm.mesh = mesh;
+ bm.instance = VS::get_singleton()->instance_create();
+ VS::get_singleton()->get_singleton()->instance_set_base(bm.instance, bm.mesh->get_rid());
+ VS::get_singleton()->instance_attach_object_instance_id(bm.instance, get_instance_id());
+ if (is_inside_tree()) {
+ VS::get_singleton()->instance_set_scenario(bm.instance, get_world()->get_scenario());
+ VS::get_singleton()->instance_set_transform(bm.instance, get_global_transform());
+ }
+
+ if (p_gen_lightmap_uv) {
+ mesh->lightmap_unwrap(get_global_transform(), p_lightmap_uv_texel_size);
+ }
+ baked_meshes.push_back(bm);
+ }
+
+ _recreate_octant_data();
+}
+
+Array GridMap::get_bake_meshes() {
+
+ if (!baked_meshes.size()) {
+ make_baked_meshes(true);
+ }
+
+ Array arr;
+ for (int i = 0; i < baked_meshes.size(); i++) {
+ arr.push_back(baked_meshes[i].mesh);
+ arr.push_back(Transform());
+ }
+
+ return arr;
+}
+
+RID GridMap::get_bake_mesh_instance(int p_idx) {
+
+ ERR_FAIL_INDEX_V(p_idx, baked_meshes.size(), RID());
+ return baked_meshes[p_idx].instance;
+}
+
GridMap::GridMap() {
cell_size = Vector3(2, 2, 2);
- octant_size = 4;
+ octant_size = 8;
awaiting_update = false;
_in_tree = false;
center_x = true;
@@ -901,6 +1083,7 @@ GridMap::GridMap() {
navigation = NULL;
set_notify_transform(true);
+ recreating_octants = false;
}
GridMap::~GridMap() {
diff --git a/modules/gridmap/grid_map.h b/modules/gridmap/grid_map.h
index 5bfdf1dac3..241ac7a434 100644
--- a/modules/gridmap/grid_map.h
+++ b/modules/gridmap/grid_map.h
@@ -148,6 +148,9 @@ class GridMap : public Spatial {
bool clip;
bool clip_above;
int clip_floor;
+
+ bool recreating_octants;
+
Vector3::Axis clip_axis;
Ref<MeshLibrary> theme;
@@ -186,6 +189,13 @@ class GridMap : public Spatial {
Vector3 _get_offset() const;
+ struct BakedMesh {
+ Ref<Mesh> mesh;
+ RID instance;
+ };
+
+ Vector<BakedMesh> baked_meshes;
+
protected:
bool _set(const StringName &p_name, const Variant &p_value);
bool _get(const StringName &p_name, Variant &r_ret) const;
@@ -232,8 +242,14 @@ public:
Array get_meshes();
+ void clear_baked_meshes();
+ void make_baked_meshes(bool p_gen_lightmap_uv = false, float p_lightmap_uv_texel_size = 0.1);
+
void clear();
+ Array get_bake_meshes();
+ RID get_bake_mesh_instance(int p_idx);
+
GridMap();
~GridMap();
};
diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp
index af5a0334c3..44dd776e9a 100644
--- a/modules/mono/csharp_script.cpp
+++ b/modules/mono/csharp_script.cpp
@@ -1376,7 +1376,7 @@ bool CSharpScript::_update_exports() {
hint_string = NATIVE_GDMONOCLASS_NAME(field_type.type_class);
} else {
hint = PropertyHint(CACHED_FIELD(ExportAttribute, hint)->get_int_value(attr));
- hint_string = CACHED_FIELD(ExportAttribute, hint_string)->get_string_value(attr);
+ hint_string = CACHED_FIELD(ExportAttribute, hintString)->get_string_value(attr);
}
PropertyInfo prop_info = PropertyInfo(type, name, hint, hint_string, PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_SCRIPT_VARIABLE);
diff --git a/modules/mono/editor/bindings_generator.cpp b/modules/mono/editor/bindings_generator.cpp
index fbb9b2ed14..d7885ade61 100644
--- a/modules/mono/editor/bindings_generator.cpp
+++ b/modules/mono/editor/bindings_generator.cpp
@@ -108,7 +108,7 @@ const char *BindingsGenerator::TypeInterface::DEFAULT_VARARG_C_IN = "\t%0 %1_in
bool BindingsGenerator::verbose_output = false;
-static String snake_to_pascal_case(const String &p_identifier) {
+static String snake_to_pascal_case(const String &p_identifier, bool p_input_is_upper = false) {
String ret;
Vector<String> parts = p_identifier.split("_", true);
@@ -118,6 +118,10 @@ static String snake_to_pascal_case(const String &p_identifier) {
if (part.length()) {
part[0] = _find_upper(part[0]);
+ if (p_input_is_upper) {
+ for (int j = 1; j < part.length(); j++)
+ part[j] = _find_lower(part[j]);
+ }
ret += part;
} else {
if (i == 0 || i == (parts.size() - 1)) {
@@ -137,7 +141,7 @@ static String snake_to_pascal_case(const String &p_identifier) {
return ret;
}
-static String snake_to_camel_case(const String &p_identifier) {
+static String snake_to_camel_case(const String &p_identifier, bool p_input_is_upper = false) {
String ret;
Vector<String> parts = p_identifier.split("_", true);
@@ -146,8 +150,13 @@ static String snake_to_camel_case(const String &p_identifier) {
String part = parts[i];
if (part.length()) {
- if (i != 0)
+ if (i != 0) {
part[0] = _find_upper(part[0]);
+ }
+ if (p_input_is_upper) {
+ for (int j = i != 0 ? 1 : 0; j < part.length(); j++)
+ part[j] = _find_lower(part[j]);
+ }
ret += part;
} else {
if (i == 0 || i == (parts.size() - 1)) {
@@ -167,6 +176,25 @@ static String snake_to_camel_case(const String &p_identifier) {
return ret;
}
+String BindingsGenerator::_determine_enum_prefix(const EnumInterface &p_ienum) {
+
+ CRASH_COND(p_ienum.constants.empty());
+
+ const List<ConstantInterface>::Element *front = p_ienum.constants.front();
+ int candidate_len = front->get().name.length();
+
+ for (const List<ConstantInterface>::Element *E = front->next(); E; E = E->next()) {
+ int j = 0;
+ for (j = 0; j < candidate_len && j < E->get().name.length(); j++) {
+ if (front->get().name[j] != E->get().name[j])
+ break;
+ }
+ candidate_len = j;
+ }
+
+ return front->get().name.substr(0, candidate_len);
+}
+
void BindingsGenerator::_generate_header_icalls() {
core_custom_icalls.clear();
@@ -220,7 +248,7 @@ void BindingsGenerator::_generate_method_icalls(const TypeInterface &p_itype) {
const TypeInterface *return_type = _get_type_by_name_or_placeholder(imethod.return_type);
String im_sig = "IntPtr " CS_PARAM_METHODBIND ", IntPtr " CS_PARAM_INSTANCE;
- String im_unique_sig = imethod.return_type + ",IntPtr,IntPtr";
+ String im_unique_sig = imethod.return_type.operator String() + ",IntPtr,IntPtr";
// Get arguments information
int i = 0;
@@ -256,6 +284,129 @@ void BindingsGenerator::_generate_method_icalls(const TypeInterface &p_itype) {
}
}
+void BindingsGenerator::_generate_global_constants(List<String> &p_output) {
+
+ // Constants (in partial GD class)
+
+ p_output.push_back("namespace " BINDINGS_NAMESPACE "\n" OPEN_BLOCK);
+ p_output.push_back(INDENT1 "public static partial class " BINDINGS_GLOBAL_SCOPE_CLASS "\n" INDENT1 "{");
+
+ for (const List<ConstantInterface>::Element *E = global_constants.front(); E; E = E->next()) {
+ const ConstantInterface &iconstant = E->get();
+
+ if (iconstant.const_doc && iconstant.const_doc->description.size()) {
+ p_output.push_back(MEMBER_BEGIN "/// <summary>\n");
+
+ Vector<String> description_lines = iconstant.const_doc->description.split("\n");
+
+ for (int i = 0; i < description_lines.size(); i++) {
+ String description_line = description_lines[i].strip_edges();
+ if (description_line.size()) {
+ p_output.push_back(INDENT2 "/// ");
+ p_output.push_back(description_line.xml_escape());
+ p_output.push_back("\n");
+ }
+ }
+
+ p_output.push_back(INDENT2 "/// </summary>");
+ }
+
+ p_output.push_back(MEMBER_BEGIN "public const int ");
+ p_output.push_back(iconstant.name);
+ p_output.push_back(" = ");
+ p_output.push_back(itos(iconstant.value));
+ p_output.push_back(";");
+ }
+
+ if (!global_constants.empty())
+ p_output.push_back("\n");
+
+ p_output.push_back(INDENT1 CLOSE_BLOCK); // end of GD class
+
+ // Enums
+
+ for (List<EnumInterface>::Element *E = global_enums.front(); E; E = E->next()) {
+ const EnumInterface &ienum = E->get();
+
+ CRASH_COND(ienum.constants.empty());
+
+ String enum_proxy_name = ienum.cname.operator String();
+
+ bool enum_in_static_class = false;
+
+ if (enum_proxy_name.find(".") > 0) {
+ enum_in_static_class = true;
+ String enum_class_name = enum_proxy_name.get_slicec('.', 0);
+ enum_proxy_name = enum_proxy_name.get_slicec('.', 1);
+
+ CRASH_COND(enum_class_name != "Variant"); // Hard-coded...
+
+ if (verbose_output) {
+ WARN_PRINTS("Declaring global enum `" + enum_proxy_name + "` inside static class `" + enum_class_name + "`");
+ }
+
+ p_output.push_back("\n" INDENT1 "public static partial class ");
+ p_output.push_back(enum_class_name);
+ p_output.push_back("\n" INDENT1 OPEN_BLOCK);
+ }
+
+ p_output.push_back("\n" INDENT1 "public enum ");
+ p_output.push_back(enum_proxy_name);
+ p_output.push_back("\n" INDENT1 OPEN_BLOCK);
+
+ for (const List<ConstantInterface>::Element *E = ienum.constants.front(); E; E = E->next()) {
+ const ConstantInterface &iconstant = E->get();
+
+ if (iconstant.const_doc && iconstant.const_doc->description.size()) {
+ p_output.push_back(INDENT2 "/// <summary>\n");
+
+ Vector<String> description_lines = iconstant.const_doc->description.split("\n");
+
+ for (int i = 0; i < description_lines.size(); i++) {
+ String description_line = description_lines[i].strip_edges();
+ if (description_line.size()) {
+ p_output.push_back(INDENT2 "/// ");
+ p_output.push_back(description_line.xml_escape());
+ p_output.push_back("\n");
+ }
+ }
+
+ p_output.push_back(INDENT2 "/// </summary>\n");
+ }
+
+ String constant_name = iconstant.name;
+
+ if (!ienum.prefix.empty() && constant_name.begins_with(ienum.prefix)) {
+ constant_name = constant_name.substr(ienum.prefix.length(), constant_name.length());
+ }
+
+ if (constant_name[0] >= '0' && constant_name[0] <= '9') {
+ // The name of enum constants may begin with a numeric digit when strip from the enum prefix,
+ // so we make the prefix one word shorter in those cases.
+ int i = 0;
+ for (i = ienum.prefix.length() - 1; i >= 0; i--) {
+ if (ienum.prefix[i] >= 'A' && ienum.prefix[i] <= 'Z')
+ break;
+ }
+ constant_name = ienum.prefix.substr(i, ienum.prefix.length()) + constant_name;
+ }
+
+ p_output.push_back(INDENT2);
+ p_output.push_back(constant_name);
+ p_output.push_back(" = ");
+ p_output.push_back(itos(iconstant.value));
+ p_output.push_back(E != ienum.constants.back() ? ",\n" : "\n");
+ }
+
+ p_output.push_back(INDENT1 CLOSE_BLOCK);
+
+ if (enum_in_static_class)
+ p_output.push_back(INDENT1 CLOSE_BLOCK);
+ }
+
+ p_output.push_back(CLOSE_BLOCK); // end of namespace
+}
+
Error BindingsGenerator::generate_cs_core_project(const String &p_output_dir, bool p_verbose_output) {
verbose_output = p_verbose_output;
@@ -282,7 +433,19 @@ Error BindingsGenerator::generate_cs_core_project(const String &p_output_dir, bo
if (!solution.set_path(p_output_dir))
return ERR_FILE_NOT_FOUND;
- for (Map<String, TypeInterface>::Element *E = obj_types.front(); E; E = E->next()) {
+ // Generate source file for global scope constants and enums
+ {
+ List<String> constants_source;
+ _generate_global_constants(constants_source);
+ String output_file = path_join(core_dir, BINDINGS_GLOBAL_SCOPE_CLASS "_constants.cs");
+ Error save_err = _save_file(output_file, constants_source);
+ if (save_err != OK)
+ return save_err;
+
+ compile_items.push_back(output_file);
+ }
+
+ for (Map<StringName, TypeInterface>::Element *E = obj_types.front(); E; E = E->next()) {
const TypeInterface &itype = E->get();
if (itype.api_type == ClassDB::API_EDITOR)
@@ -314,49 +477,6 @@ Error BindingsGenerator::generate_cs_core_project(const String &p_output_dir, bo
#undef GENERATE_BUILTIN_TYPE
- // Generate source for GlobalConstants
-
- String constants_source;
- int global_constants_count = GlobalConstants::get_global_constant_count();
-
- if (global_constants_count > 0) {
- Map<String, DocData::ClassDoc>::Element *match = EditorHelp::get_doc_data()->class_list.find("@GlobalScope");
-
- ERR_EXPLAIN("Could not find `@GlobalScope` in DocData");
- ERR_FAIL_COND_V(!match, ERR_BUG);
-
- const DocData::ClassDoc &global_scope_doc = match->value();
-
- for (int i = 0; i < global_constants_count; i++) {
- const DocData::ConstantDoc &const_doc = global_scope_doc.constants[i];
-
- if (i > 0)
- constants_source += MEMBER_BEGIN;
-
- if (const_doc.description.size()) {
- constants_source += "/// <summary>\n";
-
- Vector<String> description_lines = const_doc.description.split("\n");
-
- for (int i = 0; i < description_lines.size(); i++) {
- if (description_lines[i].size()) {
- constants_source += INDENT2 "/// ";
- constants_source += description_lines[i].strip_edges().xml_escape();
- constants_source += "\n";
- }
- }
-
- constants_source += INDENT2 "/// </summary>" MEMBER_BEGIN;
- }
-
- constants_source += "public const int ";
- constants_source += GlobalConstants::get_global_constant_name(i);
- constants_source += " = ";
- constants_source += itos(GlobalConstants::get_global_constant_value(i));
- constants_source += ";";
- }
- }
-
// Generate sources from compressed files
Map<String, CompressedFile> compressed_files;
@@ -372,19 +492,6 @@ Error BindingsGenerator::generate_cs_core_project(const String &p_output_dir, bo
data.resize(file_data.uncompressed_size);
Compression::decompress(data.ptrw(), file_data.uncompressed_size, file_data.data, file_data.compressed_size, Compression::MODE_DEFLATE);
- if (file_name.get_basename() == BINDINGS_GLOBAL_SCOPE_CLASS) {
- // GD.cs must be formatted to include the generated global constants
- String data_str = String::utf8(reinterpret_cast<const char *>(data.ptr()), data.size());
-
- Dictionary format_keys;
- format_keys["GodotGlobalConstants"] = constants_source;
- data_str = data_str.format(format_keys, "/*{_}*/");
-
- CharString data_utf8 = data_str.utf8();
- data.resize(data_utf8.length());
- copymem(data.ptrw(), reinterpret_cast<const uint8_t *>(data_utf8.get_data()), data_utf8.length());
- }
-
FileAccessRef file = FileAccess::open(output_file, FileAccess::WRITE);
ERR_FAIL_COND_V(!file, ERR_FILE_CANT_WRITE);
file->store_buffer(data.ptr(), data.size());
@@ -470,7 +577,7 @@ Error BindingsGenerator::generate_cs_editor_project(const String &p_output_dir,
if (!solution.set_path(p_output_dir))
return ERR_FILE_NOT_FOUND;
- for (Map<String, TypeInterface>::Element *E = obj_types.front(); E; E = E->next()) {
+ for (Map<StringName, TypeInterface>::Element *E = obj_types.front(); E; E = E->next()) {
const TypeInterface &itype = E->get();
if (itype.api_type != ClassDB::API_EDITOR)
@@ -543,7 +650,7 @@ Error BindingsGenerator::generate_cs_editor_project(const String &p_output_dir,
// e.g.: warning CS0108: 'SpriteBase3D.FLAG_MAX' hides inherited member 'GeometryInstance.FLAG_MAX'. Use the new keyword if hiding was intended.
Error BindingsGenerator::_generate_cs_type(const TypeInterface &itype, const String &p_output_file) {
- bool is_derived_type = itype.base_name.length();
+ bool is_derived_type = itype.base_name != StringName();
List<InternalCall> &custom_icalls = itype.api_type == ClassDB::API_EDITOR ? editor_custom_icalls : core_custom_icalls;
@@ -569,9 +676,10 @@ Error BindingsGenerator::_generate_cs_type(const TypeInterface &itype, const Str
Vector<String> description_lines = class_doc->description.split("\n");
for (int i = 0; i < description_lines.size(); i++) {
- if (description_lines[i].size()) {
+ String description_line = description_lines[i].strip_edges();
+ if (description_line.size()) {
output.push_back(INDENT1 "/// ");
- output.push_back(description_lines[i].strip_edges().xml_escape());
+ output.push_back(description_line.xml_escape());
output.push_back("\n");
}
}
@@ -592,7 +700,7 @@ Error BindingsGenerator::_generate_cs_type(const TypeInterface &itype, const Str
output.push_back(obj_types[itype.base_name].proxy_name);
output.push_back("\n");
} else {
- ERR_PRINTS("Base type '" + itype.base_name + "' does not exist, for class " + itype.name);
+ ERR_PRINTS("Base type '" + itype.base_name.operator String() + "' does not exist, for class " + itype.name);
return ERR_INVALID_DATA;
}
@@ -602,18 +710,19 @@ Error BindingsGenerator::_generate_cs_type(const TypeInterface &itype, const Str
// Add constants
- for (int i = 0; i < class_doc->constants.size(); i++) {
- const DocData::ConstantDoc &const_doc = class_doc->constants[i];
+ for (const List<ConstantInterface>::Element *E = itype.constants.front(); E; E = E->next()) {
+ const ConstantInterface &iconstant = E->get();
- if (const_doc.description.size()) {
+ if (iconstant.const_doc && iconstant.const_doc->description.size()) {
output.push_back(MEMBER_BEGIN "/// <summary>\n");
- Vector<String> description_lines = const_doc.description.split("\n");
+ Vector<String> description_lines = iconstant.const_doc->description.split("\n");
for (int i = 0; i < description_lines.size(); i++) {
- if (description_lines[i].size()) {
+ String description_line = description_lines[i].strip_edges();
+ if (description_line.size()) {
output.push_back(INDENT2 "/// ");
- output.push_back(description_lines[i].strip_edges().xml_escape());
+ output.push_back(description_line.xml_escape());
output.push_back("\n");
}
}
@@ -622,24 +731,84 @@ Error BindingsGenerator::_generate_cs_type(const TypeInterface &itype, const Str
}
output.push_back(MEMBER_BEGIN "public const int ");
- output.push_back(const_doc.name);
+ output.push_back(iconstant.name);
output.push_back(" = ");
- output.push_back(const_doc.value);
+ output.push_back(itos(iconstant.value));
output.push_back(";");
}
- if (class_doc->constants.size())
+ if (itype.constants.size())
output.push_back("\n");
- // Add properties
+ // Add enums
+
+ for (const List<EnumInterface>::Element *E = itype.enums.front(); E; E = E->next()) {
+ const EnumInterface &ienum = E->get();
+
+ ERR_FAIL_COND_V(ienum.constants.empty(), ERR_BUG);
+
+ output.push_back(MEMBER_BEGIN "public enum ");
+ output.push_back(ienum.cname.operator String());
+ output.push_back(MEMBER_BEGIN OPEN_BLOCK);
+
+ for (const List<ConstantInterface>::Element *E = ienum.constants.front(); E; E = E->next()) {
+ const ConstantInterface &iconstant = E->get();
+
+ if (iconstant.const_doc && iconstant.const_doc->description.size()) {
+ output.push_back(INDENT3 "/// <summary>\n");
+
+ Vector<String> description_lines = iconstant.const_doc->description.split("\n");
+
+ for (int i = 0; i < description_lines.size(); i++) {
+ String description_line = description_lines[i].strip_edges();
+ if (description_line.size()) {
+ output.push_back(INDENT3 "/// ");
+ output.push_back(description_line.xml_escape());
+ output.push_back("\n");
+ }
+ }
+
+ output.push_back(INDENT3 "/// </summary>\n");
+ }
+
+ String constant_name = iconstant.name;
+
+ if (!ienum.prefix.empty() && constant_name.begins_with(ienum.prefix)) {
+ constant_name = constant_name.substr(ienum.prefix.length(), constant_name.length());
+ }
+
+ if (constant_name[0] >= '0' && constant_name[0] <= '9') {
+ // The name of enum constants may begin with a numeric digit when strip from the enum prefix,
+ // so we make the prefix one word shorter in those cases.
+ int i = 0;
+ for (i = ienum.prefix.length() - 1; i >= 0; i--) {
+ if (ienum.prefix[i] >= 'A' && ienum.prefix[i] <= 'Z')
+ break;
+ }
+ constant_name = ienum.prefix.substr(i, ienum.prefix.length()) + constant_name;
+ }
+
+ output.push_back(INDENT3);
+ output.push_back(constant_name);
+ output.push_back(" = ");
+ output.push_back(itos(iconstant.value));
+ output.push_back(E != ienum.constants.back() ? ",\n" : "\n");
+ }
+
+ output.push_back(INDENT2 CLOSE_BLOCK);
+ }
+
+ if (itype.enums.size())
+ output.push_back("\n");
- const Vector<DocData::PropertyDoc> &properties = class_doc->properties;
+ // Add properties
- for (int i = 0; i < properties.size(); i++) {
- const DocData::PropertyDoc &prop_doc = properties[i];
- Error prop_err = _generate_cs_property(itype, prop_doc, output);
+ for (const List<PropertyInterface>::Element *E = itype.properties.front(); E; E = E->next()) {
+ const PropertyInterface &iprop = E->get();
+ Error prop_err = _generate_cs_property(itype, iprop, output);
if (prop_err != OK) {
- ERR_EXPLAIN("Failed to generate property '" + prop_doc.name + "' for class '" + itype.name + "'");
+ ERR_EXPLAIN("Failed to generate property '" + iprop.cname.operator String() +
+ "' for class '" + itype.name + "'");
ERR_FAIL_V(prop_err);
}
}
@@ -766,14 +935,14 @@ Error BindingsGenerator::_generate_cs_type(const TypeInterface &itype, const Str
" = IntPtr.Zero;\n" CLOSE_BLOCK_L4 CLOSE_BLOCK_L3 INDENT3
"GC.SuppressFinalize(this);\n" INDENT3 "disposed = true;\n" CLOSE_BLOCK_L2);
- Map<String, TypeInterface>::Element *array_itype = builtin_types.find("Array");
+ Map<StringName, TypeInterface>::Element *array_itype = builtin_types.find(name_cache.type_Array);
if (!array_itype) {
ERR_PRINT("BUG: Array type interface not found!");
return ERR_BUG;
}
- Map<String, TypeInterface>::Element *object_itype = obj_types.find("Object");
+ Map<StringName, TypeInterface>::Element *object_itype = obj_types.find("Object");
if (!object_itype) {
ERR_PRINT("BUG: Object type interface not found!");
@@ -787,7 +956,7 @@ Error BindingsGenerator::_generate_cs_type(const TypeInterface &itype, const Str
}
}
- Map<String, String>::Element *extra_member = extra_members.find(itype.name);
+ Map<StringName, String>::Element *extra_member = extra_members.find(itype.cname);
if (extra_member)
output.push_back(extra_member->get());
@@ -820,43 +989,39 @@ Error BindingsGenerator::_generate_cs_type(const TypeInterface &itype, const Str
return _save_file(p_output_file, output);
}
-Error BindingsGenerator::_generate_cs_property(const BindingsGenerator::TypeInterface &p_itype, const DocData::PropertyDoc &p_prop_doc, List<String> &p_output) {
+Error BindingsGenerator::_generate_cs_property(const BindingsGenerator::TypeInterface &p_itype, const PropertyInterface &p_iprop, List<String> &p_output) {
- const MethodInterface *setter = p_itype.find_method_by_name(p_prop_doc.setter);
+ const MethodInterface *setter = p_itype.find_method_by_name(p_iprop.setter);
// Search it in base types too
const TypeInterface *current_type = &p_itype;
- while (!setter && current_type->base_name.length()) {
- Map<String, TypeInterface>::Element *base_match = obj_types.find(current_type->base_name);
+ while (!setter && current_type->base_name != StringName()) {
+ Map<StringName, TypeInterface>::Element *base_match = obj_types.find(current_type->base_name);
ERR_FAIL_NULL_V(base_match, ERR_BUG);
current_type = &base_match->get();
- setter = current_type->find_method_by_name(p_prop_doc.setter);
+ setter = current_type->find_method_by_name(p_iprop.setter);
}
- const MethodInterface *getter = p_itype.find_method_by_name(p_prop_doc.getter);
+ const MethodInterface *getter = p_itype.find_method_by_name(p_iprop.getter);
// Search it in base types too
current_type = &p_itype;
- while (!getter && current_type->base_name.length()) {
- Map<String, TypeInterface>::Element *base_match = obj_types.find(current_type->base_name);
+ while (!getter && current_type->base_name != StringName()) {
+ Map<StringName, TypeInterface>::Element *base_match = obj_types.find(current_type->base_name);
ERR_FAIL_NULL_V(base_match, ERR_BUG);
current_type = &base_match->get();
- getter = current_type->find_method_by_name(p_prop_doc.getter);
+ getter = current_type->find_method_by_name(p_iprop.getter);
}
ERR_FAIL_COND_V(!setter && !getter, ERR_BUG);
- bool is_valid = false;
- int prop_index = ClassDB::get_property_index(p_itype.name, p_prop_doc.name, &is_valid);
- ERR_FAIL_COND_V(!is_valid, ERR_BUG);
-
if (setter) {
- int setter_argc = prop_index != -1 ? 2 : 1;
+ int setter_argc = p_iprop.index != -1 ? 2 : 1;
ERR_FAIL_COND_V(setter->arguments.size() != setter_argc, ERR_BUG);
}
if (getter) {
- int getter_argc = prop_index != -1 ? 1 : 0;
+ int getter_argc = p_iprop.index != -1 ? 1 : 0;
ERR_FAIL_COND_V(getter->arguments.size() != getter_argc, ERR_BUG);
}
@@ -864,18 +1029,12 @@ Error BindingsGenerator::_generate_cs_property(const BindingsGenerator::TypeInte
ERR_FAIL_COND_V(getter->return_type != setter->arguments.back()->get().type, ERR_BUG);
}
- // Let's not trust PropertyDoc::type
- String proptype_name = getter ? getter->return_type : setter->arguments.back()->get().type;
+ StringName proptype_name = getter ? getter->return_type : setter->arguments.back()->get().type;
const TypeInterface *prop_itype = _get_type_by_name_or_null(proptype_name);
- if (!prop_itype) {
- // Try with underscore prefix
- prop_itype = _get_type_by_name_or_null("_" + proptype_name);
- }
+ ERR_FAIL_NULL_V(prop_itype, ERR_BUG); // Property type not found
- ERR_FAIL_NULL_V(prop_itype, ERR_BUG);
-
- String prop_proxy_name = escape_csharp_keyword(snake_to_pascal_case(p_prop_doc.name));
+ String prop_proxy_name = escape_csharp_keyword(snake_to_pascal_case(p_iprop.cname));
// Prevent property and enclosing type from sharing the same name
if (prop_proxy_name == p_itype.proxy_name) {
@@ -887,15 +1046,16 @@ Error BindingsGenerator::_generate_cs_property(const BindingsGenerator::TypeInte
prop_proxy_name += "_";
}
- if (p_prop_doc.description.size()) {
+ if (p_iprop.prop_doc && p_iprop.prop_doc->description.size()) {
p_output.push_back(MEMBER_BEGIN "/// <summary>\n");
- Vector<String> description_lines = p_prop_doc.description.split("\n");
+ Vector<String> description_lines = p_iprop.prop_doc->description.split("\n");
for (int i = 0; i < description_lines.size(); i++) {
- if (description_lines[i].size()) {
+ String description_line = description_lines[i].strip_edges();
+ if (description_line.size()) {
p_output.push_back(INDENT2 "/// ");
- p_output.push_back(description_lines[i].strip_edges().xml_escape());
+ p_output.push_back(description_line.xml_escape());
p_output.push_back("\n");
}
}
@@ -917,16 +1077,34 @@ Error BindingsGenerator::_generate_cs_property(const BindingsGenerator::TypeInte
p_output.push_back(INDENT3 "get\n" OPEN_BLOCK_L3);
p_output.push_back("return ");
p_output.push_back(getter->proxy_name + "(");
- if (prop_index != -1)
- p_output.push_back(itos(prop_index));
+ if (p_iprop.index != -1) {
+ const ArgumentInterface &idx_arg = getter->arguments.front()->get();
+ if (idx_arg.type != name_cache.type_int) {
+ // Assume the index parameter is an enum
+ const TypeInterface *idx_arg_type = _get_type_by_name_or_null(idx_arg.type);
+ CRASH_COND(idx_arg_type == NULL);
+ p_output.push_back("(" + idx_arg_type->proxy_name + ")" + itos(p_iprop.index));
+ } else {
+ p_output.push_back(itos(p_iprop.index));
+ }
+ }
p_output.push_back(");\n" CLOSE_BLOCK_L3);
}
if (setter) {
p_output.push_back(INDENT3 "set\n" OPEN_BLOCK_L3);
p_output.push_back(setter->proxy_name + "(");
- if (prop_index != -1)
- p_output.push_back(itos(prop_index) + ", ");
+ if (p_iprop.index != -1) {
+ const ArgumentInterface &idx_arg = setter->arguments.front()->get();
+ if (idx_arg.type != name_cache.type_int) {
+ // Assume the index parameter is an enum
+ const TypeInterface *idx_arg_type = _get_type_by_name_or_null(idx_arg.type);
+ CRASH_COND(idx_arg_type == NULL);
+ p_output.push_back("(" + idx_arg_type->proxy_name + ")" + itos(p_iprop.index) + ", ");
+ } else {
+ p_output.push_back(itos(p_iprop.index) + ", ");
+ }
+ }
p_output.push_back("value);\n" CLOSE_BLOCK_L3);
}
@@ -1033,9 +1211,10 @@ Error BindingsGenerator::_generate_cs_method(const BindingsGenerator::TypeInterf
Vector<String> description_lines = p_imethod.method_doc->description.split("\n");
for (int i = 0; i < description_lines.size(); i++) {
- if (description_lines[i].size()) {
+ String description_line = description_lines[i].strip_edges();
+ if (description_line.size()) {
p_output.push_back(INDENT2 "/// ");
- p_output.push_back(description_lines[i].strip_edges().xml_escape());
+ p_output.push_back(description_line.xml_escape());
p_output.push_back("\n");
}
}
@@ -1069,7 +1248,7 @@ Error BindingsGenerator::_generate_cs_method(const BindingsGenerator::TypeInterf
if (p_imethod.is_virtual) {
// Godot virtual method must be overridden, therefore we return a default value by default.
- if (return_type->name == "void") {
+ if (return_type->cname == name_cache.type_void) {
p_output.push_back("return;\n" CLOSE_BLOCK_L2);
} else {
p_output.push_back("return default(");
@@ -1108,7 +1287,7 @@ Error BindingsGenerator::_generate_cs_method(const BindingsGenerator::TypeInterf
if (p_imethod.arguments.size())
p_output.push_back(cs_in_statements);
- if (return_type->name == "void") {
+ if (return_type->cname == name_cache.type_void) {
p_output.push_back(im_call);
} else if (return_type->cs_out.empty()) {
p_output.push_back("return " + im_call);
@@ -1142,7 +1321,7 @@ Error BindingsGenerator::generate_glue(const String &p_output_dir) {
generated_icall_funcs.clear();
- for (Map<String, TypeInterface>::Element *type_elem = obj_types.front(); type_elem; type_elem = type_elem->next()) {
+ for (Map<StringName, TypeInterface>::Element *type_elem = obj_types.front(); type_elem; type_elem = type_elem->next()) {
const TypeInterface &itype = type_elem->get();
List<InternalCall> &custom_icalls = itype.api_type == ClassDB::API_EDITOR ? editor_custom_icalls : core_custom_icalls;
@@ -1295,7 +1474,7 @@ Error BindingsGenerator::_generate_glue_method(const BindingsGenerator::TypeInte
if (p_imethod.is_virtual)
return OK; // Ignore
- bool ret_void = p_imethod.return_type == "void";
+ bool ret_void = p_imethod.return_type == name_cache.type_void;
const TypeInterface *return_type = _get_type_by_name_or_placeholder(p_imethod.return_type);
@@ -1447,14 +1626,19 @@ Error BindingsGenerator::_generate_glue_method(const BindingsGenerator::TypeInte
return OK;
}
-const BindingsGenerator::TypeInterface *BindingsGenerator::_get_type_by_name_or_null(const String &p_name) {
+const BindingsGenerator::TypeInterface *BindingsGenerator::_get_type_by_name_or_null(const StringName &p_cname) {
+
+ const Map<StringName, TypeInterface>::Element *match = builtin_types.find(p_cname);
- const Map<String, TypeInterface>::Element *match = builtin_types.find(p_name);
+ if (match)
+ return &match->get();
+
+ match = obj_types.find(p_cname);
if (match)
return &match->get();
- match = obj_types.find(p_name);
+ match = enum_types.find(p_cname);
if (match)
return &match->get();
@@ -1462,24 +1646,27 @@ const BindingsGenerator::TypeInterface *BindingsGenerator::_get_type_by_name_or_
return NULL;
}
-const BindingsGenerator::TypeInterface *BindingsGenerator::_get_type_by_name_or_placeholder(const String &p_name) {
+const BindingsGenerator::TypeInterface *BindingsGenerator::_get_type_by_name_or_placeholder(const StringName &p_cname) {
- const TypeInterface *found = _get_type_by_name_or_null(p_name);
+ const TypeInterface *found = _get_type_by_name_or_null(p_cname);
if (found)
return found;
- ERR_PRINTS(String() + "Type not found. Creating placeholder: " + p_name);
+ ERR_PRINTS(String() + "Type not found. Creating placeholder: " + p_cname.operator String());
- const Map<String, TypeInterface>::Element *match = placeholder_types.find(p_name);
+ const Map<StringName, TypeInterface>::Element *match = placeholder_types.find(p_cname);
if (match)
return &match->get();
TypeInterface placeholder;
- TypeInterface::create_placeholder_type(placeholder, p_name);
+ TypeInterface::create_placeholder_type(placeholder, p_cname);
- return &placeholder_types.insert(placeholder.name, placeholder)->get();
+ return &placeholder_types.insert(placeholder.cname, placeholder)->get();
+}
+
+static void _create_constant_interface_from(const StringName &p_constant, const DocData::ClassDoc &p_classdoc) {
}
void BindingsGenerator::_populate_object_type_interfaces() {
@@ -1490,8 +1677,6 @@ void BindingsGenerator::_populate_object_type_interfaces() {
ClassDB::get_class_list(&class_list);
class_list.sort_custom<StringName::AlphCompare>();
- StringName refclass_name = String("Reference");
-
while (class_list.size()) {
StringName type_cname = class_list.front()->get();
@@ -1502,21 +1687,23 @@ void BindingsGenerator::_populate_object_type_interfaces() {
continue;
}
+ if (!ClassDB::is_class_exposed(type_cname)) {
+ if (verbose_output)
+ WARN_PRINTS("Ignoring type " + type_cname.operator String() + " because it's not exposed");
+ class_list.pop_front();
+ continue;
+ }
+
+ ClassDB::ClassInfo *class_info = ClassDB::classes.getptr(type_cname);
+
TypeInterface itype = TypeInterface::create_object_type(type_cname, api_type);
itype.base_name = ClassDB::get_parent_class(type_cname);
itype.is_singleton = Engine::get_singleton()->has_singleton(itype.proxy_name);
itype.is_instantiable = ClassDB::can_instance(type_cname) && !itype.is_singleton;
- itype.is_reference = ClassDB::is_parent_class(type_cname, refclass_name);
+ itype.is_reference = ClassDB::is_parent_class(type_cname, name_cache.type_Reference);
itype.memory_own = itype.is_reference;
- if (!ClassDB::is_class_exposed(type_cname)) {
- if (verbose_output)
- WARN_PRINTS("Ignoring type " + String(type_cname) + " because it's not exposed");
- class_list.pop_front();
- continue;
- }
-
itype.c_out = "\treturn ";
itype.c_out += C_METHOD_UNMANAGED_GET_MANAGED;
itype.c_out += itype.is_reference ? "(%1.ptr());\n" : "(%1);\n";
@@ -1530,6 +1717,8 @@ void BindingsGenerator::_populate_object_type_interfaces() {
itype.im_type_in = "IntPtr";
itype.im_type_out = itype.proxy_name;
+ // Populate methods
+
List<MethodInfo> virtual_method_list;
ClassDB::get_virtual_methods(type_cname, &virtual_method_list, true);
@@ -1547,6 +1736,7 @@ void BindingsGenerator::_populate_object_type_interfaces() {
MethodInterface imethod;
imethod.name = method_info.name;
+ imethod.cname = imethod.name;
if (method_info.flags & METHOD_FLAG_VIRTUAL)
imethod.is_virtual = true;
@@ -1570,12 +1760,12 @@ void BindingsGenerator::_populate_object_type_interfaces() {
// The method Object.free is registered as a virtual method, but without the virtual flag.
// This is because this method is not supposed to be overridden, but called.
// We assume the return type is void.
- imethod.return_type = "void";
+ imethod.return_type = name_cache.type_void;
// Actually, more methods like this may be added in the future,
// which could actually will return something differnet.
// Let's put this to notify us if that ever happens.
- if (itype.name != "Object" || imethod.name != "free") {
+ if (itype.cname != name_cache.type_Object || imethod.name != "free") {
if (verbose_output) {
WARN_PRINTS("Notification: New unexpected virtual non-overridable method found.\n"
"We only expected Object.free, but found " +
@@ -1585,22 +1775,21 @@ void BindingsGenerator::_populate_object_type_interfaces() {
} else {
ERR_PRINTS("Missing MethodBind for non-virtual method: " + itype.name + "." + imethod.name);
}
- } else if (return_info.type == Variant::INT && return_info.usage & PROPERTY_USAGE_CLASS_IS_ENUM) {
- //imethod.return_type = return_info.class_name;
- imethod.return_type = "int";
+ } else if (return_info.type == Variant::INT && return_info.usage & PROPERTY_USAGE_CLASS_IS_ENUM) { // TODO redundant?
+ imethod.return_type = return_info.class_name;
} else if (return_info.class_name != StringName()) {
imethod.return_type = return_info.class_name;
} else if (return_info.hint == PROPERTY_HINT_RESOURCE_TYPE) {
imethod.return_type = return_info.hint_string;
} else if (return_info.type == Variant::NIL && return_info.usage & PROPERTY_USAGE_NIL_IS_VARIANT) {
- imethod.return_type = "Variant";
+ imethod.return_type = name_cache.type_Variant;
} else if (return_info.type == Variant::NIL) {
- imethod.return_type = "void";
+ imethod.return_type = name_cache.type_void;
} else {
imethod.return_type = Variant::get_type_name(return_info.type);
}
- if (!itype.requires_collections && imethod.return_type == "Dictionary")
+ if (!itype.requires_collections && imethod.return_type == name_cache.type_Dictionary)
itype.requires_collections = true;
for (int i = 0; i < argc; i++) {
@@ -1609,22 +1798,21 @@ void BindingsGenerator::_populate_object_type_interfaces() {
ArgumentInterface iarg;
iarg.name = arginfo.name;
- if (arginfo.type == Variant::INT && arginfo.usage & PROPERTY_USAGE_CLASS_IS_ENUM) {
- //iarg.type = arginfo.class_name;
- iarg.type = "int";
+ if (arginfo.type == Variant::INT && arginfo.usage & PROPERTY_USAGE_CLASS_IS_ENUM) { // TODO redundant?
+ iarg.type = arginfo.class_name;
} else if (arginfo.class_name != StringName()) {
iarg.type = arginfo.class_name;
} else if (arginfo.hint == PROPERTY_HINT_RESOURCE_TYPE) {
iarg.type = arginfo.hint_string;
} else if (arginfo.type == Variant::NIL) {
- iarg.type = "Variant";
+ iarg.type = name_cache.type_Variant;
} else {
iarg.type = Variant::get_type_name(arginfo.type);
}
iarg.name = escape_csharp_keyword(snake_to_camel_case(iarg.name));
- if (!itype.requires_collections && iarg.type == "Dictionary")
+ if (!itype.requires_collections && iarg.type == name_cache.type_Dictionary)
itype.requires_collections = true;
if (m && m->has_default_argument(i)) {
@@ -1636,7 +1824,7 @@ void BindingsGenerator::_populate_object_type_interfaces() {
if (imethod.is_vararg) {
ArgumentInterface ivararg;
- ivararg.type = "VarArg";
+ ivararg.type = name_cache.type_VarArg;
ivararg.name = "@args";
imethod.add_argument(ivararg);
}
@@ -1679,7 +1867,128 @@ void BindingsGenerator::_populate_object_type_interfaces() {
}
}
- obj_types.insert(itype.name, itype);
+ // Populate properties
+
+ List<PropertyInfo> property_list;
+ ClassDB::get_property_list(type_cname, &property_list, true);
+ for (const List<PropertyInfo>::Element *E = property_list.front(); E; E = E->next()) {
+ const PropertyInfo &property = E->get();
+
+ if (property.usage & PROPERTY_USAGE_GROUP || property.usage & PROPERTY_USAGE_CATEGORY)
+ continue;
+
+ PropertyInterface iprop;
+ iprop.cname = property.name;
+ iprop.proxy_name = escape_csharp_keyword(snake_to_pascal_case(iprop.cname));
+ iprop.setter = ClassDB::get_property_setter(type_cname, iprop.cname);
+ iprop.getter = ClassDB::get_property_getter(type_cname, iprop.cname);
+
+ bool valid = false;
+ iprop.index = ClassDB::get_property_index(type_cname, iprop.cname, &valid);
+ ERR_FAIL_COND(!valid);
+
+ // Prevent property and enclosing type from sharing the same name
+ if (iprop.proxy_name == itype.proxy_name) {
+ if (verbose_output) {
+ WARN_PRINTS("Name of property `" + iprop.proxy_name + "` is ambiguous with the name of its class `" +
+ itype.proxy_name + "`. Renaming property to `" + iprop.proxy_name + "_`");
+ }
+
+ iprop.proxy_name += "_";
+ }
+
+ iprop.prop_doc = NULL;
+
+ for (int i = 0; i < itype.class_doc->properties.size(); i++) {
+ const DocData::PropertyDoc &prop_doc = itype.class_doc->properties[i];
+
+ if (prop_doc.name == iprop.cname) {
+ iprop.prop_doc = &prop_doc;
+ break;
+ }
+ }
+
+ itype.properties.push_back(iprop);
+ }
+
+ // Populate enums and constants
+
+ List<String> constant_list;
+ ClassDB::get_integer_constant_list(type_cname, &constant_list, true);
+
+ const HashMap<StringName, List<StringName> > &enum_map = class_info->enum_map;
+ const StringName *k = NULL;
+
+ while ((k = enum_map.next(k))) {
+ StringName enum_proxy_cname = *k;
+ String enum_proxy_name = enum_proxy_cname.operator String();
+ if (itype.find_property_by_proxy_name(enum_proxy_cname)) {
+ // We have several conflicts between enums and PascalCase properties,
+ // so we append 'Enum' to the enum name in those cases.
+ enum_proxy_name += "Enum";
+ enum_proxy_cname = StringName(enum_proxy_name);
+ }
+ EnumInterface ienum(enum_proxy_cname);
+ const List<StringName> &constants = enum_map.get(*k);
+ for (const List<StringName>::Element *E = constants.front(); E; E = E->next()) {
+ int *value = class_info->constant_map.getptr(E->get());
+ ERR_FAIL_NULL(value);
+ constant_list.erase(E->get().operator String());
+
+ ConstantInterface iconstant(snake_to_pascal_case(E->get(), true), *value);
+
+ iconstant.const_doc = NULL;
+ for (int i = 0; i < itype.class_doc->constants.size(); i++) {
+ const DocData::ConstantDoc &const_doc = itype.class_doc->constants[i];
+
+ if (const_doc.name == iconstant.name) {
+ iconstant.const_doc = &const_doc;
+ break;
+ }
+ }
+
+ ienum.constants.push_back(iconstant);
+ }
+
+ ienum.prefix = _determine_enum_prefix(ienum);
+
+ itype.enums.push_back(ienum);
+
+ TypeInterface enum_itype;
+ enum_itype.name = itype.name + "." + String(*k);
+ enum_itype.cname = StringName(enum_itype.name);
+ enum_itype.proxy_name = itype.proxy_name + "." + enum_proxy_name;
+ enum_itype.c_arg_in = "&%s";
+ enum_itype.c_type = "int";
+ enum_itype.c_type_in = "int";
+ enum_itype.c_type_out = "int";
+ enum_itype.cs_type = enum_itype.proxy_name;
+ enum_itype.im_type_in = enum_itype.proxy_name;
+ enum_itype.im_type_out = enum_itype.proxy_name;
+ enum_itype.class_doc = &EditorHelp::get_doc_data()->class_list[enum_itype.proxy_name];
+ enum_types.insert(enum_itype.cname, enum_itype);
+ }
+
+ for (const List<String>::Element *E = constant_list.front(); E; E = E->next()) {
+ int *value = class_info->constant_map.getptr(E->get());
+ ERR_FAIL_NULL(value);
+
+ ConstantInterface iconstant(snake_to_pascal_case(E->get(), true), *value);
+
+ iconstant.const_doc = NULL;
+ for (int i = 0; i < itype.class_doc->constants.size(); i++) {
+ const DocData::ConstantDoc &const_doc = itype.class_doc->constants[i];
+
+ if (const_doc.name == iconstant.name) {
+ iconstant.const_doc = &const_doc;
+ break;
+ }
+ }
+
+ itype.constants.push_back(iconstant);
+ }
+
+ obj_types.insert(itype.cname, itype);
class_list.pop_front();
}
@@ -1704,7 +2013,10 @@ void BindingsGenerator::_default_argument_from_variant(const Variant &p_val, Arg
r_iarg.default_argument = bool(p_val) ? "true" : "false";
break;
case Variant::INT:
- break; // Keep it
+ if (r_iarg.type != name_cache.type_int) {
+ r_iarg.default_argument = "(%s)" + r_iarg.default_argument;
+ }
+ break;
case Variant::REAL:
#ifndef REAL_T_IS_DOUBLE
r_iarg.default_argument += "f";
@@ -1762,7 +2074,7 @@ void BindingsGenerator::_default_argument_from_variant(const Variant &p_val, Arg
default: {}
}
- if (r_iarg.def_param_mode == ArgumentInterface::CONSTANT && r_iarg.type == "Variant" && r_iarg.default_argument != "null")
+ if (r_iarg.def_param_mode == ArgumentInterface::CONSTANT && r_iarg.type == name_cache.type_Variant && r_iarg.default_argument != "null")
r_iarg.def_param_mode = ArgumentInterface::NULLABLE_REF;
}
@@ -1774,7 +2086,7 @@ void BindingsGenerator::_populate_builtin_type_interfaces() {
#define INSERT_STRUCT_TYPE(m_type, m_type_in) \
{ \
- itype = TypeInterface::create_value_type(#m_type); \
+ itype = TypeInterface::create_value_type(String(#m_type)); \
itype.c_in = "\tMARSHALLED_IN(" #m_type ", %1, %1_in);\n"; \
itype.c_out = "\tMARSHALLED_OUT(" #m_type ", %1, ret_out)\n" \
"\treturn mono_value_box(mono_domain_get(), CACHED_CLASS_RAW(%2), ret_out);\n"; \
@@ -1783,7 +2095,7 @@ void BindingsGenerator::_populate_builtin_type_interfaces() {
itype.cs_in = "ref %s"; \
itype.cs_out = "return (" #m_type ")%0;"; \
itype.im_type_out = "object"; \
- builtin_types.insert(#m_type, itype); \
+ builtin_types.insert(itype.cname, itype); \
}
INSERT_STRUCT_TYPE(Vector2, "real_t*")
@@ -1799,22 +2111,22 @@ void BindingsGenerator::_populate_builtin_type_interfaces() {
#undef INSERT_STRUCT_TYPE
-#define INSERT_PRIMITIVE_TYPE(m_type) \
- { \
- itype = TypeInterface::create_value_type(#m_type); \
- itype.c_arg_in = "&%s"; \
- itype.c_type_in = #m_type; \
- itype.c_type_out = #m_type; \
- itype.im_type_in = #m_type; \
- itype.im_type_out = #m_type; \
- builtin_types.insert(#m_type, itype); \
+#define INSERT_PRIMITIVE_TYPE(m_type) \
+ { \
+ itype = TypeInterface::create_value_type(String(#m_type)); \
+ itype.c_arg_in = "&%s"; \
+ itype.c_type_in = #m_type; \
+ itype.c_type_out = #m_type; \
+ itype.im_type_in = #m_type; \
+ itype.im_type_out = #m_type; \
+ builtin_types.insert(itype.cname, itype); \
}
INSERT_PRIMITIVE_TYPE(bool)
//INSERT_PRIMITIVE_TYPE(int)
// int
- itype = TypeInterface::create_value_type("int");
+ itype = TypeInterface::create_value_type(String("int"));
itype.c_arg_in = "&%s_in";
//* ptrcall only supports int64_t and uint64_t
itype.c_in = "\t%0 %1_in = (%0)%1;\n";
@@ -1825,7 +2137,7 @@ void BindingsGenerator::_populate_builtin_type_interfaces() {
itype.c_type_out = itype.name;
itype.im_type_in = itype.name;
itype.im_type_out = itype.name;
- builtin_types.insert(itype.name, itype);
+ builtin_types.insert(itype.cname, itype);
#undef INSERT_PRIMITIVE_TYPE
@@ -1836,6 +2148,7 @@ void BindingsGenerator::_populate_builtin_type_interfaces() {
#else
itype.name = "float";
#endif
+ itype.cname = itype.name;
itype.proxy_name = itype.name;
itype.c_arg_in = "&%s_in";
//* ptrcall only supports double
@@ -1848,11 +2161,12 @@ void BindingsGenerator::_populate_builtin_type_interfaces() {
itype.cs_type = itype.proxy_name;
itype.im_type_in = itype.proxy_name;
itype.im_type_out = itype.proxy_name;
- builtin_types.insert(itype.name, itype);
+ builtin_types.insert(itype.cname, itype);
// String
itype = TypeInterface();
itype.name = "String";
+ itype.cname = itype.name;
itype.proxy_name = "string";
itype.c_in = "\t%0 %1_in = " C_METHOD_MONOSTR_TO_GODOT "(%1);\n";
itype.c_out = "\treturn " C_METHOD_MONOSTR_FROM_GODOT "(%1);\n";
@@ -1863,11 +2177,12 @@ void BindingsGenerator::_populate_builtin_type_interfaces() {
itype.cs_type = itype.proxy_name;
itype.im_type_in = itype.proxy_name;
itype.im_type_out = itype.proxy_name;
- builtin_types.insert(itype.name, itype);
+ builtin_types.insert(itype.cname, itype);
// NodePath
itype = TypeInterface();
itype.name = "NodePath";
+ itype.cname = itype.name;
itype.proxy_name = "NodePath";
itype.c_out = "\treturn memnew(NodePath(%1));\n";
itype.c_type = itype.name;
@@ -1879,16 +2194,17 @@ void BindingsGenerator::_populate_builtin_type_interfaces() {
itype.im_type_in = "IntPtr";
itype.im_type_out = "IntPtr";
_populate_builtin_type(itype, Variant::NODE_PATH);
- extra_members.insert(itype.name, MEMBER_BEGIN "public NodePath() : this(string.Empty) {}\n" MEMBER_BEGIN "public NodePath(string path)\n" OPEN_BLOCK_L2
- "this." BINDINGS_PTR_FIELD " = NativeCalls.godot_icall_NodePath_Ctor(path);\n" CLOSE_BLOCK_L2
- MEMBER_BEGIN "public static implicit operator NodePath(string from)\n" OPEN_BLOCK_L2 "return new NodePath(from);\n" CLOSE_BLOCK_L2
- MEMBER_BEGIN "public static implicit operator string(NodePath from)\n" OPEN_BLOCK_L2
- "return NativeCalls." ICALL_PREFIX "NodePath_operator_String(NodePath." CS_SMETHOD_GETINSTANCE "(from));\n" CLOSE_BLOCK_L2);
- builtin_types.insert(itype.name, itype);
+ extra_members.insert(itype.cname, MEMBER_BEGIN "public NodePath() : this(string.Empty) {}\n" MEMBER_BEGIN "public NodePath(string path)\n" OPEN_BLOCK_L2
+ "this." BINDINGS_PTR_FIELD " = NativeCalls.godot_icall_NodePath_Ctor(path);\n" CLOSE_BLOCK_L2
+ MEMBER_BEGIN "public static implicit operator NodePath(string from)\n" OPEN_BLOCK_L2 "return new NodePath(from);\n" CLOSE_BLOCK_L2
+ MEMBER_BEGIN "public static implicit operator string(NodePath from)\n" OPEN_BLOCK_L2
+ "return NativeCalls." ICALL_PREFIX "NodePath_operator_String(NodePath." CS_SMETHOD_GETINSTANCE "(from));\n" CLOSE_BLOCK_L2);
+ builtin_types.insert(itype.cname, itype);
// RID
itype = TypeInterface();
itype.name = "RID";
+ itype.cname = itype.name;
itype.proxy_name = "RID";
itype.c_out = "\treturn memnew(RID(%1));\n";
itype.c_type = itype.name;
@@ -1900,13 +2216,14 @@ void BindingsGenerator::_populate_builtin_type_interfaces() {
itype.im_type_in = "IntPtr";
itype.im_type_out = "IntPtr";
_populate_builtin_type(itype, Variant::_RID);
- extra_members.insert(itype.name, MEMBER_BEGIN "internal RID()\n" OPEN_BLOCK_L2
- "this." BINDINGS_PTR_FIELD " = IntPtr.Zero;\n" CLOSE_BLOCK_L2);
- builtin_types.insert(itype.name, itype);
+ extra_members.insert(itype.cname, MEMBER_BEGIN "internal RID()\n" OPEN_BLOCK_L2
+ "this." BINDINGS_PTR_FIELD " = IntPtr.Zero;\n" CLOSE_BLOCK_L2);
+ builtin_types.insert(itype.cname, itype);
// Variant
itype = TypeInterface();
itype.name = "Variant";
+ itype.cname = itype.name;
itype.proxy_name = "object";
itype.c_in = "\t%0 %1_in = " C_METHOD_MANAGED_TO_VARIANT "(%1);\n";
itype.c_out = "\treturn " C_METHOD_MANAGED_FROM_VARIANT "(%1);\n";
@@ -1917,11 +2234,12 @@ void BindingsGenerator::_populate_builtin_type_interfaces() {
itype.cs_type = itype.proxy_name;
itype.im_type_in = "object";
itype.im_type_out = itype.proxy_name;
- builtin_types.insert(itype.name, itype);
+ builtin_types.insert(itype.cname, itype);
// VarArg (fictitious type to represent variable arguments)
itype = TypeInterface();
itype.name = "VarArg";
+ itype.cname = itype.name;
itype.proxy_name = "object[]";
itype.c_in = "\t%0 %1_in = " C_METHOD_MONOARRAY_TO(Array) "(%1);\n";
itype.c_arg_in = "&%s_in";
@@ -1929,12 +2247,13 @@ void BindingsGenerator::_populate_builtin_type_interfaces() {
itype.c_type_in = "MonoArray*";
itype.cs_type = "params object[]";
itype.im_type_in = "object[]";
- builtin_types.insert(itype.name, itype);
+ builtin_types.insert(itype.cname, itype);
#define INSERT_ARRAY_FULL(m_name, m_type, m_proxy_t) \
{ \
itype = TypeInterface(); \
itype.name = #m_name; \
+ itype.cname = itype.name; \
itype.proxy_name = #m_proxy_t "[]"; \
itype.c_in = "\t%0 %1_in = " C_METHOD_MONOARRAY_TO(m_type) "(%1);\n"; \
itype.c_out = "\treturn " C_METHOD_MONOARRAY_FROM(m_type) "(%1);\n"; \
@@ -1971,6 +2290,7 @@ void BindingsGenerator::_populate_builtin_type_interfaces() {
// Dictionary
itype = TypeInterface();
itype.name = "Dictionary";
+ itype.cname = itype.name;
itype.proxy_name = "Dictionary<object, object>";
itype.c_in = "\t%0 %1_in = " C_METHOD_MANAGED_TO_DICT "(%1);\n";
itype.c_out = "\treturn " C_METHOD_MANAGED_FROM_DICT "(%1);\n";
@@ -1981,11 +2301,12 @@ void BindingsGenerator::_populate_builtin_type_interfaces() {
itype.cs_type = itype.proxy_name;
itype.im_type_in = itype.proxy_name;
itype.im_type_out = itype.proxy_name;
- builtin_types.insert(itype.name, itype);
+ builtin_types.insert(itype.cname, itype);
// void (fictitious type to represent the return type of methods that do not return anything)
itype = TypeInterface();
itype.name = "void";
+ itype.cname = itype.name;
itype.proxy_name = itype.name;
itype.c_type = itype.name;
itype.c_type_in = itype.c_type;
@@ -1993,21 +2314,7 @@ void BindingsGenerator::_populate_builtin_type_interfaces() {
itype.cs_type = itype.proxy_name;
itype.im_type_in = itype.proxy_name;
itype.im_type_out = itype.proxy_name;
- builtin_types.insert(itype.name, itype);
-
- // Error
- itype = TypeInterface();
- itype.name = "Error";
- itype.proxy_name = "Error";
- itype.c_type = itype.name;
- itype.c_type_in = itype.c_type;
- itype.c_type_out = itype.c_type;
- itype.cs_type = itype.proxy_name;
- itype.cs_in = "(int)%0";
- itype.cs_out = "return (Error)%s;";
- itype.im_type_in = "int";
- itype.im_type_out = "int";
- builtin_types.insert(itype.name, itype);
+ builtin_types.insert(itype.cname, itype);
}
void BindingsGenerator::_populate_builtin_type(TypeInterface &r_itype, Variant::Type vtype) {
@@ -2024,6 +2331,7 @@ void BindingsGenerator::_populate_builtin_type(TypeInterface &r_itype, Variant::
MethodInterface imethod;
imethod.name = mi.name;
+ imethod.cname = imethod.name;
imethod.proxy_name = mi.name;
for (int i = 0; i < mi.arguments.size(); i++) {
@@ -2033,11 +2341,11 @@ void BindingsGenerator::_populate_builtin_type(TypeInterface &r_itype, Variant::
iarg.name = pi.name;
if (pi.type == Variant::NIL)
- iarg.type = "Variant";
+ iarg.type = name_cache.type_Variant;
else
iarg.type = Variant::get_type_name(pi.type);
- if (!r_itype.requires_collections && iarg.type == "Dictionary")
+ if (!r_itype.requires_collections && iarg.type == name_cache.type_Dictionary)
r_itype.requires_collections = true;
if ((mi.default_arguments.size() - mi.arguments.size() + i) >= 0)
@@ -2048,12 +2356,12 @@ void BindingsGenerator::_populate_builtin_type(TypeInterface &r_itype, Variant::
if (mi.return_val.type == Variant::NIL) {
if (mi.return_val.name != "")
- imethod.return_type = "Variant";
+ imethod.return_type = name_cache.type_Variant;
} else {
imethod.return_type = Variant::get_type_name(mi.return_val.type);
}
- if (!r_itype.requires_collections && imethod.return_type == "Dictionary")
+ if (!r_itype.requires_collections && imethod.return_type == name_cache.type_Dictionary)
r_itype.requires_collections = true;
if (r_itype.class_doc) {
@@ -2069,15 +2377,113 @@ void BindingsGenerator::_populate_builtin_type(TypeInterface &r_itype, Variant::
}
}
-BindingsGenerator::BindingsGenerator() {
+void BindingsGenerator::_populate_global_constants() {
+
+ int global_constants_count = GlobalConstants::get_global_constant_count();
+
+ if (global_constants_count > 0) {
+ Map<String, DocData::ClassDoc>::Element *match = EditorHelp::get_doc_data()->class_list.find("@GlobalScope");
+
+ ERR_EXPLAIN("Could not find `@GlobalScope` in DocData");
+ CRASH_COND(!match);
+
+ const DocData::ClassDoc &global_scope_doc = match->value();
+
+ for (int i = 0; i < global_constants_count; i++) {
+
+ String constant_name = GlobalConstants::get_global_constant_name(i);
+
+ const DocData::ConstantDoc *const_doc = NULL;
+ for (int i = 0; i < global_scope_doc.constants.size(); i++) {
+ const DocData::ConstantDoc &curr_const_doc = global_scope_doc.constants[i];
+
+ if (curr_const_doc.name == constant_name) {
+ const_doc = &curr_const_doc;
+ break;
+ }
+ }
+
+ int constant_value = GlobalConstants::get_global_constant_value(i);
+ StringName enum_name = GlobalConstants::get_global_constant_enum(i);
+
+ ConstantInterface iconstant(snake_to_pascal_case(constant_name, true), constant_value);
+ iconstant.const_doc = const_doc;
+
+ if (enum_name != StringName()) {
+ EnumInterface ienum(enum_name);
+ List<EnumInterface>::Element *match = global_enums.find(ienum);
+ if (match) {
+ match->get().constants.push_back(iconstant);
+ } else {
+ ienum.constants.push_back(iconstant);
+ global_enums.push_back(ienum);
+ }
+ } else {
+ global_constants.push_back(iconstant);
+ }
+ }
+
+ for (List<EnumInterface>::Element *E = global_enums.front(); E; E = E->next()) {
+ EnumInterface &ienum = E->get();
+
+ TypeInterface enum_itype;
+ enum_itype = TypeInterface::create_value_type(ienum.cname);
+ enum_itype.c_arg_in = "&%s";
+ enum_itype.c_type = "int";
+ enum_itype.c_type_in = "int";
+ enum_itype.c_type_out = "int";
+ enum_itype.im_type_in = enum_itype.name;
+ enum_itype.im_type_out = enum_itype.name;
+ enum_types.insert(enum_itype.cname, enum_itype);
+
+ ienum.prefix = _determine_enum_prefix(ienum);
+
+ // HARDCODED
+ if (ienum.cname == name_cache.enum_Error) {
+ if (!ienum.prefix.empty()) { // Just in case it ever changes
+ ERR_PRINTS("Prefix for enum 'Error' is not empty");
+ }
+
+ ienum.prefix = "Err";
+ }
+ }
+ }
+
+ // HARDCODED
+ List<StringName> hardcoded_enums;
+ hardcoded_enums.push_back("Vector3.Axis");
+ for (List<StringName>::Element *E = hardcoded_enums.front(); E; E = E->next()) {
+ // These enums are not generated and must be written manually (e.g.: Vector3.Axis)
+ // Here, we are assuming core types do not begin with underscore
+ TypeInterface enum_itype;
+ enum_itype = TypeInterface::create_value_type(E->get());
+ enum_itype.c_arg_in = "&%s";
+ enum_itype.c_type = "int";
+ enum_itype.c_type_in = "int";
+ enum_itype.c_type_out = "int";
+ enum_itype.im_type_in = enum_itype.name;
+ enum_itype.im_type_out = enum_itype.name;
+ enum_types.insert(enum_itype.cname, enum_itype);
+ }
+}
+
+BindingsGenerator::BindingsGenerator() :
+ name_cache(NameCache::get_singleton()) {
EditorHelp::generate_doc();
+ enum_types.clear();
+
_populate_object_type_interfaces();
_populate_builtin_type_interfaces();
+
+ _populate_global_constants();
+
+ // Populate internal calls (after populating type interfaces and global constants)
+
_generate_header_icalls();
- for (Map<String, TypeInterface>::Element *E = obj_types.front(); E; E = E->next())
+ for (Map<StringName, TypeInterface>::Element *E = obj_types.front(); E; E = E->next())
_generate_method_icalls(E->get());
_generate_method_icalls(builtin_types["NodePath"]);
diff --git a/modules/mono/editor/bindings_generator.h b/modules/mono/editor/bindings_generator.h
index dfa3aa9911..eac00690ff 100644
--- a/modules/mono/editor/bindings_generator.h
+++ b/modules/mono/editor/bindings_generator.h
@@ -39,6 +39,47 @@
#include "ustring.h"
class BindingsGenerator {
+
+ struct ConstantInterface {
+ String name;
+ int value;
+ const DocData::ConstantDoc *const_doc;
+
+ ConstantInterface() {}
+
+ ConstantInterface(const String &p_name, int p_value) {
+ name = p_name;
+ value = p_value;
+ }
+ };
+
+ struct EnumInterface {
+ StringName cname;
+ String prefix;
+ List<ConstantInterface> constants;
+
+ _FORCE_INLINE_ bool operator==(const EnumInterface &p_ienum) const {
+ return p_ienum.cname == cname;
+ }
+
+ EnumInterface() {}
+
+ EnumInterface(const StringName &p_cname) {
+ cname = p_cname;
+ }
+ };
+
+ struct PropertyInterface {
+ StringName cname;
+ String proxy_name;
+ int index;
+
+ StringName setter;
+ StringName getter;
+
+ const DocData::PropertyDoc *prop_doc;
+ };
+
struct ArgumentInterface {
enum DefaultParamMode {
CONSTANT,
@@ -46,7 +87,7 @@ class BindingsGenerator {
NULLABLE_REF
};
- String type;
+ StringName type;
String name;
String default_argument;
DefaultParamMode def_param_mode;
@@ -58,6 +99,7 @@ class BindingsGenerator {
struct MethodInterface {
String name;
+ StringName cname;
/**
* Name of the C# method
@@ -67,7 +109,7 @@ class BindingsGenerator {
/**
* [TypeInterface::name] of the return type
*/
- String return_type;
+ StringName return_type;
/**
* Determines if the method has a variable number of arguments (VarArg)
@@ -103,7 +145,7 @@ class BindingsGenerator {
}
MethodInterface() {
- return_type = "void";
+ return_type = NameCache::get_singleton().type_void;
is_vararg = false;
is_virtual = false;
requires_object_call = false;
@@ -118,11 +160,12 @@ class BindingsGenerator {
* Also used to format [c_out].
*/
String name;
+ StringName cname;
/**
* Identifier name of the base class.
*/
- String base_name;
+ StringName base_name;
/**
* Name of the C# class
@@ -256,23 +299,32 @@ class BindingsGenerator {
const DocData::ClassDoc *class_doc;
+ List<ConstantInterface> constants;
+ List<EnumInterface> enums;
+ List<PropertyInterface> properties;
List<MethodInterface> methods;
- const MethodInterface *find_method_by_name(const String &p_name) const {
-
+ const MethodInterface *find_method_by_name(const StringName &p_cname) const {
for (const List<MethodInterface>::Element *E = methods.front(); E; E = E->next()) {
- if (E->get().name == p_name)
+ if (E->get().cname == p_cname)
return &E->get();
}
return NULL;
}
- static TypeInterface create_value_type(const String &p_name) {
- TypeInterface itype;
+ const PropertyInterface *find_property_by_proxy_name(const String &p_proxy_name) const {
+ for (const List<PropertyInterface>::Element *E = properties.front(); E; E = E->next()) {
+ if (E->get().proxy_name == p_proxy_name)
+ return &E->get();
+ }
- itype.name = p_name;
- itype.proxy_name = p_name;
+ return NULL;
+ }
+
+ private:
+ static void _init_value_type(TypeInterface &itype) {
+ itype.proxy_name = itype.name;
itype.c_type = itype.name;
itype.c_type_in = "void*";
@@ -281,15 +333,31 @@ class BindingsGenerator {
itype.im_type_in = "ref " + itype.proxy_name;
itype.im_type_out = itype.proxy_name;
itype.class_doc = &EditorHelp::get_doc_data()->class_list[itype.proxy_name];
+ }
+ public:
+ static TypeInterface create_value_type(const String &p_name) {
+ TypeInterface itype;
+ itype.name = p_name;
+ itype.cname = StringName(p_name);
+ _init_value_type(itype);
+ return itype;
+ }
+
+ static TypeInterface create_value_type(const StringName &p_name) {
+ TypeInterface itype;
+ itype.name = p_name.operator String();
+ itype.cname = p_name;
+ _init_value_type(itype);
return itype;
}
- static TypeInterface create_object_type(const String &p_name, ClassDB::APIType p_api_type) {
+ static TypeInterface create_object_type(const StringName &p_cname, ClassDB::APIType p_api_type) {
TypeInterface itype;
- itype.name = p_name;
- itype.proxy_name = p_name.begins_with("_") ? p_name.substr(1, p_name.length()) : p_name;
+ itype.name = p_cname;
+ itype.cname = p_cname;
+ itype.proxy_name = itype.name.begins_with("_") ? itype.name.substr(1, itype.name.length()) : itype.name;
itype.api_type = p_api_type;
itype.is_object_type = true;
itype.class_doc = &EditorHelp::get_doc_data()->class_list[itype.proxy_name];
@@ -297,9 +365,10 @@ class BindingsGenerator {
return itype;
}
- static void create_placeholder_type(TypeInterface &r_itype, const String &p_name) {
- r_itype.name = p_name;
- r_itype.proxy_name = p_name;
+ static void create_placeholder_type(TypeInterface &r_itype, const StringName &p_cname) {
+ r_itype.name = p_cname;
+ r_itype.cname = p_cname;
+ r_itype.proxy_name = r_itype.name;
r_itype.c_type = r_itype.name;
r_itype.c_type_in = "MonoObject*";
@@ -359,11 +428,15 @@ class BindingsGenerator {
static bool verbose_output;
- Map<String, TypeInterface> placeholder_types;
- Map<String, TypeInterface> builtin_types;
- Map<String, TypeInterface> obj_types;
+ Map<StringName, TypeInterface> placeholder_types;
+ Map<StringName, TypeInterface> builtin_types;
+ Map<StringName, TypeInterface> enum_types;
+ Map<StringName, TypeInterface> obj_types;
- Map<String, String> extra_members;
+ List<EnumInterface> global_enums;
+ List<ConstantInterface> global_constants;
+
+ Map<StringName, String> extra_members;
List<InternalCall> method_icalls;
Map<const MethodInterface *, const InternalCall *> method_icalls_map;
@@ -373,8 +446,41 @@ class BindingsGenerator {
List<InternalCall> core_custom_icalls;
List<InternalCall> editor_custom_icalls;
- const List<InternalCall>::Element *find_icall_by_name(const String &p_name, const List<InternalCall> &p_list) {
+ struct NameCache {
+ StringName type_void;
+ StringName type_int;
+ StringName type_Array;
+ StringName type_Dictionary;
+ StringName type_Variant;
+ StringName type_VarArg;
+ StringName type_Object;
+ StringName type_Reference;
+ StringName enum_Error;
+
+ NameCache() {
+ type_void = StaticCString::create("void");
+ type_int = StaticCString::create("int");
+ type_Array = StaticCString::create("Array");
+ type_Dictionary = StaticCString::create("Dictionary");
+ type_Variant = StaticCString::create("Variant");
+ type_VarArg = StaticCString::create("VarArg");
+ type_Object = StaticCString::create("Object");
+ type_Reference = StaticCString::create("Reference");
+ enum_Error = StaticCString::create("Error");
+ }
+
+ static NameCache &get_singleton() {
+ static NameCache singleton;
+ return singleton;
+ }
+
+ NameCache(const NameCache &);
+ NameCache &operator=(const NameCache &);
+ };
+
+ const NameCache &name_cache;
+ const List<InternalCall>::Element *find_icall_by_name(const String &p_name, const List<InternalCall> &p_list) {
const List<InternalCall>::Element *it = p_list.front();
while (it) {
if (it->get().name == p_name) return it;
@@ -392,11 +498,13 @@ class BindingsGenerator {
return p_type.name;
}
+ String _determine_enum_prefix(const EnumInterface &p_ienum);
+
void _generate_header_icalls();
void _generate_method_icalls(const TypeInterface &p_itype);
- const TypeInterface *_get_type_by_name_or_null(const String &p_name);
- const TypeInterface *_get_type_by_name_or_placeholder(const String &p_name);
+ const TypeInterface *_get_type_by_name_or_null(const StringName &p_cname);
+ const TypeInterface *_get_type_by_name_or_placeholder(const StringName &p_cname);
void _default_argument_from_variant(const Variant &p_var, ArgumentInterface &r_iarg);
void _populate_builtin_type(TypeInterface &r_type, Variant::Type vtype);
@@ -404,11 +512,15 @@ class BindingsGenerator {
void _populate_object_type_interfaces();
void _populate_builtin_type_interfaces();
+ void _populate_global_constants();
+
Error _generate_cs_type(const TypeInterface &itype, const String &p_output_file);
- Error _generate_cs_property(const TypeInterface &p_itype, const DocData::PropertyDoc &p_prop_doc, List<String> &p_output);
+ Error _generate_cs_property(const TypeInterface &p_itype, const PropertyInterface &p_prop_doc, List<String> &p_output);
Error _generate_cs_method(const TypeInterface &p_itype, const MethodInterface &p_imethod, int &p_method_bind_count, List<String> &p_output);
+ void _generate_global_constants(List<String> &p_output);
+
Error _generate_glue_method(const TypeInterface &p_itype, const MethodInterface &p_imethod, List<String> &p_output);
Error _save_file(const String &path, const List<String> &content);
diff --git a/modules/mono/editor/csharp_project.cpp b/modules/mono/editor/csharp_project.cpp
index 9a1efb4423..d5819a4ca3 100644
--- a/modules/mono/editor/csharp_project.cpp
+++ b/modules/mono/editor/csharp_project.cpp
@@ -54,7 +54,7 @@ String generate_core_api_project(const String &p_dir, const Vector<String> &p_fi
ERR_FAIL_V(String());
}
- return ret ? GDMonoMarshal::mono_string_to_godot((MonoString *)ret) : "";
+ return ret ? GDMonoMarshal::mono_string_to_godot((MonoString *)ret) : String();
}
String generate_editor_api_project(const String &p_dir, const String &p_core_dll_path, const Vector<String> &p_files) {
@@ -75,7 +75,7 @@ String generate_editor_api_project(const String &p_dir, const String &p_core_dll
ERR_FAIL_V(String());
}
- return ret ? GDMonoMarshal::mono_string_to_godot((MonoString *)ret) : "";
+ return ret ? GDMonoMarshal::mono_string_to_godot((MonoString *)ret) : String();
}
String generate_game_project(const String &p_dir, const String &p_name, const Vector<String> &p_files) {
@@ -96,7 +96,7 @@ String generate_game_project(const String &p_dir, const String &p_name, const Ve
ERR_FAIL_V(String());
}
- return ret ? GDMonoMarshal::mono_string_to_godot((MonoString *)ret) : "";
+ return ret ? GDMonoMarshal::mono_string_to_godot((MonoString *)ret) : String();
}
void add_item(const String &p_project_path, const String &p_item_type, const String &p_include) {
diff --git a/modules/mono/editor/godotsharp_builds.cpp b/modules/mono/editor/godotsharp_builds.cpp
index b88d34fc33..3750a2b02a 100644
--- a/modules/mono/editor/godotsharp_builds.cpp
+++ b/modules/mono/editor/godotsharp_builds.cpp
@@ -313,7 +313,7 @@ GodotSharpBuilds *GodotSharpBuilds::singleton = NULL;
void GodotSharpBuilds::build_exit_callback(const MonoBuildInfo &p_build_info, int p_exit_code) {
BuildProcess *match = builds.getptr(p_build_info);
- ERR_FAIL_COND(!match);
+ ERR_FAIL_NULL(match);
BuildProcess &bp = *match;
bp.on_exit(p_exit_code);
diff --git a/modules/mono/editor/godotsharp_editor.cpp b/modules/mono/editor/godotsharp_editor.cpp
index 1bc1e8a515..1e61646769 100644
--- a/modules/mono/editor/godotsharp_editor.cpp
+++ b/modules/mono/editor/godotsharp_editor.cpp
@@ -50,9 +50,9 @@ GodotSharpEditor *GodotSharpEditor::singleton = NULL;
bool GodotSharpEditor::_create_project_solution() {
- EditorProgress pr("create_csharp_solution", "Generating solution...", 2);
+ EditorProgress pr("create_csharp_solution", TTR("Generating solution..."), 2);
- pr.step("Generating C# project...");
+ pr.step(TTR("Generating C# project..."));
String path = OS::get_singleton()->get_resource_dir();
String name = ProjectSettings::get_singleton()->get("application/config/name");
@@ -67,7 +67,7 @@ bool GodotSharpEditor::_create_project_solution() {
NETSolution solution(name);
if (!solution.set_path(path)) {
- show_error_dialog("Failed to create solution.");
+ show_error_dialog(TTR("Failed to create solution."));
return false;
}
@@ -79,7 +79,7 @@ bool GodotSharpEditor::_create_project_solution() {
Error sln_error = solution.save();
if (sln_error != OK) {
- show_error_dialog("Failed to save solution.");
+ show_error_dialog(TTR("Failed to save solution."));
return false;
}
@@ -89,13 +89,13 @@ bool GodotSharpEditor::_create_project_solution() {
if (!GodotSharpBuilds::make_api_sln(GodotSharpBuilds::API_EDITOR))
return false;
- pr.step("Done");
+ pr.step(TTR("Done"));
// Here, after all calls to progress_task_step
call_deferred("_remove_create_sln_menu_option");
} else {
- show_error_dialog("Failed to create C# project.");
+ show_error_dialog(TTR("Failed to create C# project."));
}
return true;
@@ -194,14 +194,14 @@ GodotSharpEditor::GodotSharpEditor(EditorNode *p_editor) {
error_dialog = memnew(AcceptDialog);
editor->get_gui_base()->add_child(error_dialog);
- bottom_panel_btn = editor->add_bottom_panel_item("Mono", memnew(MonoBottomPanel(editor)));
+ bottom_panel_btn = editor->add_bottom_panel_item(TTR("Mono"), memnew(MonoBottomPanel(editor)));
godotsharp_builds = memnew(GodotSharpBuilds);
editor->add_child(memnew(MonoReloadNode));
menu_button = memnew(MenuButton);
- menu_button->set_text("Mono");
+ menu_button->set_text(TTR("Mono"));
menu_popup = menu_button->get_popup();
String sln_path = GodotSharpDirs::get_project_sln_path();
@@ -209,7 +209,7 @@ GodotSharpEditor::GodotSharpEditor(EditorNode *p_editor) {
if (!FileAccess::exists(sln_path) || !FileAccess::exists(csproj_path)) {
bottom_panel_btn->hide();
- menu_popup->add_item("Create C# solution", MENU_CREATE_SLN);
+ menu_popup->add_item(TTR("Create C# solution"), MENU_CREATE_SLN);
}
menu_popup->connect("id_pressed", this, "_menu_option_pressed");
diff --git a/modules/mono/editor/mono_bottom_panel.cpp b/modules/mono/editor/mono_bottom_panel.cpp
index 31dc09856a..be714026ad 100644
--- a/modules/mono/editor/mono_bottom_panel.cpp
+++ b/modules/mono/editor/mono_bottom_panel.cpp
@@ -197,7 +197,7 @@ MonoBottomPanel::MonoBottomPanel(EditorNode *p_editor) {
panel_builds_tab->add_child(toolbar_hbc);
ToolButton *build_project_btn = memnew(ToolButton);
- build_project_btn->set_text("Build Project");
+ build_project_btn->set_text(TTR("Build Project"));
build_project_btn->set_focus_mode(FOCUS_NONE);
build_project_btn->connect("pressed", this, "_build_project_pressed");
toolbar_hbc->add_child(build_project_btn);
@@ -205,7 +205,7 @@ MonoBottomPanel::MonoBottomPanel(EditorNode *p_editor) {
toolbar_hbc->add_spacer();
warnings_btn = memnew(ToolButton);
- warnings_btn->set_text("Warnings");
+ warnings_btn->set_text(TTR("Warnings"));
warnings_btn->set_toggle_mode(true);
warnings_btn->set_pressed(true);
warnings_btn->set_visible(false);
@@ -214,7 +214,7 @@ MonoBottomPanel::MonoBottomPanel(EditorNode *p_editor) {
toolbar_hbc->add_child(warnings_btn);
errors_btn = memnew(ToolButton);
- errors_btn->set_text("Errors");
+ errors_btn->set_text(TTR("Errors"));
errors_btn->set_toggle_mode(true);
errors_btn->set_pressed(true);
errors_btn->set_visible(false);
diff --git a/modules/mono/glue/cs_files/Error.cs b/modules/mono/glue/cs_files/Error.cs
deleted file mode 100644
index dee4b88f74..0000000000
--- a/modules/mono/glue/cs_files/Error.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-namespace Godot
-{
- public enum Error : int
- {
- OK = 0,
- FAILED = 1,
- ERR_UNAVAILABLE = 2,
- ERR_UNCONFIGURED = 3,
- ERR_UNAUTHORIZED = 4,
- ERR_PARAMETER_RANGE_ERROR = 5,
- ERR_OUT_OF_MEMORY = 6,
- ERR_FILE_NOT_FOUND = 7,
- ERR_FILE_BAD_DRIVE = 8,
- ERR_FILE_BAD_PATH = 9,
- ERR_FILE_NO_PERMISSION = 10,
- ERR_FILE_ALREADY_IN_USE = 11,
- ERR_FILE_CANT_OPEN = 12,
- ERR_FILE_CANT_WRITE = 13,
- ERR_FILE_CANT_READ = 14,
- ERR_FILE_UNRECOGNIZED = 15,
- ERR_FILE_CORRUPT = 16,
- ERR_FILE_MISSING_DEPENDENCIES = 17,
- ERR_FILE_EOF = 18,
- ERR_CANT_OPEN = 19,
- ERR_CANT_CREATE = 20,
- ERR_PARSE_ERROR = 43,
- ERROR_QUERY_FAILED = 21,
- ERR_ALREADY_IN_USE = 22,
- ERR_LOCKED = 23,
- ERR_TIMEOUT = 24,
- ERR_CANT_AQUIRE_RESOURCE = 28,
- ERR_INVALID_DATA = 30,
- ERR_INVALID_PARAMETER = 31,
- ERR_ALREADY_EXISTS = 32,
- ERR_DOES_NOT_EXIST = 33,
- ERR_DATABASE_CANT_READ = 34,
- ERR_DATABASE_CANT_WRITE = 35,
- ERR_COMPILATION_FAILED = 36,
- ERR_METHOD_NOT_FOUND = 37,
- ERR_LINK_FAILED = 38,
- ERR_SCRIPT_FAILED = 39,
- ERR_CYCLIC_LINK = 40,
- ERR_BUSY = 44,
- ERR_HELP = 46,
- ERR_BUG = 47
- }
-}
diff --git a/modules/mono/glue/cs_files/ExportAttribute.cs b/modules/mono/glue/cs_files/ExportAttribute.cs
index dce9cc59a0..e6f569e1bb 100644
--- a/modules/mono/glue/cs_files/ExportAttribute.cs
+++ b/modules/mono/glue/cs_files/ExportAttribute.cs
@@ -5,13 +5,13 @@ namespace Godot
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)]
public class ExportAttribute : Attribute
{
- private int hint;
- private string hint_string;
+ private PropertyHint hint;
+ private string hintString;
- public ExportAttribute(int hint = GD.PROPERTY_HINT_NONE, string hint_string = "")
+ public ExportAttribute(PropertyHint hint = PropertyHint.None, string hintString = "")
{
this.hint = hint;
- this.hint_string = hint_string;
+ this.hintString = hintString;
}
}
}
diff --git a/modules/mono/glue/cs_files/GD.cs b/modules/mono/glue/cs_files/GD.cs
index 99fc289161..b335ef55e4 100644
--- a/modules/mono/glue/cs_files/GD.cs
+++ b/modules/mono/glue/cs_files/GD.cs
@@ -2,10 +2,8 @@ using System;
namespace Godot
{
- public static class GD
+ public static partial class GD
{
- /*{GodotGlobalConstants}*/
-
public static object Bytes2Var(byte[] bytes)
{
return NativeCalls.godot_icall_Godot_bytes2var(bytes);
diff --git a/modules/mono/glue/cs_files/Rect2.cs b/modules/mono/glue/cs_files/Rect2.cs
index f2718d7b7a..e1fbb65da5 100644
--- a/modules/mono/glue/cs_files/Rect2.cs
+++ b/modules/mono/glue/cs_files/Rect2.cs
@@ -109,14 +109,14 @@ namespace Godot
return g;
}
- public Rect2 GrowMargin(int margin, float by)
+ public Rect2 GrowMargin(Margin margin, float by)
{
Rect2 g = this;
- g.GrowIndividual((GD.MARGIN_LEFT == margin) ? by : 0,
- (GD.MARGIN_TOP == margin) ? by : 0,
- (GD.MARGIN_RIGHT == margin) ? by : 0,
- (GD.MARGIN_BOTTOM == margin) ? by : 0);
+ g.GrowIndividual((Margin.Left == margin) ? by : 0,
+ (Margin.Top == margin) ? by : 0,
+ (Margin.Right == margin) ? by : 0,
+ (Margin.Bottom == margin) ? by : 0);
return g;
}
@@ -230,4 +230,4 @@ namespace Godot
});
}
}
-} \ No newline at end of file
+}
diff --git a/modules/mono/mono_gd/gd_mono_field.cpp b/modules/mono/mono_gd/gd_mono_field.cpp
index eb34f9dd3f..63b24f3ee6 100644
--- a/modules/mono/mono_gd/gd_mono_field.cpp
+++ b/modules/mono/mono_gd/gd_mono_field.cpp
@@ -290,7 +290,7 @@ int GDMonoField::get_int_value(MonoObject *p_object) {
String GDMonoField::get_string_value(MonoObject *p_object) {
MonoObject *val = get_value(p_object);
- return val ? GDMonoMarshal::mono_string_to_godot((MonoString *)val) : String();
+ return GDMonoMarshal::mono_string_to_godot((MonoString *)val);
}
bool GDMonoField::has_attribute(GDMonoClass *p_attr_class) {
diff --git a/modules/mono/mono_gd/gd_mono_log.cpp b/modules/mono/mono_gd/gd_mono_log.cpp
index e473348897..e8aea8624d 100644
--- a/modules/mono/mono_gd/gd_mono_log.cpp
+++ b/modules/mono/mono_gd/gd_mono_log.cpp
@@ -70,7 +70,9 @@ void gdmono_MonoLogCallback(const char *log_domain, const char *log_level, const
}
if (fatal) {
- ERR_PRINTS("Mono: FALTAL ERROR, ABORTING! Logfile: " + GDMonoLog::get_singleton()->get_log_file_path() + "\n");
+ ERR_PRINTS("Mono: FATAL ERROR, ABORTING! Logfile: " + GDMonoLog::get_singleton()->get_log_file_path() + "\n");
+ // If we were to abort without flushing, the log wouldn't get written.
+ f->flush();
abort();
}
}
diff --git a/modules/mono/mono_gd/gd_mono_marshal.cpp b/modules/mono/mono_gd/gd_mono_marshal.cpp
index 8bc2bb5096..d744d24f24 100644
--- a/modules/mono/mono_gd/gd_mono_marshal.cpp
+++ b/modules/mono/mono_gd/gd_mono_marshal.cpp
@@ -490,8 +490,9 @@ Variant mono_object_to_variant(MonoObject *p_obj, const ManagedType &p_type) {
return unbox<double>(p_obj);
case MONO_TYPE_STRING: {
- String str = mono_string_to_godot((MonoString *)p_obj);
- return str;
+ if (p_obj == NULL)
+ return Variant(); // NIL
+ return mono_string_to_godot_not_null((MonoString *)p_obj);
} break;
case MONO_TYPE_VALUETYPE: {
diff --git a/modules/mono/mono_gd/gd_mono_marshal.h b/modules/mono/mono_gd/gd_mono_marshal.h
index 443e947fb5..1be4be1a1c 100644
--- a/modules/mono/mono_gd/gd_mono_marshal.h
+++ b/modules/mono/mono_gd/gd_mono_marshal.h
@@ -62,13 +62,20 @@ Variant::Type managed_to_variant_type(const ManagedType &p_type);
String mono_to_utf8_string(MonoString *p_mono_string);
String mono_to_utf16_string(MonoString *p_mono_string);
-_FORCE_INLINE_ String mono_string_to_godot(MonoString *p_mono_string) {
+_FORCE_INLINE_ String mono_string_to_godot_not_null(MonoString *p_mono_string) {
if (sizeof(CharType) == 2)
return mono_to_utf16_string(p_mono_string);
return mono_to_utf8_string(p_mono_string);
}
+_FORCE_INLINE_ String mono_string_to_godot(MonoString *p_mono_string) {
+ if (p_mono_string == NULL)
+ return String();
+
+ return mono_string_to_godot_not_null(p_mono_string);
+}
+
_FORCE_INLINE_ MonoString *mono_from_utf8_string(const String &p_string) {
return mono_string_new(mono_domain_get(), p_string.utf8().get_data());
}
diff --git a/modules/mono/mono_gd/gd_mono_utils.cpp b/modules/mono/mono_gd/gd_mono_utils.cpp
index 1cccd0ad9d..638636e985 100644
--- a/modules/mono/mono_gd/gd_mono_utils.cpp
+++ b/modules/mono/mono_gd/gd_mono_utils.cpp
@@ -95,7 +95,7 @@ void MonoCache::clear_members() {
class_ExportAttribute = NULL;
field_ExportAttribute_hint = NULL;
- field_ExportAttribute_hint_string = NULL;
+ field_ExportAttribute_hintString = NULL;
class_ToolAttribute = NULL;
class_RemoteAttribute = NULL;
class_SyncAttribute = NULL;
@@ -163,7 +163,7 @@ void update_godot_api_cache() {
// Attributes
CACHE_CLASS_AND_CHECK(ExportAttribute, GODOT_API_CLASS(ExportAttribute));
CACHE_FIELD_AND_CHECK(ExportAttribute, hint, CACHED_CLASS(ExportAttribute)->get_field("hint"));
- CACHE_FIELD_AND_CHECK(ExportAttribute, hint_string, CACHED_CLASS(ExportAttribute)->get_field("hint_string"));
+ CACHE_FIELD_AND_CHECK(ExportAttribute, hintString, CACHED_CLASS(ExportAttribute)->get_field("hintString"));
CACHE_CLASS_AND_CHECK(ToolAttribute, GODOT_API_CLASS(ToolAttribute));
CACHE_CLASS_AND_CHECK(RemoteAttribute, GODOT_API_CLASS(RemoteAttribute));
CACHE_CLASS_AND_CHECK(SyncAttribute, GODOT_API_CLASS(SyncAttribute));
diff --git a/modules/mono/mono_gd/gd_mono_utils.h b/modules/mono/mono_gd/gd_mono_utils.h
index c38f8c5af5..4308b357ba 100644
--- a/modules/mono/mono_gd/gd_mono_utils.h
+++ b/modules/mono/mono_gd/gd_mono_utils.h
@@ -97,7 +97,7 @@ struct MonoCache {
GDMonoClass *class_ExportAttribute;
GDMonoField *field_ExportAttribute_hint;
- GDMonoField *field_ExportAttribute_hint_string;
+ GDMonoField *field_ExportAttribute_hintString;
GDMonoClass *class_ToolAttribute;
GDMonoClass *class_RemoteAttribute;
GDMonoClass *class_SyncAttribute;
diff --git a/modules/opus/register_types.cpp b/modules/opus/register_types.cpp
index a69c8bf9f3..6d7a3575ed 100644
--- a/modules/opus/register_types.cpp
+++ b/modules/opus/register_types.cpp
@@ -34,13 +34,18 @@
static ResourceFormatLoaderAudioStreamOpus *opus_stream_loader = NULL;
void register_opus_types() {
-
- opus_stream_loader = memnew(ResourceFormatLoaderAudioStreamOpus);
- ResourceLoader::add_resource_format_loader(opus_stream_loader);
- ClassDB::register_class<AudioStreamOpus>();
+ // Sorry guys, do not enable this unless you can figure out a way
+ // to get Opus to not do any memory allocation or system calls
+ // in the audio thread.
+ // Currently the implementation even reads files from the audio thread,
+ // and this is not how audio programming works.
+
+ //opus_stream_loader = memnew(ResourceFormatLoaderAudioStreamOpus);
+ //ResourceLoader::add_resource_format_loader(opus_stream_loader);
+ //ClassDB::register_class<AudioStreamOpus>();
}
void unregister_opus_types() {
- memdelete(opus_stream_loader);
+ //memdelete(opus_stream_loader);
}
diff --git a/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp b/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp
index 5c252bda86..6f5bbba8d1 100644
--- a/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp
+++ b/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp
@@ -42,12 +42,17 @@ void AudioStreamPlaybackOGGVorbis::_mix_internal(AudioFrame *p_buffer, int p_fra
int todo = p_frames;
- while (todo && active) {
+ int start_buffer = 0;
- int mixed = stb_vorbis_get_samples_float_interleaved(ogg_stream, 2, (float *)p_buffer, todo * 2);
+ while (todo && active) {
+ float *buffer = (float *)p_buffer;
+ if (start_buffer > 0) {
+ buffer = (buffer + start_buffer * 2);
+ }
+ int mixed = stb_vorbis_get_samples_float_interleaved(ogg_stream, 2, buffer, todo * 2);
if (vorbis_stream->channels == 1 && mixed > 0) {
//mix mono to stereo
- for (int i = 0; i < mixed; i++) {
+ for (int i = start_buffer; i < mixed; i++) {
p_buffer[i].r = p_buffer[i].l;
}
}
@@ -60,11 +65,14 @@ void AudioStreamPlaybackOGGVorbis::_mix_internal(AudioFrame *p_buffer, int p_fra
//loop
seek(vorbis_stream->loop_offset);
loops++;
+ // we still have buffer to fill, start from this element in the next iteration.
+ start_buffer = p_frames - todo;
} else {
- for (int i = mixed; i < p_frames; i++) {
+ for (int i = p_frames - todo; i < p_frames; i++) {
p_buffer[i] = AudioFrame(0, 0);
}
active = false;
+ todo = 0;
}
}
}
diff --git a/modules/thekla_unwrap/register_types.cpp b/modules/thekla_unwrap/register_types.cpp
index ab3203068f..da6c1bab2a 100644
--- a/modules/thekla_unwrap/register_types.cpp
+++ b/modules/thekla_unwrap/register_types.cpp
@@ -65,7 +65,7 @@ bool thekla_mesh_lightmap_unwrap_callback(float p_texel_size, const float *p_ver
Thekla::atlas_set_default_options(&options);
options.packer_options.witness.packing_quality = 1;
options.packer_options.witness.texel_area = 1.0 / p_texel_size;
- options.packer_options.witness.conservative = true;
+ options.packer_options.witness.conservative = false;
//generate
Thekla::Atlas_Error err;
diff --git a/modules/visual_script/visual_script_editor.cpp b/modules/visual_script/visual_script_editor.cpp
index 6c58de8a5a..faf3aecbd4 100644
--- a/modules/visual_script/visual_script_editor.cpp
+++ b/modules/visual_script/visual_script_editor.cpp
@@ -228,7 +228,7 @@ protected:
if (String(p_name) == "type") {
- Dictionary dc = d.copy();
+ Dictionary dc = d.duplicate();
dc["type"] = p_value;
undo_redo->create_action(TTR("Set Variable Type"));
undo_redo->add_do_method(script.ptr(), "set_variable_info", var, dc);
@@ -241,7 +241,7 @@ protected:
if (String(p_name) == "hint") {
- Dictionary dc = d.copy();
+ Dictionary dc = d.duplicate();
dc["hint"] = p_value;
undo_redo->create_action(TTR("Set Variable Type"));
undo_redo->add_do_method(script.ptr(), "set_variable_info", var, dc);
@@ -254,7 +254,7 @@ protected:
if (String(p_name) == "hint_string") {
- Dictionary dc = d.copy();
+ Dictionary dc = d.duplicate();
dc["hint_string"] = p_value;
undo_redo->create_action(TTR("Set Variable Type"));
undo_redo->add_do_method(script.ptr(), "set_variable_info", var, dc);
@@ -480,33 +480,33 @@ void VisualScriptEditor::_update_graph(int p_only_id) {
select_func_text->hide();
Ref<Texture> type_icons[Variant::VARIANT_MAX] = {
- Control::get_icon("MiniVariant", "EditorIcons"),
- Control::get_icon("MiniBoolean", "EditorIcons"),
- Control::get_icon("MiniInteger", "EditorIcons"),
- Control::get_icon("MiniFloat", "EditorIcons"),
- Control::get_icon("MiniString", "EditorIcons"),
- Control::get_icon("MiniVector2", "EditorIcons"),
- Control::get_icon("MiniRect2", "EditorIcons"),
- Control::get_icon("MiniVector3", "EditorIcons"),
- Control::get_icon("MiniTransform2D", "EditorIcons"),
- Control::get_icon("MiniPlane", "EditorIcons"),
- Control::get_icon("MiniQuat", "EditorIcons"),
- Control::get_icon("MiniAabb", "EditorIcons"),
- Control::get_icon("MiniBasis", "EditorIcons"),
- Control::get_icon("MiniTransform", "EditorIcons"),
- Control::get_icon("MiniColor", "EditorIcons"),
- Control::get_icon("MiniPath", "EditorIcons"),
- Control::get_icon("MiniRid", "EditorIcons"),
+ Control::get_icon("Variant", "EditorIcons"),
+ Control::get_icon("bool", "EditorIcons"),
+ Control::get_icon("int", "EditorIcons"),
+ Control::get_icon("float", "EditorIcons"),
+ Control::get_icon("String", "EditorIcons"),
+ Control::get_icon("Vector2", "EditorIcons"),
+ Control::get_icon("Rect2", "EditorIcons"),
+ Control::get_icon("Vector3", "EditorIcons"),
+ Control::get_icon("Transform2D", "EditorIcons"),
+ Control::get_icon("Plane", "EditorIcons"),
+ Control::get_icon("Quat", "EditorIcons"),
+ Control::get_icon("AABB", "EditorIcons"),
+ Control::get_icon("Basis", "EditorIcons"),
+ Control::get_icon("Transform", "EditorIcons"),
+ Control::get_icon("Color", "EditorIcons"),
+ Control::get_icon("NodePath", "EditorIcons"),
+ Control::get_icon("RID", "EditorIcons"),
Control::get_icon("MiniObject", "EditorIcons"),
- Control::get_icon("MiniDictionary", "EditorIcons"),
- Control::get_icon("MiniArray", "EditorIcons"),
- Control::get_icon("MiniRawArray", "EditorIcons"),
- Control::get_icon("MiniIntArray", "EditorIcons"),
- Control::get_icon("MiniFloatArray", "EditorIcons"),
- Control::get_icon("MiniStringArray", "EditorIcons"),
- Control::get_icon("MiniVector2Array", "EditorIcons"),
- Control::get_icon("MiniVector3Array", "EditorIcons"),
- Control::get_icon("MiniColorArray", "EditorIcons")
+ Control::get_icon("Dictionary", "EditorIcons"),
+ Control::get_icon("Array", "EditorIcons"),
+ Control::get_icon("PoolByteArray", "EditorIcons"),
+ Control::get_icon("PoolIntArray", "EditorIcons"),
+ Control::get_icon("PoolRealArray", "EditorIcons"),
+ Control::get_icon("PoolStringArray", "EditorIcons"),
+ Control::get_icon("PoolVector2Array", "EditorIcons"),
+ Control::get_icon("PoolVector3Array", "EditorIcons"),
+ Control::get_icon("PoolColorArray", "EditorIcons")
};
Ref<Texture> seq_port = Control::get_icon("VisualShaderPort", "EditorIcons");
@@ -774,33 +774,33 @@ void VisualScriptEditor::_update_members() {
variables->set_custom_color(0, Control::get_color("mono_color", "Editor"));
Ref<Texture> type_icons[Variant::VARIANT_MAX] = {
- Control::get_icon("MiniVariant", "EditorIcons"),
- Control::get_icon("MiniBoolean", "EditorIcons"),
- Control::get_icon("MiniInteger", "EditorIcons"),
- Control::get_icon("MiniFloat", "EditorIcons"),
- Control::get_icon("MiniString", "EditorIcons"),
- Control::get_icon("MiniVector2", "EditorIcons"),
- Control::get_icon("MiniRect2", "EditorIcons"),
- Control::get_icon("MiniVector3", "EditorIcons"),
- Control::get_icon("MiniMatrix32", "EditorIcons"),
- Control::get_icon("MiniPlane", "EditorIcons"),
- Control::get_icon("MiniQuat", "EditorIcons"),
- Control::get_icon("MiniAabb", "EditorIcons"),
- Control::get_icon("MiniMatrix3", "EditorIcons"),
- Control::get_icon("MiniTransform", "EditorIcons"),
- Control::get_icon("MiniColor", "EditorIcons"),
- Control::get_icon("MiniPath", "EditorIcons"),
- Control::get_icon("MiniRid", "EditorIcons"),
+ Control::get_icon("Variant", "EditorIcons"),
+ Control::get_icon("bool", "EditorIcons"),
+ Control::get_icon("int", "EditorIcons"),
+ Control::get_icon("float", "EditorIcons"),
+ Control::get_icon("String", "EditorIcons"),
+ Control::get_icon("Vector2", "EditorIcons"),
+ Control::get_icon("Rect2", "EditorIcons"),
+ Control::get_icon("Vector3", "EditorIcons"),
+ Control::get_icon("Transform2D", "EditorIcons"),
+ Control::get_icon("Plane", "EditorIcons"),
+ Control::get_icon("Quat", "EditorIcons"),
+ Control::get_icon("AABB", "EditorIcons"),
+ Control::get_icon("Basis", "EditorIcons"),
+ Control::get_icon("Transform", "EditorIcons"),
+ Control::get_icon("Color", "EditorIcons"),
+ Control::get_icon("NodePath", "EditorIcons"),
+ Control::get_icon("RID", "EditorIcons"),
Control::get_icon("MiniObject", "EditorIcons"),
- Control::get_icon("MiniDictionary", "EditorIcons"),
- Control::get_icon("MiniArray", "EditorIcons"),
- Control::get_icon("MiniRawArray", "EditorIcons"),
- Control::get_icon("MiniIntArray", "EditorIcons"),
- Control::get_icon("MiniFloatArray", "EditorIcons"),
- Control::get_icon("MiniStringArray", "EditorIcons"),
- Control::get_icon("MiniVector2Array", "EditorIcons"),
- Control::get_icon("MiniVector3Array", "EditorIcons"),
- Control::get_icon("MiniColorArray", "EditorIcons")
+ Control::get_icon("Dictionary", "EditorIcons"),
+ Control::get_icon("Array", "EditorIcons"),
+ Control::get_icon("PoolByteArray", "EditorIcons"),
+ Control::get_icon("PoolIntArray", "EditorIcons"),
+ Control::get_icon("PoolRealArray", "EditorIcons"),
+ Control::get_icon("PoolStringArray", "EditorIcons"),
+ Control::get_icon("PoolVector2Array", "EditorIcons"),
+ Control::get_icon("PoolVector3Array", "EditorIcons"),
+ Control::get_icon("PoolColorArray", "EditorIcons")
};
List<StringName> var_names;
diff --git a/modules/visual_script/visual_script_flow_control.cpp b/modules/visual_script/visual_script_flow_control.cpp
index a38266acc0..147761783a 100644
--- a/modules/visual_script/visual_script_flow_control.cpp
+++ b/modules/visual_script/visual_script_flow_control.cpp
@@ -731,921 +731,6 @@ void VisualScriptSwitch::_bind_methods() {
VisualScriptSwitch::VisualScriptSwitch() {
}
- //////////////////////////////////////////
- ////////////////EVENT ACTION FILTER///////////
- //////////////////////////////////////////
-
-#if 0
-int VisualScriptInputFilter::get_output_sequence_port_count() const {
-
- return filters.size();
-}
-
-bool VisualScriptInputFilter::has_input_sequence_port() const {
-
- return true;
-}
-
-int VisualScriptInputFilter::get_input_value_port_count() const {
-
- return 1;
-}
-int VisualScriptInputFilter::get_output_value_port_count() const {
-
- return 1;
-}
-
-String VisualScriptInputFilter::get_output_sequence_port_text(int p_port) const {
-
- String text;
-
- switch (filters[p_port].type) {
- case Ref<InputEvent>::NONE: {
- text = "None";
- } break;
- case Ref<InputEvent>::KEY: {
-
- InputEventKey k = filters[p_port].key;
-
- if (k->get_scancode() == 0 && k.unicode == 0) {
- text = "No Key";
- } else {
- if (k->get_scancode() != 0) {
- text = "KeyCode: " + keycode_get_string(k->get_scancode());
- } else if (k.unicode != 0) {
- text = "Uniode: " + String::chr(k.unicode);
- }
-
- if (k->is_pressed())
- text += ", Pressed";
- else
- text += ", Released";
-
- if (k.echo)
- text += ", Echo";
- if (k->get_alt())
- text = "Alt+" + text;
- if (k->get_shift())
- text = "Shift+" + text;
- if (k->get_control())
- text = "Ctrl+" + text;
- if (k->get_metakey())
- text = "Meta+" + text;
- }
-
- } break;
- case Ref<InputEvent>::MOUSE_MOTION: {
- InputEventMouseMotion mm = filters[p_port].mouse_motion;
- text = "Mouse Motion";
-
- String b = "Left,Right,Middle,WheelUp,WheelDown,WheelLeft,WheelRight";
-
- for (int i = 0; i < 7; i++) {
- if (mm->get_button_mask() & (1 << i)) {
- text = b.get_slice(",", i) + "+" + text;
- }
- }
- if (mm->get_alt())
- text = "Alt+" + text;
- if (mm->get_shift())
- text = "Shift+" + text;
- if (mm->get_control())
- text = "Ctrl+" + text;
- if (mm->get_metakey())
- text = "Meta+" + text;
- } break;
- case Ref<InputEvent>::MOUSE_BUTTON: {
-
- InputEventMouseButton mb = filters[p_port].mouse_button;
-
- String b = "Any,Left,Right,Middle,WheelUp,WheelDown,WheelLeft,WheelRight";
-
- text = b.get_slice(",", mb->get_button_index()) + " Mouse Button";
-
- if (mb->is_pressed())
- text += ", Pressed";
- else
- text += ", Released";
-
- if (mb.doubleclick)
- text += ", DblClick";
- if (mb->get_alt())
- text = "Alt+" + text;
- if (mb->get_shift())
- text = "Shift+" + text;
- if (mb->get_control())
- text = "Ctrl+" + text;
- if (mb->get_metakey())
- text = "Meta+" + text;
-
- } break;
- case Ref<InputEvent>::JOYPAD_MOTION: {
-
- InputEventJoypadMotion jm = filters[p_port].joy_motion;
-
- text = "JoyMotion Axis " + itos(jm.axis >> 1);
- if (jm.axis & 1)
- text += " > " + rtos(jm.axis_value);
- else
- text += " < " + rtos(-jm.axis_value);
-
- } break;
- case Ref<InputEvent>::JOYPAD_BUTTON: {
- InputEventJoypadButton jb = filters[p_port].joy_button;
-
- text = "JoyButton " + itos(jb->get_button_index());
- if (jb->is_pressed())
- text += ", Pressed";
- else
- text += ", Released";
- } break;
- case Ref<InputEvent>::SCREEN_TOUCH: {
- InputEventScreenTouch sd = filters[p_port].screen_touch;
-
- text = "Touch Finger " + itos(sd.index);
- if (sd->is_pressed())
- text += ", Pressed";
- else
- text += ", Released";
- } break;
- case Ref<InputEvent>::SCREEN_DRAG: {
- InputEventScreenDrag sd = filters[p_port].screen_drag;
- text = "Drag Finger " + itos(sd.index);
- } break;
- case Ref<InputEvent>::ACTION: {
-
- List<PropertyInfo> pinfo;
- ProjectSettings::get_singleton()->get_property_list(&pinfo);
- int index = 1;
-
- text = "No Action";
- for (List<PropertyInfo>::Element *E = pinfo.front(); E; E = E->next()) {
- const PropertyInfo &pi = E->get();
-
- if (!pi.name.begins_with("input/"))
- continue;
-
- if (filters[p_port].action.action == index) {
- text = "Action " + pi.name.substr(pi.name.find("/") + 1, pi.name.length());
- break;
- }
- index++;
- }
-
- if (filters[p_port].action->is_pressed())
- text += ", Pressed";
- else
- text += ", Released";
-
- } break;
- }
-
- return text + " - " + itos(p_port);
-}
-
-PropertyInfo VisualScriptInputFilter::get_input_value_port_info(int p_idx) const {
-
- return PropertyInfo(Variant::INPUT_EVENT, "event");
-}
-
-PropertyInfo VisualScriptInputFilter::get_output_value_port_info(int p_idx) const {
-
- return PropertyInfo(Variant::INPUT_EVENT, "");
-}
-
-String VisualScriptInputFilter::get_caption() const {
-
- return "InputFilter";
-}
-
-String VisualScriptInputFilter::get_text() const {
-
- return "";
-}
-
-bool VisualScriptInputFilter::_set(const StringName &p_name, const Variant &p_value) {
-
- if (p_name == "filter_count") {
- filters.resize(p_value);
- _change_notify();
- ports_changed_notify();
- return true;
- }
-
- if (String(p_name).begins_with("filter_")) {
-
- int idx = String(p_name).replace_first("filters_", "").get_slice("/", 0).to_int();
-
- ERR_FAIL_INDEX_V(idx, filters.size(), false);
-
- String what = String(p_name).get_slice("/", 1);
-
- if (what == "type") {
- filters[idx] = Ref<InputEvent>();
- filters[idx].type = Ref<InputEvent>::Type(int(p_value));
- if (filters[idx].type == Ref<InputEvent>::JOYPAD_MOTION) {
- filters[idx].joy_motion.axis_value = 0.5; //for threshold
- } else if (filters[idx].type == Ref<InputEvent>::KEY) {
- filters[idx]->is_pressed() = true; //put these as true to make it more user friendly
- } else if (filters[idx].type == Ref<InputEvent>::MOUSE_BUTTON) {
- filters[idx]->is_pressed() = true;
- } else if (filters[idx].type == Ref<InputEvent>::JOYPAD_BUTTON) {
- filters[idx].joy_button->is_pressed() = true;
- } else if (filters[idx].type == Ref<InputEvent>::SCREEN_TOUCH) {
- filters[idx].screen_touch->is_pressed() = true;
- } else if (filters[idx].type == Ref<InputEvent>::ACTION) {
- filters[idx].action->is_pressed() = true;
- }
- _change_notify();
- ports_changed_notify();
-
- return true;
- }
- if (what == "device") {
- filters[idx].device = p_value;
- ports_changed_notify();
- return true;
- }
-
- switch (filters[idx].type) {
-
- case Ref<InputEvent>::KEY: {
-
- if (what == "scancode") {
- String sc = p_value;
- if (sc == String()) {
- filters[idx]->get_scancode() = 0;
- } else {
- filters[idx]->get_scancode() = find_keycode(p_value);
- }
-
- } else if (what == "unicode") {
-
- String uc = p_value;
-
- if (uc == String()) {
- filters[idx].key.unicode = 0;
- } else {
- filters[idx].key.unicode = uc[0];
- }
-
- } else if (what == "pressed") {
-
- filters[idx]->is_pressed() = p_value;
- } else if (what == "echo") {
-
- filters[idx]->is_echo() = p_value;
-
- } else if (what == "mod_alt") {
- filters[idx]->get_alt() = p_value;
-
- } else if (what == "mod_shift") {
- filters[idx]->get_shift() = p_value;
-
- } else if (what == "mod_ctrl") {
- filters[idx]->get_control() = p_value;
-
- } else if (what == "mod_meta") {
- filters[idx]->get_metakey() = p_value;
- } else {
- return false;
- }
- ports_changed_notify();
-
- return true;
- } break;
- case Ref<InputEvent>::MOUSE_MOTION: {
-
- if (what == "button_mask") {
- filters[idx]->get_button_mask() = p_value;
-
- } else if (what == "mod_alt") {
- filters[idx].mouse_motion->get_alt() = p_value;
-
- } else if (what == "mod_shift") {
- filters[idx].mouse_motion->get_shift() = p_value;
-
- } else if (what == "mod_ctrl") {
- filters[idx].mouse_motion->get_control() = p_value;
-
- } else if (what == "mod_meta") {
- filters[idx].mouse_motion->get_metakey() = p_value;
- } else {
- return false;
- }
-
- ports_changed_notify();
- return true;
-
- } break;
- case Ref<InputEvent>::MOUSE_BUTTON: {
-
- if (what == "button_index") {
- filters[idx]->get_button_index() = p_value;
- } else if (what == "pressed") {
- filters[idx]->is_pressed() = p_value;
- } else if (what == "doubleclicked") {
- filters[idx].mouse_button.doubleclick = p_value;
-
- } else if (what == "mod_alt") {
- filters[idx].mouse_button->get_alt() = p_value;
-
- } else if (what == "mod_shift") {
- filters[idx].mouse_button->get_shift() = p_value;
-
- } else if (what == "mod_ctrl") {
- filters[idx].mouse_button->get_control() = p_value;
-
- } else if (what == "mod_meta") {
- filters[idx].mouse_button->get_metakey() = p_value;
- } else {
- return false;
- }
- ports_changed_notify();
- return true;
-
- } break;
- case Ref<InputEvent>::JOYPAD_MOTION: {
-
- if (what == "axis") {
- filters[idx].joy_motion.axis = int(p_value) << 1 | filters[idx].joy_motion.axis;
- } else if (what == "mode") {
- filters[idx].joy_motion.axis |= int(p_value);
- } else if (what == "threshold") {
- filters[idx].joy_motion.axis_value = p_value;
- } else {
- return false;
- }
- ports_changed_notify();
- return true;
-
- } break;
- case Ref<InputEvent>::JOYPAD_BUTTON: {
-
- if (what == "button_index") {
- filters[idx].joy_button->get_button_index() = p_value;
- } else if (what == "pressed") {
- filters[idx].joy_button->is_pressed() = p_value;
- } else {
- return false;
- }
- ports_changed_notify();
- return true;
-
- } break;
- case Ref<InputEvent>::SCREEN_TOUCH: {
-
- if (what == "finger_index") {
- filters[idx].screen_touch.index = p_value;
- } else if (what == "pressed") {
- filters[idx].screen_touch->is_pressed() = p_value;
- } else {
- return false;
- }
- ports_changed_notify();
- return true;
- } break;
- case Ref<InputEvent>::SCREEN_DRAG: {
- if (what == "finger_index") {
- filters[idx].screen_drag.index = p_value;
- } else {
- return false;
- }
- ports_changed_notify();
- return true;
- } break;
- case Ref<InputEvent>::ACTION: {
-
- if (what == "action_name") {
-
- List<PropertyInfo> pinfo;
- ProjectSettings::get_singleton()->get_property_list(&pinfo);
- int index = 1;
-
- for (List<PropertyInfo>::Element *E = pinfo.front(); E; E = E->next()) {
- const PropertyInfo &pi = E->get();
-
- if (!pi.name.begins_with("input/"))
- continue;
-
- String name = pi.name.substr(pi.name.find("/") + 1, pi.name.length());
- if (name == String(p_value)) {
-
- filters[idx].action.action = index;
- ports_changed_notify();
- return true;
- }
-
- index++;
- }
-
- filters[idx].action.action = 0;
- ports_changed_notify();
-
- return false;
-
- } else if (what == "pressed") {
-
- filters[idx].action->is_pressed() = p_value;
- ports_changed_notify();
- return true;
- }
-
- } break;
- }
- }
- return false;
-}
-
-bool VisualScriptInputFilter::_get(const StringName &p_name, Variant &r_ret) const {
-
- if (p_name == "filter_count") {
- r_ret = filters.size();
- return true;
- }
-
- if (String(p_name).begins_with("filter_")) {
-
- int idx = String(p_name).replace_first("filters_", "").get_slice("/", 0).to_int();
-
- ERR_FAIL_INDEX_V(idx, filters.size(), false);
-
- String what = String(p_name).get_slice("/", 1);
-
- if (what == "type") {
- r_ret = filters[idx].type;
- return true;
- }
- if (what == "device") {
- r_ret = filters[idx].device;
- return true;
- }
-
- switch (filters[idx].type) {
-
- case Ref<InputEvent>::KEY: {
-
- if (what == "scancode") {
- if (filters[idx]->get_scancode() == 0)
- r_ret = String();
- else {
-
- r_ret = keycode_get_string(filters[idx]->get_scancode());
- }
-
- } else if (what == "unicode") {
-
- if (filters[idx].key.unicode == 0) {
- r_ret = String();
- } else {
- CharType str[2] = { (CharType)filters[idx].key.unicode, 0 };
- r_ret = String(str);
- }
-
- } else if (what == "pressed") {
-
- r_ret = filters[idx]->is_pressed();
- } else if (what == "echo") {
-
- r_ret = filters[idx]->is_echo();
-
- } else if (what == "mod_alt") {
- r_ret = filters[idx]->get_alt();
-
- } else if (what == "mod_shift") {
- r_ret = filters[idx]->get_shift();
-
- } else if (what == "mod_ctrl") {
- r_ret = filters[idx]->get_control();
-
- } else if (what == "mod_meta") {
- r_ret = filters[idx]->get_metakey();
- } else {
- return false;
- }
-
- return true;
- } break;
- case Ref<InputEvent>::MOUSE_MOTION: {
-
- if (what == "button_mask") {
- r_ret = filters[idx]->get_button_mask();
-
- } else if (what == "mod_alt") {
- r_ret = filters[idx].mouse_motion->get_alt();
-
- } else if (what == "mod_shift") {
- r_ret = filters[idx].mouse_motion->get_shift();
-
- } else if (what == "mod_ctrl") {
- r_ret = filters[idx].mouse_motion->get_control();
-
- } else if (what == "mod_meta") {
- r_ret = filters[idx].mouse_motion->get_metakey();
- } else {
- return false;
- }
-
- return true;
-
- } break;
- case Ref<InputEvent>::MOUSE_BUTTON: {
-
- if (what == "button_index") {
- r_ret = filters[idx]->get_button_index();
- } else if (what == "pressed") {
- r_ret = filters[idx]->is_pressed();
- } else if (what == "doubleclicked") {
- r_ret = filters[idx].mouse_button.doubleclick;
-
- } else if (what == "mod_alt") {
- r_ret = filters[idx].mouse_button->get_alt();
-
- } else if (what == "mod_shift") {
- r_ret = filters[idx].mouse_button->get_shift();
-
- } else if (what == "mod_ctrl") {
- r_ret = filters[idx].mouse_button->get_control();
-
- } else if (what == "mod_meta") {
- r_ret = filters[idx].mouse_button->get_metakey();
- } else {
- return false;
- }
- return true;
-
- } break;
- case Ref<InputEvent>::JOYPAD_MOTION: {
-
- if (what == "axis_index") {
- r_ret = filters[idx].joy_motion.axis >> 1;
- } else if (what == "mode") {
- r_ret = filters[idx].joy_motion.axis & 1;
- } else if (what == "threshold") {
- r_ret = filters[idx].joy_motion.axis_value;
- } else {
- return false;
- }
- return true;
-
- } break;
- case Ref<InputEvent>::JOYPAD_BUTTON: {
-
- if (what == "button_index") {
- r_ret = filters[idx].joy_button->get_button_index();
- } else if (what == "pressed") {
- r_ret = filters[idx].joy_button->is_pressed();
- } else {
- return false;
- }
- return true;
-
- } break;
- case Ref<InputEvent>::SCREEN_TOUCH: {
-
- if (what == "finger_index") {
- r_ret = filters[idx].screen_touch.index;
- } else if (what == "pressed") {
- r_ret = filters[idx].screen_touch->is_pressed();
- } else {
- return false;
- }
- return true;
- } break;
- case Ref<InputEvent>::SCREEN_DRAG: {
- if (what == "finger_index") {
- r_ret = filters[idx].screen_drag.index;
- } else {
- return false;
- }
- return true;
- } break;
- case Ref<InputEvent>::ACTION: {
-
- if (what == "action_name") {
-
- List<PropertyInfo> pinfo;
- ProjectSettings::get_singleton()->get_property_list(&pinfo);
- int index = 1;
-
- for (List<PropertyInfo>::Element *E = pinfo.front(); E; E = E->next()) {
- const PropertyInfo &pi = E->get();
-
- if (!pi.name.begins_with("input/"))
- continue;
-
- if (filters[idx].action.action == index) {
- r_ret = pi.name.substr(pi.name.find("/") + 1, pi.name.length());
- return true;
- }
- index++;
- }
-
- r_ret = "None"; //no index
- return false;
-
- } else if (what == "pressed") {
-
- r_ret = filters[idx].action->is_pressed();
- return true;
- }
-
- } break;
- }
- }
- return false;
-}
-
-static const char *event_type_names[Ref<InputEvent>::TYPE_MAX] = {
- "None",
- "Key",
- "MouseMotion",
- "MouseButton",
- "JoypadMotion",
- "JoypadButton",
- "ScreenTouch",
- "ScreenDrag",
- "Action"
-};
-
-void VisualScriptInputFilter::_get_property_list(List<PropertyInfo> *p_list) const {
-
- p_list->push_back(PropertyInfo(Variant::INT, "filter_count", PROPERTY_HINT_RANGE, "0,64"));
-
- String et;
- for (int i = 0; i < Ref<InputEvent>::TYPE_MAX; i++) {
- if (i > 0)
- et += ",";
-
- et += event_type_names[i];
- }
-
- String kc;
- String actions;
-
- for (int i = 0; i < filters.size(); i++) {
-
- String base = "filter_" + itos(i) + "/";
- p_list->push_back(PropertyInfo(Variant::INT, base + "type", PROPERTY_HINT_ENUM, et));
- p_list->push_back(PropertyInfo(Variant::INT, base + "device"));
- switch (filters[i].type) {
-
- case Ref<InputEvent>::NONE: {
-
- } break;
- case Ref<InputEvent>::KEY: {
- if (kc == String()) {
- int kcc = keycode_get_count();
- kc = "None";
- for (int i = 0; i < kcc; i++) {
- kc += ",";
- kc += String(keycode_get_name_by_index(i));
- }
- }
- p_list->push_back(PropertyInfo(Variant::STRING, base + "scancode", PROPERTY_HINT_ENUM, kc));
- p_list->push_back(PropertyInfo(Variant::STRING, base + "unicode"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "pressed"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "echo"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "mod_alt"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "mod_shift"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "mod_ctrl"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "mod_meta"));
-
- } break;
- case Ref<InputEvent>::MOUSE_MOTION: {
- p_list->push_back(PropertyInfo(Variant::INT, base + "button_mask", PROPERTY_HINT_FLAGS, "Left,Right,Middle,WheelUp,WheelDown,WheelLeft,WheelRight"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "mod_alt"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "mod_shift"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "mod_ctrl"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "mod_meta"));
-
- } break;
- case Ref<InputEvent>::MOUSE_BUTTON: {
- p_list->push_back(PropertyInfo(Variant::INT, base + "button_index", PROPERTY_HINT_ENUM, "Any,Left,Right,Middle,WheelUp,WheelDown,WheelLeft,WheelRight"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "pressed"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "doubleclicked"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "mod_alt"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "mod_shift"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "mod_ctrl"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "mod_meta"));
-
- } break;
- case Ref<InputEvent>::JOYPAD_MOTION: {
-
- p_list->push_back(PropertyInfo(Variant::INT, base + "axis_index"));
- p_list->push_back(PropertyInfo(Variant::INT, base + "mode", PROPERTY_HINT_ENUM, "Min,Max"));
- p_list->push_back(PropertyInfo(Variant::REAL, base + "threshold", PROPERTY_HINT_RANGE, "0,1,0.01"));
- } break;
- case Ref<InputEvent>::JOYPAD_BUTTON: {
- p_list->push_back(PropertyInfo(Variant::INT, base + "button_index"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "pressed"));
-
- } break;
- case Ref<InputEvent>::SCREEN_TOUCH: {
- p_list->push_back(PropertyInfo(Variant::INT, base + "finger_index"));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "pressed"));
-
- } break;
- case Ref<InputEvent>::SCREEN_DRAG: {
- p_list->push_back(PropertyInfo(Variant::INT, base + "finger_index"));
- } break;
- case Ref<InputEvent>::ACTION: {
-
- if (actions == String()) {
-
- actions = "None";
-
- List<PropertyInfo> pinfo;
- ProjectSettings::get_singleton()->get_property_list(&pinfo);
- Vector<String> al;
-
- for (List<PropertyInfo>::Element *E = pinfo.front(); E; E = E->next()) {
- const PropertyInfo &pi = E->get();
-
- if (!pi.name.begins_with("input/"))
- continue;
-
- String name = pi.name.substr(pi.name.find("/") + 1, pi.name.length());
-
- al.push_back(name);
- }
-
- for (int i = 0; i < al.size(); i++) {
- actions += ",";
- actions += al[i];
- }
- }
-
- p_list->push_back(PropertyInfo(Variant::STRING, base + "action_name", PROPERTY_HINT_ENUM, actions));
- p_list->push_back(PropertyInfo(Variant::BOOL, base + "pressed"));
-
- } break;
- }
- }
-}
-
-class VisualScriptNodeInstanceInputFilter : public VisualScriptNodeInstance {
-public:
- VisualScriptInstance *instance;
- Vector<Ref<InputEvent>> filters;
-
- //virtual int get_working_memory_size() const { return 0; }
- //virtual bool is_output_port_unsequenced(int p_idx) const { return false; }
- //virtual bool get_output_port_unsequenced(int p_idx,Variant* r_value,Variant* p_working_mem,String &r_error) const { return false; }
-
- virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Variant::CallError &r_error, String &r_error_str) {
-
- if (p_inputs[0]->get_type() != Variant::INPUT_EVENT) {
- r_error_str = "Input value not of type event";
- r_error.error = Variant::CallError::CALL_ERROR_INVALID_METHOD;
- return 0;
- }
-
- Ref<InputEvent> event = *p_inputs[0];
-
- for (int i = 0; i < filters.size(); i++) {
-
- const Ref<InputEvent> &ie = filters[i];
- if (ie.type != event.type)
- continue;
-
- bool match = false;
-
- switch (ie.type) {
-
- case Ref<InputEvent>::NONE: {
-
- match = true;
- } break;
- case Ref<InputEvent>::KEY: {
-
- InputEventKey k = ie.key;
- InputEventKey k2 = event.key;
-
- if (k->get_scancode() == 0 && k.unicode == 0 && k2->get_scancode() == 0 && k2.unicode == 0) {
- match = true;
-
- } else {
-
- if ((k->get_scancode() != 0 && k->get_scancode() == k2->get_scancode()) || (k.unicode != 0 && k.unicode == k2.unicode)) {
- //key valid
-
- if (
- k->is_pressed() == k2->is_pressed() &&
- k.echo == k2.echo &&
- k.mod == k2.mod) {
- match = true;
- }
- }
- }
-
- } break;
- case Ref<InputEvent>::MOUSE_MOTION: {
- InputEventMouseMotion mm = ie.mouse_motion;
- InputEventMouseMotion mm2 = event.mouse_motion;
-
- if (mm->get_button_mask() == mm2->get_button_mask() &&
- mm.mod == mm2.mod) {
- match = true;
- }
-
- } break;
- case Ref<InputEvent>::MOUSE_BUTTON: {
-
- InputEventMouseButton mb = ie.mouse_button;
- InputEventMouseButton mb2 = event.mouse_button;
-
- if (mb->get_button_index() == mb2->get_button_index() &&
- mb->is_pressed() == mb2->is_pressed() &&
- mb.doubleclick == mb2.doubleclick &&
- mb.mod == mb2.mod) {
- match = true;
- }
-
- } break;
- case Ref<InputEvent>::JOYPAD_MOTION: {
-
- InputEventJoypadMotion jm = ie.joy_motion;
- InputEventJoypadMotion jm2 = event.joy_motion;
-
- int axis = jm.axis >> 1;
-
- if (axis == jm2.axis) {
-
- if (jm.axis & 1) {
- //greater
- if (jm2.axis_value > jm.axis_value) {
- match = true;
- }
- } else {
- //less
- if (jm2.axis_value < -jm.axis_value) {
- match = true;
- }
- }
- }
-
- } break;
- case Ref<InputEvent>::JOYPAD_BUTTON: {
- InputEventJoypadButton jb = ie.joy_button;
- InputEventJoypadButton jb2 = event.joy_button;
-
- if (jb->get_button_index() == jb2->get_button_index() &&
- jb->is_pressed() == jb2->is_pressed()) {
- match = true;
- }
- } break;
- case Ref<InputEvent>::SCREEN_TOUCH: {
- InputEventScreenTouch st = ie.screen_touch;
- InputEventScreenTouch st2 = event.screen_touch;
-
- if (st.index == st2.index &&
- st->is_pressed() == st2->is_pressed()) {
- match = true;
- }
-
- } break;
- case Ref<InputEvent>::SCREEN_DRAG: {
- InputEventScreenDrag sd = ie.screen_drag;
- InputEventScreenDrag sd2 = event.screen_drag;
-
- if (sd.index == sd2.index) {
- match = true;
- }
- } break;
- case Ref<InputEvent>::ACTION: {
-
- InputEventAction ia = ie.action;
- InputEventAction ia2 = event.action;
-
- if (ia.action == ia2.action &&
- ia->is_pressed() == ia2->is_pressed()) {
- match = true;
- }
- } break;
- }
-
- *p_outputs[0] = event;
-
- if (match)
- return i; //go through match output
- }
-
- return STEP_NO_ADVANCE_BIT; //none found, don't advance
- }
-};
-
-VisualScriptNodeInstance *VisualScriptInputFilter::instance(VisualScriptInstance *p_instance) {
-
- VisualScriptNodeInstanceInputFilter *instance = memnew(VisualScriptNodeInstanceInputFilter);
- instance->instance = p_instance;
- instance->filters = filters;
- return instance;
-}
-
-VisualScriptInputFilter::VisualScriptInputFilter() {
-}
-#endif
//////////////////////////////////////////
////////////////TYPE CAST///////////
//////////////////////////////////////////
diff --git a/modules/visual_script/visual_script_flow_control.h b/modules/visual_script/visual_script_flow_control.h
index 380eb76c45..4766bbef6b 100644
--- a/modules/visual_script/visual_script_flow_control.h
+++ b/modules/visual_script/visual_script_flow_control.h
@@ -228,40 +228,6 @@ public:
VisualScriptSwitch();
};
-#if 0
-class VisualScriptInputFilter : public VisualScriptNode {
-
- GDCLASS(VisualScriptInputFilter, VisualScriptNode)
-
- Vector<Ref<InputEvent>> filters;
-
-protected:
- bool _set(const StringName &p_name, const Variant &p_value);
- bool _get(const StringName &p_name, Variant &r_ret) const;
- void _get_property_list(List<PropertyInfo> *p_list) const;
-
-public:
- virtual int get_output_sequence_port_count() const;
- virtual bool has_input_sequence_port() const;
-
- virtual String get_output_sequence_port_text(int p_port) const;
-
- virtual int get_input_value_port_count() const;
- virtual int get_output_value_port_count() const;
-
- virtual PropertyInfo get_input_value_port_info(int p_idx) const;
- virtual PropertyInfo get_output_value_port_info(int p_idx) const;
-
- virtual String get_caption() const;
- virtual String get_text() const;
- virtual String get_category() const { return "flow_control"; }
-
- virtual VisualScriptNodeInstance *instance(VisualScriptInstance *p_instance);
-
- VisualScriptInputFilter();
-};
-#endif
-
class VisualScriptTypeCast : public VisualScriptNode {
GDCLASS(VisualScriptTypeCast, VisualScriptNode)
diff --git a/platform/android/detect.py b/platform/android/detect.py
index bc67f6e6dc..892b1b6a85 100644
--- a/platform/android/detect.py
+++ b/platform/android/detect.py
@@ -277,7 +277,7 @@ def get_ndk_version(path):
try:
with open(prop_file_path) as prop_file:
for line in prop_file:
- key_value = map(lambda x: string.strip(x), line.split("="))
+ key_value = list(map(lambda x: x.strip(), line.split("=")))
if key_value[0] == "Pkg.Revision":
return key_value[1]
except:
diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp
index 255413bf2c..d4c079cfc6 100644
--- a/platform/android/export/export.cpp
+++ b/platform/android/export/export.cpp
@@ -352,10 +352,11 @@ class EditorExportAndroid : public EditorExportPlatform {
ea->device_lock->unlock();
}
+ uint64_t sleep = OS::get_singleton()->get_power_state() == OS::POWERSTATE_ON_BATTERY ? 1000 : 100;
uint64_t wait = 3000000;
uint64_t time = OS::get_singleton()->get_ticks_usec();
while (OS::get_singleton()->get_ticks_usec() - time < wait) {
- OS::get_singleton()->delay_usec(1000);
+ OS::get_singleton()->delay_usec(1000 * sleep);
if (ea->quit_request)
break;
}
@@ -1305,7 +1306,7 @@ public:
return valid;
}
- virtual String get_binary_extension() const {
+ virtual String get_binary_extension(const Ref<EditorExportPreset> &p_preset) const {
return "apk";
}
diff --git a/platform/android/godot_android.cpp b/platform/android/godot_android.cpp
index f9bcbadc24..8c4a4726ae 100644
--- a/platform/android/godot_android.cpp
+++ b/platform/android/godot_android.cpp
@@ -927,7 +927,6 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_Godot_registerMethod(JNIEnv *e
int stringCount = env->GetArrayLength(args);
- print_line("Singl: " + singname + " Method: " + mname + " RetVal: " + retval);
for (int i = 0; i < stringCount; i++) {
jstring string = (jstring)env->GetObjectArrayElement(args, i);
@@ -939,7 +938,6 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_Godot_registerMethod(JNIEnv *e
cs += ")";
cs += get_jni_sig(retval);
jclass cls = env->GetObjectClass(s->get_instance());
- print_line("METHOD: " + mname + " sig: " + cs);
jmethodID mid = env->GetMethodID(cls, mname.ascii().get_data(), cs.ascii().get_data());
if (!mid) {
diff --git a/platform/android/java_glue.cpp b/platform/android/java_glue.cpp
index 40dfe6d909..1e28ef4c6a 100644
--- a/platform/android/java_glue.cpp
+++ b/platform/android/java_glue.cpp
@@ -241,7 +241,6 @@ Variant _jobject_to_variant(JNIEnv *env, jobject obj) {
String name = _get_class_name(env, c, &array);
//print_line("name is " + name + ", array "+Variant(array));
- print_line("ARGNAME: " + name);
if (name == "java.lang.String") {
return String::utf8(env->GetStringUTFChars((jstring)obj, NULL));
@@ -936,13 +935,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_setup(JNIEnv *env, jo
}
__android_log_print(ANDROID_LOG_INFO, "godot", "CMDLINE LEN %i - APK EXPANSION %i\n", cmdlen, int(use_apk_expansion));
-#if 0
- char *args[]={"-test","render",NULL};
- __android_log_print(ANDROID_LOG_INFO,"godot","pre asdasd setup...");
- Error err = Main::setup("apk",2,args,false);
-#else
Error err = Main::setup("apk", cmdlen, (char **)cmdline, false);
-#endif
if (cmdline) {
free(cmdline);
}
@@ -1519,7 +1512,6 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_method(JNIEnv *env, j
int stringCount = env->GetArrayLength(args);
- print_line("Singl: " + singname + " Method: " + mname + " RetVal: " + retval);
for (int i = 0; i < stringCount; i++) {
jstring string = (jstring)env->GetObjectArrayElement(args, i);
@@ -1531,7 +1523,6 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_method(JNIEnv *env, j
cs += ")";
cs += get_jni_sig(retval);
jclass cls = env->GetObjectClass(s->get_instance());
- print_line("METHOD: " + mname + " sig: " + cs);
jmethodID mid = env->GetMethodID(cls, mname.ascii().get_data(), cs.ascii().get_data());
if (!mid) {
diff --git a/platform/iphone/export/export.cpp b/platform/iphone/export/export.cpp
index 1833bdf2b3..9ea8d58db0 100644
--- a/platform/iphone/export/export.cpp
+++ b/platform/iphone/export/export.cpp
@@ -108,7 +108,7 @@ public:
virtual String get_os_name() const { return "iOS"; }
virtual Ref<Texture> get_logo() const { return logo; }
- virtual String get_binary_extension() const { return "ipa"; }
+ virtual String get_binary_extension(const Ref<EditorExportPreset> &p_preset) const { return "ipa"; }
virtual Error export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags = 0);
virtual bool can_export(const Ref<EditorExportPreset> &p_preset, String &r_error, bool &r_missing_templates) const;
diff --git a/platform/javascript/export/export.cpp b/platform/javascript/export/export.cpp
index 775e9c7ee0..ec5010f330 100644
--- a/platform/javascript/export/export.cpp
+++ b/platform/javascript/export/export.cpp
@@ -57,7 +57,7 @@ public:
virtual Ref<Texture> get_logo() const;
virtual bool can_export(const Ref<EditorExportPreset> &p_preset, String &r_error, bool &r_missing_templates) const;
- virtual String get_binary_extension() const;
+ virtual String get_binary_extension(const Ref<EditorExportPreset> &p_preset) const;
virtual Error export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags = 0);
virtual bool poll_devices();
@@ -149,7 +149,7 @@ bool EditorExportPlatformJavaScript::can_export(const Ref<EditorExportPreset> &p
return !r_missing_templates;
}
-String EditorExportPlatformJavaScript::get_binary_extension() const {
+String EditorExportPlatformJavaScript::get_binary_extension(const Ref<EditorExportPreset> &p_preset) const {
return "html";
}
diff --git a/platform/osx/detect.py b/platform/osx/detect.py
index e8a8319431..2e686fbee4 100644
--- a/platform/osx/detect.py
+++ b/platform/osx/detect.py
@@ -82,9 +82,6 @@ def configure(env):
env['RANLIB'] = mpprefix + "/libexec/llvm-" + mpclangver + "/bin/llvm-ranlib"
env['AS'] = mpprefix + "/libexec/llvm-" + mpclangver + "/bin/llvm-as"
env.Append(CCFLAGS=['-D__MACPORTS__']) #hack to fix libvpx MM256_BROADCASTSI128_SI256 define
- if (env["openmp"]):
- env.Append(CPPFLAGS=['-fopenmp'])
- env.Append(LINKFLAGS=['-fopenmp'])
else: # osxcross build
root = os.environ.get("OSXCROSS_ROOT", 0)
diff --git a/platform/osx/export/export.cpp b/platform/osx/export/export.cpp
index d3b763b42e..8a09aa634e 100644
--- a/platform/osx/export/export.cpp
+++ b/platform/osx/export/export.cpp
@@ -74,7 +74,7 @@ public:
virtual String get_os_name() const { return "OSX"; }
virtual Ref<Texture> get_logo() const { return logo; }
- virtual String get_binary_extension() const { return use_dmg() ? "dmg" : "zip"; }
+ virtual String get_binary_extension(const Ref<EditorExportPreset> &p_preset) const { return use_dmg() ? "dmg" : "zip"; }
virtual Error export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags = 0);
virtual bool can_export(const Ref<EditorExportPreset> &p_preset, String &r_error, bool &r_missing_templates) const;
diff --git a/platform/osx/os_osx.h b/platform/osx/os_osx.h
index ede50a05ba..2381b85658 100644
--- a/platform/osx/os_osx.h
+++ b/platform/osx/os_osx.h
@@ -215,8 +215,8 @@ public:
virtual bool _check_internal_feature_support(const String &p_feature);
- virtual void set_use_vsync(bool p_enable);
- virtual bool is_vsync_enabled() const;
+ virtual void _set_use_vsync(bool p_enable);
+ //virtual bool is_vsync_enabled() const;
void run();
diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm
index f3809e6eed..aab37cb59c 100644
--- a/platform/osx/os_osx.mm
+++ b/platform/osx/os_osx.mm
@@ -2063,14 +2063,14 @@ Error OS_OSX::move_to_trash(const String &p_path) {
return OK;
}
-void OS_OSX::set_use_vsync(bool p_enable) {
+void OS_OSX::_set_use_vsync(bool p_enable) {
CGLContextObj ctx = CGLGetCurrentContext();
if (ctx) {
GLint swapInterval = p_enable ? 1 : 0;
CGLSetParameter(ctx, kCGLCPSwapInterval, &swapInterval);
}
}
-
+/*
bool OS_OSX::is_vsync_enabled() const {
GLint swapInterval = 0;
CGLContextObj ctx = CGLGetCurrentContext();
@@ -2079,7 +2079,7 @@ bool OS_OSX::is_vsync_enabled() const {
}
return swapInterval ? true : false;
}
-
+*/
OS_OSX *OS_OSX::singleton = NULL;
OS_OSX::OS_OSX() {
diff --git a/platform/uwp/SCsub b/platform/uwp/SCsub
index f0d69fef33..fb0c4a92ae 100644
--- a/platform/uwp/SCsub
+++ b/platform/uwp/SCsub
@@ -4,9 +4,6 @@ Import('env')
files = [
'thread_uwp.cpp',
- '#platform/windows/tcp_server_winsock.cpp',
- '#platform/windows/packet_peer_udp_winsock.cpp',
- '#platform/windows/stream_peer_winsock.cpp',
'#platform/windows/key_mapping_win.cpp',
'#platform/windows/windows_terminal_logger.cpp',
'joypad_uwp.cpp',
diff --git a/platform/uwp/export/export.cpp b/platform/uwp/export/export.cpp
index 7f86b4ae53..45ca097de5 100644
--- a/platform/uwp/export/export.cpp
+++ b/platform/uwp/export/export.cpp
@@ -1013,7 +1013,7 @@ public:
return "UWP";
}
- virtual String get_binary_extension() const {
+ virtual String get_binary_extension(const Ref<EditorExportPreset> &p_preset) const {
return "appx";
}
diff --git a/platform/uwp/os_uwp.cpp b/platform/uwp/os_uwp.cpp
index 659f162724..3018ac0bef 100644
--- a/platform/uwp/os_uwp.cpp
+++ b/platform/uwp/os_uwp.cpp
@@ -34,13 +34,13 @@
#include "drivers/windows/dir_access_windows.h"
#include "drivers/windows/file_access_windows.h"
#include "drivers/windows/mutex_windows.h"
+#include "drivers/windows/packet_peer_udp_winsock.h"
#include "drivers/windows/rw_lock_windows.h"
#include "drivers/windows/semaphore_windows.h"
+#include "drivers/windows/stream_peer_tcp_winsock.h"
+#include "drivers/windows/tcp_server_winsock.h"
#include "io/marshalls.h"
#include "main/main.h"
-#include "platform/windows/packet_peer_udp_winsock.h"
-#include "platform/windows/stream_peer_winsock.h"
-#include "platform/windows/tcp_server_winsock.h"
#include "platform/windows/windows_terminal_logger.h"
#include "project_settings.h"
#include "servers/audio_server.h"
@@ -163,7 +163,7 @@ void OSUWP::initialize_core() {
DirAccess::make_default<DirAccessWindows>(DirAccess::ACCESS_FILESYSTEM);
TCPServerWinsock::make_default();
- StreamPeerWinsock::make_default();
+ StreamPeerTCPWinsock::make_default();
PacketPeerUDPWinsock::make_default();
// We need to know how often the clock is updated
diff --git a/platform/windows/SCsub b/platform/windows/SCsub
index 135ccd902a..604896b0db 100644
--- a/platform/windows/SCsub
+++ b/platform/windows/SCsub
@@ -9,9 +9,9 @@ def make_debug_mingw(target, source, env):
mingw_prefix = env["mingw_prefix_32"]
else:
mingw_prefix = env["mingw_prefix_64"]
- os.system(mingw_prefix + 'objcopy --only-keep-debug %s %s.debug' % (target[0], target[0]))
+ os.system(mingw_prefix + 'objcopy --only-keep-debug %s %s.debugsymbols' % (target[0], target[0]))
os.system(mingw_prefix + 'strip --strip-debug --strip-unneeded %s' % (target[0]))
- os.system(mingw_prefix + 'objcopy --add-gnu-debuglink=%s.debug %s' % (target[0], target[0]))
+ os.system(mingw_prefix + 'objcopy --add-gnu-debuglink=%s.debugsymbols %s' % (target[0], target[0]))
common_win = [
"context_gl_win.cpp",
@@ -19,9 +19,6 @@ common_win = [
"os_windows.cpp",
"ctxgl_procaddr.cpp",
"key_mapping_win.cpp",
- "tcp_server_winsock.cpp",
- "packet_peer_udp_winsock.cpp",
- "stream_peer_winsock.cpp",
"joypad.cpp",
"power_windows.cpp",
"windows_terminal_logger.cpp"
diff --git a/platform/windows/detect.py b/platform/windows/detect.py
index bc8be7f034..3b8de2caf4 100644
--- a/platform/windows/detect.py
+++ b/platform/windows/detect.py
@@ -188,8 +188,9 @@ def configure(env):
else:
VC_PATH = ""
- if (env["openmp"]):
- env.Append(CPPFLAGS=['/openmp'])
+ if (env["use_lto"]):
+ env.Append(CCFLAGS=['/GL'])
+ env.Append(LINKFLAGS=['/LTCG'])
env.Append(CCFLAGS=["/I" + p for p in os.getenv("INCLUDE").split(";")])
env.Append(LIBPATH=[p for p in os.getenv("LIB").split(";")])
@@ -267,9 +268,6 @@ def configure(env):
env.Append(CCFLAGS=['-flto'])
env.Append(LINKFLAGS=['-flto=' + str(env.GetOption("num_jobs"))])
- if (env["openmp"]):
- env.Append(CPPFLAGS=['-fopenmp'])
- env.Append(LIBS=['gomp'])
## Compile flags
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp
index 5916c8f06c..d3fa2bbc0d 100644
--- a/platform/windows/os_windows.cpp
+++ b/platform/windows/os_windows.cpp
@@ -34,19 +34,19 @@
#include "drivers/windows/dir_access_windows.h"
#include "drivers/windows/file_access_windows.h"
#include "drivers/windows/mutex_windows.h"
+#include "drivers/windows/packet_peer_udp_winsock.h"
#include "drivers/windows/rw_lock_windows.h"
#include "drivers/windows/semaphore_windows.h"
+#include "drivers/windows/stream_peer_tcp_winsock.h"
+#include "drivers/windows/tcp_server_winsock.h"
#include "drivers/windows/thread_windows.h"
#include "io/marshalls.h"
#include "joypad.h"
#include "lang_table.h"
#include "main/main.h"
-#include "packet_peer_udp_winsock.h"
#include "servers/audio_server.h"
#include "servers/visual/visual_server_raster.h"
#include "servers/visual/visual_server_wrap_mt.h"
-#include "stream_peer_winsock.h"
-#include "tcp_server_winsock.h"
#include "version_generated.gen.h"
#include "windows_terminal_logger.h"
@@ -196,7 +196,7 @@ void OS_Windows::initialize_core() {
DirAccess::make_default<DirAccessWindows>(DirAccess::ACCESS_FILESYSTEM);
TCPServerWinsock::make_default();
- StreamPeerWinsock::make_default();
+ StreamPeerTCPWinsock::make_default();
PacketPeerUDPWinsock::make_default();
// We need to know how often the clock is updated
@@ -1253,7 +1253,7 @@ void OS_Windows::finalize_core() {
memdelete(process_map);
TCPServerWinsock::cleanup();
- StreamPeerWinsock::cleanup();
+ StreamPeerTCPWinsock::cleanup();
}
void OS_Windows::alert(const String &p_alert, const String &p_title) {
@@ -2288,19 +2288,19 @@ String OS_Windows::get_joy_guid(int p_device) const {
return input->get_joy_guid_remapped(p_device);
}
-void OS_Windows::set_use_vsync(bool p_enable) {
+void OS_Windows::_set_use_vsync(bool p_enable) {
if (gl_context)
gl_context->set_use_vsync(p_enable);
}
-
+/*
bool OS_Windows::is_vsync_enabled() const {
if (gl_context)
return gl_context->is_using_vsync();
return true;
-}
+}*/
OS::PowerState OS_Windows::get_power_state() {
return power_manager->get_power_state();
diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h
index f2226a53a9..7c5490a0a4 100644
--- a/platform/windows/os_windows.h
+++ b/platform/windows/os_windows.h
@@ -275,8 +275,8 @@ public:
virtual bool is_joy_known(int p_device);
virtual String get_joy_guid(int p_device) const;
- virtual void set_use_vsync(bool p_enable);
- virtual bool is_vsync_enabled() const;
+ virtual void _set_use_vsync(bool p_enable);
+ //virtual bool is_vsync_enabled() const;
virtual OS::PowerState get_power_state();
virtual int get_power_seconds_left();
diff --git a/platform/x11/SCsub b/platform/x11/SCsub
index 6378553638..38dd2ddd88 100644
--- a/platform/x11/SCsub
+++ b/platform/x11/SCsub
@@ -4,9 +4,9 @@ import os
Import('env')
def make_debug(target, source, env):
- os.system('objcopy --only-keep-debug %s %s.debug' % (target[0], target[0]))
+ os.system('objcopy --only-keep-debug %s %s.debugsymbols' % (target[0], target[0]))
os.system('strip --strip-debug --strip-unneeded %s' % (target[0]))
- os.system('objcopy --add-gnu-debuglink=%s.debug %s' % (target[0], target[0]))
+ os.system('objcopy --add-gnu-debuglink=%s.debugsymbols %s' % (target[0], target[0]))
common_x11 = [
"context_gl_x11.cpp",
diff --git a/platform/x11/detect.py b/platform/x11/detect.py
index 09bf57c5f1..cb45fed1be 100644
--- a/platform/x11/detect.py
+++ b/platform/x11/detect.py
@@ -265,9 +265,5 @@ def configure(env):
env.Append(LINKFLAGS=['-m64', '-L/usr/lib/i686-linux-gnu'])
- if env["openmp"]:
- env.Append(CPPFLAGS=['-fopenmp'])
- env.Append(LINKFLAGS=['-fopenmp'])
-
if env['use_static_cpp']:
env.Append(LINKFLAGS=['-static-libstdc++'])
diff --git a/platform/x11/export/export.cpp b/platform/x11/export/export.cpp
index fdb43c9ae0..1baa3e127f 100644
--- a/platform/x11/export/export.cpp
+++ b/platform/x11/export/export.cpp
@@ -44,7 +44,8 @@ void register_x11_exporter() {
logo->create_from_image(img);
platform->set_logo(logo);
platform->set_name("Linux/X11");
- platform->set_extension("bin");
+ platform->set_extension("x86");
+ platform->set_extension("x86_64", "binary_format/64_bits");
platform->set_release_32("linux_x11_32_release");
platform->set_debug_32("linux_x11_32_debug");
platform->set_release_64("linux_x11_64_release");
diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp
index 0c0bc1a8a3..f3f4b1f217 100644
--- a/platform/x11/os_x11.cpp
+++ b/platform/x11/os_x11.cpp
@@ -1050,6 +1050,10 @@ void OS_X11::set_window_maximized(bool p_enabled) {
XSendEvent(x11_display, DefaultRootWindow(x11_display), False, SubstructureRedirectMask | SubstructureNotifyMask, &xev);
+ while (p_enabled && !is_window_maximized()) {
+ // Wait for effective resizing (so the GLX context is too).
+ }
+
maximized = p_enabled;
}
@@ -2306,11 +2310,11 @@ String OS_X11::get_joy_guid(int p_device) const {
return input->get_joy_guid_remapped(p_device);
}
-void OS_X11::set_use_vsync(bool p_enable) {
+void OS_X11::_set_use_vsync(bool p_enable) {
if (context_gl)
return context_gl->set_use_vsync(p_enable);
}
-
+/*
bool OS_X11::is_vsync_enabled() const {
if (context_gl)
@@ -2318,7 +2322,7 @@ bool OS_X11::is_vsync_enabled() const {
return true;
}
-
+*/
void OS_X11::set_context(int p_context) {
XClassHint *classHint = XAllocClassHint();
diff --git a/platform/x11/os_x11.h b/platform/x11/os_x11.h
index c8cea1e30c..86f25918fd 100644
--- a/platform/x11/os_x11.h
+++ b/platform/x11/os_x11.h
@@ -270,8 +270,8 @@ public:
virtual void set_context(int p_context);
- virtual void set_use_vsync(bool p_enable);
- virtual bool is_vsync_enabled() const;
+ virtual void _set_use_vsync(bool p_enable);
+ //virtual bool is_vsync_enabled() const;
virtual OS::PowerState get_power_state();
virtual int get_power_seconds_left();
diff --git a/scene/2d/navigation2d.cpp b/scene/2d/navigation2d.cpp
index 9eff107827..40013814f8 100644
--- a/scene/2d/navigation2d.cpp
+++ b/scene/2d/navigation2d.cpp
@@ -205,7 +205,7 @@ void Navigation2D::_navpoly_unlink(int p_id) {
nm.linked = false;
}
-int Navigation2D::navpoly_create(const Ref<NavigationPolygon> &p_mesh, const Transform2D &p_xform, Object *p_owner) {
+int Navigation2D::navpoly_add(const Ref<NavigationPolygon> &p_mesh, const Transform2D &p_xform, Object *p_owner) {
int id = last_id++;
NavMesh nm;
@@ -708,7 +708,7 @@ Object *Navigation2D::get_closest_point_owner(const Vector2 &p_point) {
void Navigation2D::_bind_methods() {
- ClassDB::bind_method(D_METHOD("navpoly_create", "mesh", "xform", "owner"), &Navigation2D::navpoly_create, DEFVAL(Variant()));
+ ClassDB::bind_method(D_METHOD("navpoly_add", "mesh", "xform", "owner"), &Navigation2D::navpoly_add, DEFVAL(Variant()));
ClassDB::bind_method(D_METHOD("navpoly_set_transform", "id", "xform"), &Navigation2D::navpoly_set_transform);
ClassDB::bind_method(D_METHOD("navpoly_remove", "id"), &Navigation2D::navpoly_remove);
diff --git a/scene/2d/navigation2d.h b/scene/2d/navigation2d.h
index bb97e1a9a9..02dbcb0f96 100644
--- a/scene/2d/navigation2d.h
+++ b/scene/2d/navigation2d.h
@@ -159,7 +159,7 @@ protected:
public:
//API should be as dynamic as possible
- int navpoly_create(const Ref<NavigationPolygon> &p_mesh, const Transform2D &p_xform, Object *p_owner = NULL);
+ int navpoly_add(const Ref<NavigationPolygon> &p_mesh, const Transform2D &p_xform, Object *p_owner = NULL);
void navpoly_set_transform(int p_id, const Transform2D &p_xform);
void navpoly_remove(int p_id);
diff --git a/scene/2d/navigation_polygon.cpp b/scene/2d/navigation_polygon.cpp
index c53241e985..5a6a5128e6 100644
--- a/scene/2d/navigation_polygon.cpp
+++ b/scene/2d/navigation_polygon.cpp
@@ -293,7 +293,7 @@ void NavigationPolygonInstance::set_enabled(bool p_enabled) {
if (navpoly.is_valid()) {
- nav_id = navigation->navpoly_create(navpoly, get_relative_transform_to_parent(navigation), this);
+ nav_id = navigation->navpoly_add(navpoly, get_relative_transform_to_parent(navigation), this);
}
}
}
@@ -324,7 +324,7 @@ void NavigationPolygonInstance::_notification(int p_what) {
if (enabled && navpoly.is_valid()) {
- nav_id = navigation->navpoly_create(navpoly, get_relative_transform_to_parent(navigation), this);
+ nav_id = navigation->navpoly_add(navpoly, get_relative_transform_to_parent(navigation), this);
}
break;
}
@@ -419,7 +419,7 @@ void NavigationPolygonInstance::set_navigation_polygon(const Ref<NavigationPolyg
}
if (navigation && navpoly.is_valid() && enabled) {
- nav_id = navigation->navpoly_create(navpoly, get_relative_transform_to_parent(navigation), this);
+ nav_id = navigation->navpoly_add(navpoly, get_relative_transform_to_parent(navigation), this);
}
//update_gizmo();
_change_notify("navpoly");
diff --git a/scene/2d/particles_2d.cpp b/scene/2d/particles_2d.cpp
index 7d53557216..cc3829ad07 100644
--- a/scene/2d/particles_2d.cpp
+++ b/scene/2d/particles_2d.cpp
@@ -35,8 +35,7 @@
void Particles2D::set_emitting(bool p_emitting) {
- emitting = p_emitting;
- VS::get_singleton()->particles_set_emitting(particles, emitting);
+ VS::get_singleton()->particles_set_emitting(particles, p_emitting);
}
void Particles2D::set_amount(int p_amount) {
@@ -56,7 +55,7 @@ void Particles2D::set_one_shot(bool p_enable) {
one_shot = p_enable;
VS::get_singleton()->particles_set_one_shot(particles, one_shot);
- if (!one_shot && emitting)
+ if (!one_shot && is_emitting())
VisualServer::get_singleton()->particles_restart(particles);
}
void Particles2D::set_pre_process_time(float p_time) {
@@ -134,7 +133,7 @@ void Particles2D::set_speed_scale(float p_scale) {
bool Particles2D::is_emitting() const {
- return emitting;
+ return VS::get_singleton()->particles_get_emitting(particles);
}
int Particles2D::get_amount() const {
diff --git a/scene/2d/particles_2d.h b/scene/2d/particles_2d.h
index 6946f2a799..455a663693 100644
--- a/scene/2d/particles_2d.h
+++ b/scene/2d/particles_2d.h
@@ -47,7 +47,6 @@ public:
private:
RID particles;
- bool emitting;
bool one_shot;
int amount;
float lifetime;
diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp
index 1e34372d1e..a83c1c1cad 100644
--- a/scene/2d/tile_map.cpp
+++ b/scene/2d/tile_map.cpp
@@ -486,7 +486,7 @@ void TileMap::_update_dirty_quadrants() {
xform.set_origin(offset.floor() + q.pos);
_fix_cell_transform(xform, c, npoly_ofs + center_ofs, s);
- int pid = navigation->navpoly_create(navpoly, nav_rel * xform);
+ int pid = navigation->navpoly_add(navpoly, nav_rel * xform);
Quadrant::NavPoly np;
np.id = pid;
@@ -739,6 +739,26 @@ void TileMap::update_bitmask_area(const Vector2 &p_pos) {
}
}
+void TileMap::update_bitmask_region(const Vector2 &p_start, const Vector2 &p_end) {
+
+ if ((p_end.x < p_start.x || p_end.y < p_start.y) || (p_end.x == p_start.x && p_end.y == p_start.y)) {
+ int i;
+ Array a = get_used_cells();
+ for (i = 0; i < a.size(); i++) {
+ // update_bitmask_area() in order to update cells adjacent to the
+ // current cell, since ordering in array may not be reliable
+ Vector2 vector = (Vector2)a[i];
+ update_bitmask_area(Vector2(vector.x, vector.y));
+ }
+ return;
+ }
+ for (int x = p_start.x - 1; x <= p_end.x + 1; x++) {
+ for (int y = p_start.y - 1; y <= p_end.y + 1; y++) {
+ update_cell_bitmask(x, y);
+ }
+ }
+}
+
void TileMap::update_cell_bitmask(int p_x, int p_y) {
PosKey p(p_x, p_y);
@@ -1507,6 +1527,9 @@ void TileMap::_bind_methods() {
ClassDB::bind_method(D_METHOD("_recreate_quadrants"), &TileMap::_recreate_quadrants);
ClassDB::bind_method(D_METHOD("_update_dirty_quadrants"), &TileMap::_update_dirty_quadrants);
+ ClassDB::bind_method(D_METHOD("update_bitmask_area", "position"), &TileMap::update_bitmask_area);
+ ClassDB::bind_method(D_METHOD("update_bitmask_region", "start", "end"), &TileMap::update_bitmask_region, DEFVAL(Vector2()), DEFVAL(Vector2()));
+
ClassDB::bind_method(D_METHOD("_set_tile_data"), &TileMap::_set_tile_data);
ClassDB::bind_method(D_METHOD("_get_tile_data"), &TileMap::_get_tile_data);
diff --git a/scene/2d/tile_map.h b/scene/2d/tile_map.h
index e5608884c4..8f0b2e6e4c 100644
--- a/scene/2d/tile_map.h
+++ b/scene/2d/tile_map.h
@@ -245,6 +245,7 @@ public:
void make_bitmask_area_dirty(const Vector2 &p_pos);
void update_bitmask_area(const Vector2 &p_pos);
+ void update_bitmask_region(const Vector2 &p_start = Vector2(), const Vector2 &p_end = Vector2());
void update_cell_bitmask(int p_x, int p_y);
void update_dirty_bitmask();
diff --git a/scene/3d/arvr_nodes.cpp b/scene/3d/arvr_nodes.cpp
index e1e0b9b1ce..2bb41bf49e 100644
--- a/scene/3d/arvr_nodes.cpp
+++ b/scene/3d/arvr_nodes.cpp
@@ -231,7 +231,7 @@ void ARVRController::_notification(int p_what) {
void ARVRController::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_controller_id", "controller_id"), &ARVRController::set_controller_id);
ClassDB::bind_method(D_METHOD("get_controller_id"), &ARVRController::get_controller_id);
- ADD_PROPERTY(PropertyInfo(Variant::INT, "controller_id", PROPERTY_HINT_RANGE, "1,32,1"), "set_controller_id", "get_controller_id");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "controller_id", PROPERTY_HINT_RANGE, "0,32,1"), "set_controller_id", "get_controller_id");
ClassDB::bind_method(D_METHOD("get_controller_name"), &ARVRController::get_controller_name);
// passthroughs to information about our related joystick
@@ -251,7 +251,8 @@ void ARVRController::_bind_methods() {
};
void ARVRController::set_controller_id(int p_controller_id) {
- // we don't check any bounds here, this controller may not yet be active and just be a place holder until it is.
+ // We don't check any bounds here, this controller may not yet be active and just be a place holder until it is.
+ // Note that setting this to 0 means this node is not bound to a controller yet.
controller_id = p_controller_id;
};
@@ -420,7 +421,7 @@ void ARVRAnchor::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_anchor_id", "anchor_id"), &ARVRAnchor::set_anchor_id);
ClassDB::bind_method(D_METHOD("get_anchor_id"), &ARVRAnchor::get_anchor_id);
- ADD_PROPERTY(PropertyInfo(Variant::INT, "anchor_id"), "set_anchor_id", "get_anchor_id");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "anchor_id", PROPERTY_HINT_RANGE, "0,32,1"), "set_anchor_id", "get_anchor_id");
ClassDB::bind_method(D_METHOD("get_anchor_name"), &ARVRAnchor::get_anchor_name);
ClassDB::bind_method(D_METHOD("get_is_active"), &ARVRAnchor::get_is_active);
@@ -430,7 +431,8 @@ void ARVRAnchor::_bind_methods() {
};
void ARVRAnchor::set_anchor_id(int p_anchor_id) {
- // we don't check any bounds here, this anchor may not yet be active and just be a place holder until it is.
+ // We don't check any bounds here, this anchor may not yet be active and just be a place holder until it is.
+ // Note that setting this to 0 means this node is not bound to an anchor yet.
anchor_id = p_anchor_id;
};
diff --git a/scene/3d/baked_lightmap.cpp b/scene/3d/baked_lightmap.cpp
index 8af8c2f7da..8c282a31b8 100644
--- a/scene/3d/baked_lightmap.cpp
+++ b/scene/3d/baked_lightmap.cpp
@@ -55,12 +55,13 @@ float BakedLightmapData::get_energy() const {
return energy;
}
-void BakedLightmapData::add_user(const NodePath &p_path, const Ref<Texture> &p_lightmap) {
+void BakedLightmapData::add_user(const NodePath &p_path, const Ref<Texture> &p_lightmap, int p_instance) {
ERR_FAIL_COND(p_lightmap.is_null());
User user;
user.path = p_path;
user.lightmap = p_lightmap;
+ user.instance_index = p_instance;
users.push_back(user);
}
@@ -79,16 +80,22 @@ Ref<Texture> BakedLightmapData::get_user_lightmap(int p_user) const {
return users[p_user].lightmap;
}
+int BakedLightmapData::get_user_instance(int p_user) const {
+
+ ERR_FAIL_INDEX_V(p_user, users.size(), -1);
+ return users[p_user].instance_index;
+}
+
void BakedLightmapData::clear_users() {
users.clear();
}
void BakedLightmapData::_set_user_data(const Array &p_data) {
- ERR_FAIL_COND(p_data.size() & 1);
+ ERR_FAIL_COND((p_data.size() % 3) != 0);
- for (int i = 0; i < p_data.size(); i += 2) {
- add_user(p_data[i], p_data[i + 1]);
+ for (int i = 0; i < p_data.size(); i += 3) {
+ add_user(p_data[i], p_data[i + 1], p_data[i + 2]);
}
}
@@ -98,6 +105,7 @@ Array BakedLightmapData::_get_user_data() const {
for (int i = 0; i < users.size(); i++) {
ret.push_back(users[i].path);
ret.push_back(users[i].lightmap);
+ ret.push_back(users[i].instance_index);
}
return ret;
}
@@ -125,7 +133,7 @@ void BakedLightmapData::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_energy", "energy"), &BakedLightmapData::set_energy);
ClassDB::bind_method(D_METHOD("get_energy"), &BakedLightmapData::get_energy);
- ClassDB::bind_method(D_METHOD("add_user", "path", "lightmap"), &BakedLightmapData::add_user);
+ ClassDB::bind_method(D_METHOD("add_user", "path", "lightmap", "instance"), &BakedLightmapData::add_user);
ClassDB::bind_method(D_METHOD("get_user_count"), &BakedLightmapData::get_user_count);
ClassDB::bind_method(D_METHOD("get_user_path", "user_idx"), &BakedLightmapData::get_user_path);
ClassDB::bind_method(D_METHOD("get_user_lightmap", "user_idx"), &BakedLightmapData::get_user_lightmap);
@@ -157,24 +165,25 @@ BakedLightmap::BakeBeginFunc BakedLightmap::bake_begin_function = NULL;
BakedLightmap::BakeStepFunc BakedLightmap::bake_step_function = NULL;
BakedLightmap::BakeEndFunc BakedLightmap::bake_end_function = NULL;
-void BakedLightmap::set_bake_subdiv(Subdiv p_subdiv) {
- bake_subdiv = p_subdiv;
+void BakedLightmap::set_bake_cell_size(float p_cell_size) {
+ bake_cell_size = p_cell_size;
}
-BakedLightmap::Subdiv BakedLightmap::get_bake_subdiv() const {
- return bake_subdiv;
+float BakedLightmap::get_bake_cell_size() const {
+ return bake_cell_size;
}
-void BakedLightmap::set_capture_subdiv(Subdiv p_subdiv) {
- capture_subdiv = p_subdiv;
+void BakedLightmap::set_capture_cell_size(float p_cell_size) {
+ capture_cell_size = p_cell_size;
}
-BakedLightmap::Subdiv BakedLightmap::get_capture_subdiv() const {
- return capture_subdiv;
+float BakedLightmap::get_capture_cell_size() const {
+ return capture_cell_size;
}
void BakedLightmap::set_extents(const Vector3 &p_extents) {
extents = p_extents;
+ update_gizmo();
}
Vector3 BakedLightmap::get_extents() const {
@@ -208,6 +217,7 @@ void BakedLightmap::_find_meshes_and_lights(Node *p_at_node, List<PlotMesh> &plo
pm.local_xform = xf;
pm.mesh = mesh;
pm.path = get_path_to(mi);
+ pm.instance_idx = -1;
for (int i = 0; i < mesh->get_surface_count(); i++) {
pm.instance_materials.push_back(mi->get_surface_material(i));
}
@@ -218,6 +228,26 @@ void BakedLightmap::_find_meshes_and_lights(Node *p_at_node, List<PlotMesh> &plo
}
}
+ Spatial *s = Object::cast_to<Spatial>(p_at_node);
+
+ if (!mi && s) {
+ Array meshes = p_at_node->call("get_bake_meshes");
+ if (meshes.size() && (meshes.size() & 1) == 0) {
+ Transform xf = get_global_transform().affine_inverse() * s->get_global_transform();
+ for (int i = 0; i < meshes.size(); i += 2) {
+ PlotMesh pm;
+ Transform mesh_xf = meshes[i + 1];
+ pm.local_xform = xf * mesh_xf;
+ pm.mesh = meshes[i];
+ pm.instance_idx = i / 2;
+ if (!pm.mesh.is_valid())
+ continue;
+ pm.path = get_path_to(s);
+ plot_meshes.push_back(pm);
+ }
+ }
+ }
+
Light *light = Object::cast_to<Light>(p_at_node);
if (light && light->get_bake_mode() != Light::BAKE_DISABLED) {
@@ -297,11 +327,29 @@ BakedLightmap::BakeError BakedLightmap::bake(Node *p_from_node, bool p_create_vi
Ref<BakedLightmapData> new_light_data;
new_light_data.instance();
- static const int subdiv_value[SUBDIV_MAX] = { 8, 9, 10, 11, 12, 13 };
-
VoxelLightBaker baker;
- baker.begin_bake(subdiv_value[bake_subdiv], AABB(-extents, extents * 2.0));
+ int bake_subdiv;
+ int capture_subdiv;
+ AABB bake_bounds;
+ {
+ bake_bounds = AABB(-extents, extents * 2.0);
+ int subdiv = nearest_power_of_2_templated(int(bake_bounds.get_longest_axis_size() / bake_cell_size));
+ bake_bounds.size[bake_bounds.get_longest_axis_size()] = subdiv * bake_cell_size;
+ bake_subdiv = nearest_shift(subdiv) + 1;
+
+ capture_subdiv = bake_subdiv;
+ float css = bake_cell_size;
+ while (css < capture_cell_size && capture_subdiv > 2) {
+ capture_subdiv--;
+ css *= 2.0;
+ }
+
+ print_line("bake subdiv: " + itos(bake_subdiv));
+ print_line("capture subdiv: " + itos(capture_subdiv));
+ }
+
+ baker.begin_bake(bake_subdiv, bake_bounds);
List<PlotMesh> mesh_list;
List<PlotLight> light_list;
@@ -476,23 +524,23 @@ BakedLightmap::BakeError BakedLightmap::bake(Node *p_from_node, bool p_create_vi
if (set_path) {
tex->set_path(image_path);
}
- new_light_data->add_user(E->get().path, tex);
+ new_light_data->add_user(E->get().path, tex, E->get().instance_idx);
}
}
- int csubdiv = subdiv_value[capture_subdiv];
AABB bounds = AABB(-extents, extents * 2);
- new_light_data->set_cell_subdiv(csubdiv);
+ new_light_data->set_cell_subdiv(capture_subdiv);
new_light_data->set_bounds(bounds);
- new_light_data->set_octree(baker.create_capture_octree(csubdiv));
+ new_light_data->set_octree(baker.create_capture_octree(capture_subdiv));
{
+ float bake_bound_size = bake_bounds.get_longest_axis_size();
Transform to_bounds;
- to_bounds.basis.scale(Vector3(bounds.get_longest_axis_size(), bounds.get_longest_axis_size(), bounds.get_longest_axis_size()));
+ to_bounds.basis.scale(Vector3(bake_bound_size, bake_bound_size, bake_bound_size));
to_bounds.origin = bounds.position;
Transform to_grid;
- to_grid.basis.scale(Vector3(1 << (csubdiv - 1), 1 << (csubdiv - 1), 1 << (csubdiv - 1)));
+ to_grid.basis.scale(Vector3(1 << (capture_subdiv - 1), 1 << (capture_subdiv - 1), 1 << (capture_subdiv - 1)));
Transform to_cell_space = to_grid * to_bounds.affine_inverse();
new_light_data->set_cell_space_transform(to_cell_space);
@@ -546,12 +594,21 @@ void BakedLightmap::_assign_lightmaps() {
ERR_FAIL_COND(!light_data.is_valid());
for (int i = 0; i < light_data->get_user_count(); i++) {
- Node *node = get_node(light_data->get_user_path(i));
- VisualInstance *vi = Object::cast_to<VisualInstance>(node);
- ERR_CONTINUE(!vi);
Ref<Texture> lightmap = light_data->get_user_lightmap(i);
ERR_CONTINUE(!lightmap.is_valid());
- VS::get_singleton()->instance_set_use_lightmap(vi->get_instance(), get_instance(), lightmap->get_rid());
+
+ Node *node = get_node(light_data->get_user_path(i));
+ int instance_idx = light_data->get_user_instance(i);
+ if (instance_idx >= 0) {
+ RID instance = node->call("get_bake_mesh_instance", instance_idx);
+ if (instance.is_valid()) {
+ VS::get_singleton()->instance_set_use_lightmap(instance, get_instance(), lightmap->get_rid());
+ }
+ } else {
+ VisualInstance *vi = Object::cast_to<VisualInstance>(node);
+ ERR_CONTINUE(!vi);
+ VS::get_singleton()->instance_set_use_lightmap(vi->get_instance(), get_instance(), lightmap->get_rid());
+ }
}
}
@@ -559,9 +616,17 @@ void BakedLightmap::_clear_lightmaps() {
ERR_FAIL_COND(!light_data.is_valid());
for (int i = 0; i < light_data->get_user_count(); i++) {
Node *node = get_node(light_data->get_user_path(i));
- VisualInstance *vi = Object::cast_to<VisualInstance>(node);
- ERR_CONTINUE(!vi);
- VS::get_singleton()->instance_set_use_lightmap(vi->get_instance(), RID(), RID());
+ int instance_idx = light_data->get_user_instance(i);
+ if (instance_idx >= 0) {
+ RID instance = node->call("get_bake_mesh_instance", instance_idx);
+ if (instance.is_valid()) {
+ VS::get_singleton()->instance_set_use_lightmap(instance, get_instance(), RID());
+ }
+ } else {
+ VisualInstance *vi = Object::cast_to<VisualInstance>(node);
+ ERR_CONTINUE(!vi);
+ VS::get_singleton()->instance_set_use_lightmap(vi->get_instance(), get_instance(), RID());
+ }
}
}
@@ -646,11 +711,11 @@ void BakedLightmap::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_light_data", "data"), &BakedLightmap::set_light_data);
ClassDB::bind_method(D_METHOD("get_light_data"), &BakedLightmap::get_light_data);
- ClassDB::bind_method(D_METHOD("set_bake_subdiv", "bake_subdiv"), &BakedLightmap::set_bake_subdiv);
- ClassDB::bind_method(D_METHOD("get_bake_subdiv"), &BakedLightmap::get_bake_subdiv);
+ ClassDB::bind_method(D_METHOD("set_bake_cell_size", "bake_cell_size"), &BakedLightmap::set_bake_cell_size);
+ ClassDB::bind_method(D_METHOD("get_bake_cell_size"), &BakedLightmap::get_bake_cell_size);
- ClassDB::bind_method(D_METHOD("set_capture_subdiv", "capture_subdiv"), &BakedLightmap::set_capture_subdiv);
- ClassDB::bind_method(D_METHOD("get_capture_subdiv"), &BakedLightmap::get_capture_subdiv);
+ ClassDB::bind_method(D_METHOD("set_capture_cell_size", "capture_cell_size"), &BakedLightmap::set_capture_cell_size);
+ ClassDB::bind_method(D_METHOD("get_capture_cell_size"), &BakedLightmap::get_capture_cell_size);
ClassDB::bind_method(D_METHOD("set_bake_quality", "bake_quality"), &BakedLightmap::set_bake_quality);
ClassDB::bind_method(D_METHOD("get_bake_quality"), &BakedLightmap::get_bake_quality);
@@ -677,37 +742,39 @@ void BakedLightmap::_bind_methods() {
ClassDB::bind_method(D_METHOD("debug_bake"), &BakedLightmap::_debug_bake);
ClassDB::set_method_flags(get_class_static(), _scs_create("debug_bake"), METHOD_FLAGS_DEFAULT | METHOD_FLAG_EDITOR);
- ADD_PROPERTY(PropertyInfo(Variant::INT, "bake_subdiv", PROPERTY_HINT_ENUM, "128,256,512,1024,2048,4096"), "set_bake_subdiv", "get_bake_subdiv");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "capture_subdiv", PROPERTY_HINT_ENUM, "128,256,512"), "set_capture_subdiv", "get_capture_subdiv");
+ ADD_GROUP("Bake", "bake_");
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "bake_cell_size", PROPERTY_HINT_RANGE, "0.01,64,0.01"), "set_bake_cell_size", "get_bake_cell_size");
ADD_PROPERTY(PropertyInfo(Variant::INT, "bake_quality", PROPERTY_HINT_ENUM, "Low,Medium,High"), "set_bake_quality", "get_bake_quality");
ADD_PROPERTY(PropertyInfo(Variant::INT, "bake_mode", PROPERTY_HINT_ENUM, "ConeTrace,RayTrace"), "set_bake_mode", "get_bake_mode");
- ADD_PROPERTY(PropertyInfo(Variant::REAL, "propagation", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_propagation", "get_propagation");
- ADD_PROPERTY(PropertyInfo(Variant::REAL, "energy", PROPERTY_HINT_RANGE, "0,32,0.01"), "set_energy", "get_energy");
- ADD_PROPERTY(PropertyInfo(Variant::BOOL, "hdr"), "set_hdr", "is_hdr");
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "bake_propagation", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_propagation", "get_propagation");
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "bake_energy", PROPERTY_HINT_RANGE, "0,32,0.01"), "set_energy", "get_energy");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "bake_hdr"), "set_hdr", "is_hdr");
+ ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "bake_extents"), "set_extents", "get_extents");
+ ADD_GROUP("Capture", "capture_");
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "capture_cell_size", PROPERTY_HINT_RANGE, "0.01,64,0.01"), "set_capture_cell_size", "get_capture_cell_size");
+ ADD_GROUP("Data", "");
ADD_PROPERTY(PropertyInfo(Variant::STRING, "image_path", PROPERTY_HINT_DIR), "set_image_path", "get_image_path");
- ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "extents"), "set_extents", "get_extents");
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "light_data", PROPERTY_HINT_RESOURCE_TYPE, "BakedIndirectLightData"), "set_light_data", "get_light_data");
- BIND_ENUM_CONSTANT(SUBDIV_128);
- BIND_ENUM_CONSTANT(SUBDIV_256);
- BIND_ENUM_CONSTANT(SUBDIV_512);
- BIND_ENUM_CONSTANT(SUBDIV_1024);
- BIND_ENUM_CONSTANT(SUBDIV_2048);
- BIND_ENUM_CONSTANT(SUBDIV_4096);
- BIND_ENUM_CONSTANT(SUBDIV_MAX);
-
BIND_ENUM_CONSTANT(BAKE_QUALITY_LOW);
BIND_ENUM_CONSTANT(BAKE_QUALITY_MEDIUM);
BIND_ENUM_CONSTANT(BAKE_QUALITY_HIGH);
BIND_ENUM_CONSTANT(BAKE_MODE_CONE_TRACE);
BIND_ENUM_CONSTANT(BAKE_MODE_RAY_TRACE);
+
+ BIND_ENUM_CONSTANT(BAKE_ERROR_OK);
+ BIND_ENUM_CONSTANT(BAKE_ERROR_NO_SAVE_PATH);
+ BIND_ENUM_CONSTANT(BAKE_ERROR_NO_MESHES);
+ BIND_ENUM_CONSTANT(BAKE_ERROR_CANT_CREATE_IMAGE);
+ BIND_ENUM_CONSTANT(BAKE_ERROR_USER_ABORTED);
}
BakedLightmap::BakedLightmap() {
extents = Vector3(10, 10, 10);
- bake_subdiv = SUBDIV_256;
- capture_subdiv = SUBDIV_128;
+ bake_cell_size = 0.25;
+ capture_cell_size = 0.5;
+
bake_quality = BAKE_QUALITY_MEDIUM;
bake_mode = BAKE_MODE_CONE_TRACE;
energy = 1;
diff --git a/scene/3d/baked_lightmap.h b/scene/3d/baked_lightmap.h
index 5595ec1e61..9b53e41d73 100644
--- a/scene/3d/baked_lightmap.h
+++ b/scene/3d/baked_lightmap.h
@@ -18,6 +18,7 @@ class BakedLightmapData : public Resource {
NodePath path;
Ref<Texture> lightmap;
+ int instance_index;
};
Vector<User> users;
@@ -44,10 +45,11 @@ public:
void set_energy(float p_energy);
float get_energy() const;
- void add_user(const NodePath &p_path, const Ref<Texture> &p_lightmap);
+ void add_user(const NodePath &p_path, const Ref<Texture> &p_lightmap, int p_instance = -1);
int get_user_count() const;
NodePath get_user_path(int p_user) const;
Ref<Texture> get_user_lightmap(int p_user) const;
+ int get_user_instance(int p_user) const;
void clear_users();
virtual RID get_rid() const;
@@ -59,17 +61,6 @@ class BakedLightmap : public VisualInstance {
GDCLASS(BakedLightmap, VisualInstance);
public:
- enum Subdiv {
- SUBDIV_128,
- SUBDIV_256,
- SUBDIV_512,
- SUBDIV_1024,
- SUBDIV_2048,
- SUBDIV_4096,
- SUBDIV_MAX
-
- };
-
enum BakeQuality {
BAKE_QUALITY_LOW,
BAKE_QUALITY_MEDIUM,
@@ -95,8 +86,8 @@ public:
typedef void (*BakeEndFunc)();
private:
- Subdiv bake_subdiv;
- Subdiv capture_subdiv;
+ float bake_cell_size;
+ float capture_cell_size;
Vector3 extents;
float propagation;
float energy;
@@ -113,6 +104,7 @@ private:
Ref<Mesh> mesh;
Transform local_xform;
NodePath path;
+ int instance_idx;
};
struct PlotLight {
@@ -147,11 +139,11 @@ public:
void set_light_data(const Ref<BakedLightmapData> &p_data);
Ref<BakedLightmapData> get_light_data() const;
- void set_bake_subdiv(Subdiv p_subdiv);
- Subdiv get_bake_subdiv() const;
+ void set_bake_cell_size(float p_cell_size);
+ float get_bake_cell_size() const;
- void set_capture_subdiv(Subdiv p_subdiv);
- Subdiv get_capture_subdiv() const;
+ void set_capture_cell_size(float p_cell_size);
+ float get_capture_cell_size() const;
void set_extents(const Vector3 &p_extents);
Vector3 get_extents() const;
@@ -181,7 +173,6 @@ public:
BakedLightmap();
};
-VARIANT_ENUM_CAST(BakedLightmap::Subdiv);
VARIANT_ENUM_CAST(BakedLightmap::BakeQuality);
VARIANT_ENUM_CAST(BakedLightmap::BakeMode);
VARIANT_ENUM_CAST(BakedLightmap::BakeError);
diff --git a/scene/3d/camera.cpp b/scene/3d/camera.cpp
index af210fff1c..7143310036 100644
--- a/scene/3d/camera.cpp
+++ b/scene/3d/camera.cpp
@@ -56,130 +56,23 @@ void Camera::_update_camera_mode() {
}
}
-bool Camera::_set(const StringName &p_name, const Variant &p_value) {
-
- bool changed_all = false;
- if (p_name == "projection") {
-
- int proj = p_value;
- if (proj == PROJECTION_PERSPECTIVE)
- mode = PROJECTION_PERSPECTIVE;
- if (proj == PROJECTION_ORTHOGONAL)
- mode = PROJECTION_ORTHOGONAL;
-
- changed_all = true;
- } else if (p_name == "fov" || p_name == "fovy" || p_name == "fovx")
- fov = p_value;
- else if (p_name == "size" || p_name == "sizex" || p_name == "sizey")
- size = p_value;
- else if (p_name == "near")
- near = p_value;
- else if (p_name == "far")
- far = p_value;
- else if (p_name == "keep_aspect")
- set_keep_aspect_mode(KeepAspect(int(p_value)));
- else if (p_name == "vaspect")
- set_keep_aspect_mode(p_value ? KEEP_WIDTH : KEEP_HEIGHT);
- else if (p_name == "h_offset")
- h_offset = p_value;
- else if (p_name == "v_offset")
- v_offset = p_value;
- else if (p_name == "current") {
- if (p_value.operator bool()) {
- make_current();
- } else {
- clear_current();
+void Camera::_validate_property(PropertyInfo &p_property) const {
+ if (p_property.name == "fov") {
+ if (mode == PROJECTION_ORTHOGONAL) {
+ p_property.usage = PROPERTY_USAGE_NOEDITOR;
}
- } else if (p_name == "cull_mask") {
- set_cull_mask(p_value);
- } else if (p_name == "environment") {
- set_environment(p_value);
- } else if (p_name == "doppler/tracking") {
- set_doppler_tracking(DopplerTracking(int(p_value)));
- } else
- return false;
-
- _update_camera_mode();
- if (changed_all)
- _change_notify();
- return true;
-}
-bool Camera::_get(const StringName &p_name, Variant &r_ret) const {
-
- if (p_name == "projection") {
- r_ret = mode;
- } else if (p_name == "fov" || p_name == "fovy" || p_name == "fovx")
- r_ret = fov;
- else if (p_name == "size" || p_name == "sizex" || p_name == "sizey")
- r_ret = size;
- else if (p_name == "near")
- r_ret = near;
- else if (p_name == "far")
- r_ret = far;
- else if (p_name == "keep_aspect")
- r_ret = int(keep_aspect);
- else if (p_name == "current") {
-
- if (is_inside_tree() && get_tree()->is_node_being_edited(this)) {
- r_ret = current;
- } else {
- r_ret = is_current();
+ } else if (p_property.name == "size") {
+ if (mode == PROJECTION_PERSPECTIVE) {
+ p_property.usage = PROPERTY_USAGE_NOEDITOR;
}
- } else if (p_name == "cull_mask") {
- r_ret = get_cull_mask();
- } else if (p_name == "h_offset") {
- r_ret = get_h_offset();
- } else if (p_name == "v_offset") {
- r_ret = get_v_offset();
- } else if (p_name == "environment") {
- r_ret = get_environment();
- } else if (p_name == "doppler/tracking") {
- r_ret = get_doppler_tracking();
- } else
- return false;
-
- return true;
-}
-
-void Camera::_get_property_list(List<PropertyInfo> *p_list) const {
-
- p_list->push_back(PropertyInfo(Variant::INT, "projection", PROPERTY_HINT_ENUM, "Perspective,Orthogonal"));
-
- switch (mode) {
-
- case PROJECTION_PERSPECTIVE: {
-
- p_list->push_back(PropertyInfo(Variant::REAL, "fov", PROPERTY_HINT_RANGE, "1,179,0.1", PROPERTY_USAGE_NOEDITOR));
- if (keep_aspect == KEEP_WIDTH)
- p_list->push_back(PropertyInfo(Variant::REAL, "fovx", PROPERTY_HINT_RANGE, "1,179,0.1", PROPERTY_USAGE_EDITOR));
- else
- p_list->push_back(PropertyInfo(Variant::REAL, "fovy", PROPERTY_HINT_RANGE, "1,179,0.1", PROPERTY_USAGE_EDITOR));
-
- } break;
- case PROJECTION_ORTHOGONAL: {
-
- p_list->push_back(PropertyInfo(Variant::REAL, "size", PROPERTY_HINT_RANGE, "1,16384,0.01", PROPERTY_USAGE_NOEDITOR));
- if (keep_aspect == KEEP_WIDTH)
- p_list->push_back(PropertyInfo(Variant::REAL, "sizex", PROPERTY_HINT_RANGE, "0.1,16384,0.01", PROPERTY_USAGE_EDITOR));
- else
- p_list->push_back(PropertyInfo(Variant::REAL, "sizey", PROPERTY_HINT_RANGE, "0.1,16384,0.01", PROPERTY_USAGE_EDITOR));
-
- } break;
}
-
- p_list->push_back(PropertyInfo(Variant::REAL, "near", PROPERTY_HINT_EXP_RANGE, "0.01,4096.0,0.01"));
- p_list->push_back(PropertyInfo(Variant::REAL, "far", PROPERTY_HINT_EXP_RANGE, "0.01,4096.0,0.01"));
- p_list->push_back(PropertyInfo(Variant::INT, "keep_aspect", PROPERTY_HINT_ENUM, "Keep Width,Keep Height"));
- p_list->push_back(PropertyInfo(Variant::BOOL, "current"));
- p_list->push_back(PropertyInfo(Variant::INT, "cull_mask", PROPERTY_HINT_LAYERS_3D_RENDER));
- p_list->push_back(PropertyInfo(Variant::OBJECT, "environment", PROPERTY_HINT_RESOURCE_TYPE, "Environment"));
- p_list->push_back(PropertyInfo(Variant::REAL, "h_offset"));
- p_list->push_back(PropertyInfo(Variant::REAL, "v_offset"));
- p_list->push_back(PropertyInfo(Variant::INT, "doppler/tracking", PROPERTY_HINT_ENUM, "Disabled,Idle,Physics"));
}
void Camera::_update_camera() {
+ if (!is_inside_tree())
+ return;
+
Transform tr = get_camera_transform();
tr.origin += tr.basis.get_axis(1) * v_offset;
tr.origin += tr.basis.get_axis(0) * h_offset;
@@ -191,7 +84,7 @@ void Camera::_update_camera() {
get_viewport()->_camera_transform_changed_notify();
*/
- if (!is_inside_tree() || get_tree()->is_node_being_edited(this) || !is_current())
+ if (get_tree()->is_node_being_edited(this) || !is_current())
return;
get_viewport()->_camera_transform_changed_notify();
@@ -282,6 +175,14 @@ void Camera::set_orthogonal(float p_size, float p_z_near, float p_z_far) {
update_gizmo();
}
+void Camera::set_projection(Camera::Projection p_mode) {
+ if (p_mode == PROJECTION_PERSPECTIVE || p_mode == PROJECTION_ORTHOGONAL) {
+ mode = p_mode;
+ _update_camera_mode();
+ _change_notify();
+ }
+}
+
RID Camera::get_camera() const {
return camera;
@@ -311,6 +212,14 @@ void Camera::clear_current() {
}
}
+void Camera::set_current(bool p_current) {
+ if (p_current) {
+ make_current();
+ } else {
+ clear_current();
+ }
+}
+
bool Camera::is_current() const {
if (is_inside_tree() && !get_tree()->is_node_being_edited(this)) {
@@ -481,6 +390,7 @@ void Camera::set_environment(const Ref<Environment> &p_environment) {
VS::get_singleton()->camera_set_environment(camera, environment->get_rid());
else
VS::get_singleton()->camera_set_environment(camera, RID());
+ _update_camera_mode();
}
Ref<Environment> Camera::get_environment() const {
@@ -489,10 +399,9 @@ Ref<Environment> Camera::get_environment() const {
}
void Camera::set_keep_aspect_mode(KeepAspect p_aspect) {
-
keep_aspect = p_aspect;
VisualServer::get_singleton()->camera_set_use_vertical_aspect(camera, p_aspect == KEEP_WIDTH);
-
+ _update_camera_mode();
_change_notify();
}
@@ -511,6 +420,7 @@ void Camera::set_doppler_tracking(DopplerTracking p_tracking) {
velocity_tracker->set_track_physics_step(doppler_tracking == DOPPLER_TRACKING_PHYSICS_STEP);
velocity_tracker->reset(get_global_transform().origin);
}
+ _update_camera_mode();
}
Camera::DopplerTracking Camera::get_doppler_tracking() const {
@@ -529,13 +439,19 @@ void Camera::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_orthogonal", "size", "z_near", "z_far"), &Camera::set_orthogonal);
ClassDB::bind_method(D_METHOD("make_current"), &Camera::make_current);
ClassDB::bind_method(D_METHOD("clear_current"), &Camera::clear_current);
+ ClassDB::bind_method(D_METHOD("set_current"), &Camera::set_current);
ClassDB::bind_method(D_METHOD("is_current"), &Camera::is_current);
ClassDB::bind_method(D_METHOD("get_camera_transform"), &Camera::get_camera_transform);
ClassDB::bind_method(D_METHOD("get_fov"), &Camera::get_fov);
ClassDB::bind_method(D_METHOD("get_size"), &Camera::get_size);
ClassDB::bind_method(D_METHOD("get_zfar"), &Camera::get_zfar);
ClassDB::bind_method(D_METHOD("get_znear"), &Camera::get_znear);
+ ClassDB::bind_method(D_METHOD("set_fov"), &Camera::set_fov);
+ ClassDB::bind_method(D_METHOD("set_size"), &Camera::set_size);
+ ClassDB::bind_method(D_METHOD("set_zfar"), &Camera::set_zfar);
+ ClassDB::bind_method(D_METHOD("set_znear"), &Camera::set_znear);
ClassDB::bind_method(D_METHOD("get_projection"), &Camera::get_projection);
+ ClassDB::bind_method(D_METHOD("set_projection"), &Camera::set_projection);
ClassDB::bind_method(D_METHOD("set_h_offset", "ofs"), &Camera::set_h_offset);
ClassDB::bind_method(D_METHOD("get_h_offset"), &Camera::get_h_offset);
ClassDB::bind_method(D_METHOD("set_v_offset", "ofs"), &Camera::set_v_offset);
@@ -550,6 +466,19 @@ void Camera::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_doppler_tracking"), &Camera::get_doppler_tracking);
//ClassDB::bind_method(D_METHOD("_camera_make_current"),&Camera::_camera_make_current );
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "keep_aspect", PROPERTY_HINT_ENUM, "Keep Width,Keep Height"), "set_keep_aspect_mode", "get_keep_aspect_mode");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "cull_mask", PROPERTY_HINT_LAYERS_3D_RENDER), "set_cull_mask", "get_cull_mask");
+ ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "environment", PROPERTY_HINT_RESOURCE_TYPE, "Environment"), "set_environment", "get_environment");
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "h_offset"), "set_h_offset", "get_h_offset");
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "v_offset"), "set_v_offset", "get_v_offset");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "doppler_tracking", PROPERTY_HINT_ENUM, "Disabled,Idle,Physics"), "set_doppler_tracking", "get_doppler_tracking");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "projection", PROPERTY_HINT_ENUM, "Perspective,Orthogonal"), "set_projection", "get_projection");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "current"), "set_current", "is_current");
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "fov", PROPERTY_HINT_RANGE, "1,179,0.1"), "set_fov", "get_fov");
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "size", PROPERTY_HINT_RANGE, "0.1,16384,0.01"), "set_size", "get_size");
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "near"), "set_znear", "get_znear");
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "far"), "set_zfar", "get_zfar");
+
BIND_ENUM_CONSTANT(PROJECTION_PERSPECTIVE);
BIND_ENUM_CONSTANT(PROJECTION_ORTHOGONAL);
@@ -586,10 +515,30 @@ Camera::Projection Camera::get_projection() const {
return mode;
}
-void Camera::set_cull_mask(uint32_t p_layers) {
+void Camera::set_fov(float p_fov) {
+ fov = p_fov;
+ _update_camera_mode();
+}
+void Camera::set_size(float p_size) {
+ size = p_size;
+ _update_camera_mode();
+}
+
+void Camera::set_znear(float p_znear) {
+ near = p_znear;
+ _update_camera_mode();
+}
+
+void Camera::set_zfar(float p_zfar) {
+ far = p_zfar;
+ _update_camera_mode();
+}
+
+void Camera::set_cull_mask(uint32_t p_layers) {
layers = p_layers;
VisualServer::get_singleton()->camera_set_cull_mask(camera, layers);
+ _update_camera_mode();
}
uint32_t Camera::get_cull_mask() const {
diff --git a/scene/3d/camera.h b/scene/3d/camera.h
index 73c6844c1a..d69a02afeb 100644
--- a/scene/3d/camera.h
+++ b/scene/3d/camera.h
@@ -95,10 +95,8 @@ protected:
virtual void _request_camera_update();
void _update_camera_mode();
- bool _set(const StringName &p_name, const Variant &p_value);
- bool _get(const StringName &p_name, Variant &r_ret) const;
- void _get_property_list(List<PropertyInfo> *p_list) const;
void _notification(int p_what);
+ virtual void _validate_property(PropertyInfo &property) const;
static void _bind_methods();
@@ -111,9 +109,11 @@ public:
void set_perspective(float p_fovy_degrees, float p_z_near, float p_z_far);
void set_orthogonal(float p_size, float p_z_near, float p_z_far);
+ void set_projection(Camera::Projection p_mode);
void make_current();
void clear_current();
+ void set_current(bool p_current);
bool is_current() const;
RID get_camera() const;
@@ -124,6 +124,11 @@ public:
float get_znear() const;
Projection get_projection() const;
+ void set_fov(float p_fov);
+ void set_size(float p_size);
+ void set_zfar(float p_zfar);
+ void set_znear(float p_znear);
+
virtual Transform get_camera_transform() const;
Vector3 project_ray_normal(const Point2 &p_pos) const;
diff --git a/scene/3d/navigation.cpp b/scene/3d/navigation.cpp
index b6507aedb3..78cf75e3b3 100644
--- a/scene/3d/navigation.cpp
+++ b/scene/3d/navigation.cpp
@@ -202,7 +202,7 @@ void Navigation::_navmesh_unlink(int p_id) {
nm.linked = false;
}
-int Navigation::navmesh_create(const Ref<NavigationMesh> &p_mesh, const Transform &p_xform, Object *p_owner) {
+int Navigation::navmesh_add(const Ref<NavigationMesh> &p_mesh, const Transform &p_xform, Object *p_owner) {
int id = last_id++;
NavMesh nm;
@@ -686,7 +686,7 @@ Vector3 Navigation::get_up_vector() const {
void Navigation::_bind_methods() {
- ClassDB::bind_method(D_METHOD("navmesh_create", "mesh", "xform", "owner"), &Navigation::navmesh_create, DEFVAL(Variant()));
+ ClassDB::bind_method(D_METHOD("navmesh_add", "mesh", "xform", "owner"), &Navigation::navmesh_add, DEFVAL(Variant()));
ClassDB::bind_method(D_METHOD("navmesh_set_transform", "id", "xform"), &Navigation::navmesh_set_transform);
ClassDB::bind_method(D_METHOD("navmesh_remove", "id"), &Navigation::navmesh_remove);
diff --git a/scene/3d/navigation.h b/scene/3d/navigation.h
index d9a38f7b00..134afa2278 100644
--- a/scene/3d/navigation.h
+++ b/scene/3d/navigation.h
@@ -166,7 +166,7 @@ public:
Vector3 get_up_vector() const;
//API should be as dynamic as possible
- int navmesh_create(const Ref<NavigationMesh> &p_mesh, const Transform &p_xform, Object *p_owner = NULL);
+ int navmesh_add(const Ref<NavigationMesh> &p_mesh, const Transform &p_xform, Object *p_owner = NULL);
void navmesh_set_transform(int p_id, const Transform &p_xform);
void navmesh_remove(int p_id);
diff --git a/scene/3d/navigation_mesh.cpp b/scene/3d/navigation_mesh.cpp
index 40750cdfe8..4fb12b8fac 100644
--- a/scene/3d/navigation_mesh.cpp
+++ b/scene/3d/navigation_mesh.cpp
@@ -471,7 +471,7 @@ void NavigationMeshInstance::set_enabled(bool p_enabled) {
if (navmesh.is_valid()) {
- nav_id = navigation->navmesh_create(navmesh, get_relative_transform(navigation), this);
+ nav_id = navigation->navmesh_add(navmesh, get_relative_transform(navigation), this);
}
}
}
@@ -508,7 +508,7 @@ void NavigationMeshInstance::_notification(int p_what) {
if (enabled && navmesh.is_valid()) {
- nav_id = navigation->navmesh_create(navmesh, get_relative_transform(navigation), this);
+ nav_id = navigation->navmesh_add(navmesh, get_relative_transform(navigation), this);
}
break;
}
@@ -568,7 +568,7 @@ void NavigationMeshInstance::set_navigation_mesh(const Ref<NavigationMesh> &p_na
navmesh = p_navmesh;
if (navigation && navmesh.is_valid() && enabled) {
- nav_id = navigation->navmesh_create(navmesh, get_relative_transform(navigation), this);
+ nav_id = navigation->navmesh_add(navmesh, get_relative_transform(navigation), this);
}
if (debug_view && navmesh.is_valid()) {
diff --git a/scene/3d/particles.cpp b/scene/3d/particles.cpp
index 821f1a5a78..9108973cbf 100644
--- a/scene/3d/particles.cpp
+++ b/scene/3d/particles.cpp
@@ -42,8 +42,7 @@ PoolVector<Face3> Particles::get_faces(uint32_t p_usage_flags) const {
void Particles::set_emitting(bool p_emitting) {
- emitting = p_emitting;
- VS::get_singleton()->particles_set_emitting(particles, emitting);
+ VS::get_singleton()->particles_set_emitting(particles, p_emitting);
}
void Particles::set_amount(int p_amount) {
@@ -63,7 +62,7 @@ void Particles::set_one_shot(bool p_one_shot) {
one_shot = p_one_shot;
VS::get_singleton()->particles_set_one_shot(particles, one_shot);
- if (!one_shot && emitting)
+ if (!one_shot && is_emitting())
VisualServer::get_singleton()->particles_restart(particles);
}
@@ -113,7 +112,7 @@ void Particles::set_speed_scale(float p_scale) {
bool Particles::is_emitting() const {
- return emitting;
+ return VS::get_singleton()->particles_get_emitting(particles);
}
int Particles::get_amount() const {
@@ -598,6 +597,11 @@ void ParticlesMaterial::_update_shader() {
code += "}\n";
code += "\n";
+ code += "float rand_from_seed_m1_p1(inout uint seed) {\n";
+ code += " return rand_from_seed(seed)*2.0-1.0;\n";
+ code += "}\n";
+ code += "\n";
+
//improve seed quality
code += "uint hash(uint x) {\n";
code += " x = ((x >> uint(16)) ^ x) * uint(73244475);\n";
@@ -614,6 +618,8 @@ void ParticlesMaterial::_update_shader() {
code += " float scale_rand = rand_from_seed(alt_seed);\n";
code += " float hue_rot_rand = rand_from_seed(alt_seed);\n";
code += " float anim_offset_rand = rand_from_seed(alt_seed);\n";
+ code += " float pi = 3.14159;\n";
+ code += " float degree_to_rad = pi / 180.0;\n";
code += "\n";
if (emission_shape >= EMISSION_SHAPE_POINTS) {
@@ -638,23 +644,28 @@ void ParticlesMaterial::_update_shader() {
else
code += " float tex_anim_offset = 0.0;\n";
+ code += " float spread_rad = spread*degree_to_rad;\n";
+
if (flags[FLAG_DISABLE_Z]) {
- code += " float angle1 = (rand_from_seed(alt_seed)*2.0-1.0)*spread/180.0*3.1416;\n";
- code += " vec3 rot = vec3( cos(angle1), sin(angle1),0.0 );\n";
+ code += " float angle1_rad = rand_from_seed_m1_p1(alt_seed)*spread_rad;\n";
+ code += " vec3 rot = vec3( cos(angle1_rad), sin(angle1_rad),0.0 );\n";
code += " VELOCITY = rot*initial_linear_velocity*mix(1.0, rand_from_seed(alt_seed), initial_linear_velocity_random);\n";
} else {
//initiate velocity spread in 3D
- code += " float angle1 = rand_from_seed(alt_seed)*spread*3.1416;\n";
- code += " float angle2 = rand_from_seed(alt_seed)*20.0*3.1416; // make it more random like\n";
- code += " vec3 rot_xz = vec3( sin(angle1), 0.0, cos(angle1) );\n";
- code += " vec3 rot = vec3( cos(angle2)*rot_xz.x,sin(angle2)*rot_xz.x, rot_xz.z);\n";
- code += " VELOCITY = rot*initial_linear_velocity*mix(1.0, rand_from_seed(alt_seed), initial_linear_velocity_random);\n";
+ code += " float angle1_rad = rand_from_seed_m1_p1(alt_seed)*spread_rad;\n";
+ code += " float angle2_rad = rand_from_seed_m1_p1(alt_seed)*spread_rad*(1.0-flatness);\n";
+ code += " vec3 direction_xz = vec3( sin(angle1_rad), 0, cos(angle1_rad));\n";
+ code += " vec3 direction_yz = vec3( 0, sin(angle2_rad), cos(angle2_rad));\n";
+ code += " direction_yz.z = direction_yz.z / sqrt(direction_yz.z); //better uniform distribution\n";
+ code += " vec3 direction = vec3(direction_xz.x * direction_yz.z, direction_yz.y, direction_xz.z * direction_yz.z);\n";
+ code += " direction = normalize(direction);\n";
+ code += " VELOCITY = direction*initial_linear_velocity*mix(1.0, rand_from_seed(alt_seed), initial_linear_velocity_random);\n";
}
code += " float base_angle = (initial_angle+tex_angle)*mix(1.0,angle_rand,initial_angle_random);\n";
- code += " CUSTOM.x = base_angle*3.1416/180.0;\n"; //angle
+ code += " CUSTOM.x = base_angle*degree_to_rad;\n"; //angle
code += " CUSTOM.y = 0.0;\n"; //phase
code += " CUSTOM.z = (anim_offset+tex_anim_offset)*mix(1.0,anim_offset_rand,anim_offset_random);\n"; //animation offset (0-1)
switch (emission_shape) {
@@ -777,7 +788,7 @@ void ParticlesMaterial::_update_shader() {
code += " float orbit_amount = (orbit_velocity+tex_orbit_velocity)*mix(1.0,rand_from_seed(alt_seed),orbit_velocity_random);\n";
code += " if (orbit_amount!=0.0) {\n";
- code += " float ang = orbit_amount * DELTA * 3.1416 * 2.0;\n";
+ code += " float ang = orbit_amount * DELTA * pi * 2.0;\n";
code += " mat2 rot = mat2(vec2(cos(ang),-sin(ang)),vec2(sin(ang),cos(ang)));\n";
code += " TRANSFORM[3].xy-=diff.xy;\n";
code += " TRANSFORM[3].xy+=rot * diff.xy;\n";
@@ -800,7 +811,7 @@ void ParticlesMaterial::_update_shader() {
code += " }\n";
code += " float base_angle = (initial_angle+tex_angle)*mix(1.0,angle_rand,initial_angle_random);\n";
code += " base_angle += CUSTOM.y*LIFETIME*(angular_velocity+tex_angular_velocity)*mix(1.0,rand_from_seed(alt_seed)*2.0-1.0,angular_velocity_random);\n";
- code += " CUSTOM.x = base_angle*3.1416/180.0;\n"; //angle
+ code += " CUSTOM.x = base_angle*degree_to_rad;\n"; //angle
code += " CUSTOM.z = (anim_offset+tex_anim_offset)*mix(1.0,anim_offset_rand,anim_offset_random)+CUSTOM.y*(anim_speed+tex_anim_speed)*mix(1.0,rand_from_seed(alt_seed),anim_speed_random);\n"; //angle
if (flags[FLAG_ANIM_LOOP]) {
code += " CUSTOM.z = mod(CUSTOM.z,1.0);\n"; //loop
@@ -821,7 +832,7 @@ void ParticlesMaterial::_update_shader() {
else
code += " float tex_hue_variation = 0.0;\n";
- code += " float hue_rot_angle = (hue_variation+tex_hue_variation)*3.1416*2.0*mix(1.0,hue_rot_rand*2.0-1.0,hue_variation_random);\n";
+ code += " float hue_rot_angle = (hue_variation+tex_hue_variation)*pi*2.0*mix(1.0,hue_rot_rand*2.0-1.0,hue_variation_random);\n";
code += " float hue_rot_c = cos(hue_rot_angle);\n";
code += " float hue_rot_s = sin(hue_rot_angle);\n";
code += " mat4 hue_rot_mat = mat4( vec4(0.299, 0.587, 0.114, 0.0),\n";
diff --git a/scene/3d/particles.h b/scene/3d/particles.h
index 5b8121e937..24154b5607 100644
--- a/scene/3d/particles.h
+++ b/scene/3d/particles.h
@@ -57,7 +57,6 @@ public:
private:
RID particles;
- bool emitting;
bool one_shot;
int amount;
float lifetime;
diff --git a/scene/3d/portal.h b/scene/3d/portal.h
index 4ea208a718..a3a7956286 100644
--- a/scene/3d/portal.h
+++ b/scene/3d/portal.h
@@ -39,7 +39,8 @@
If a portal is placed next (very close to) a similar, opposing portal, they automatically connect,
otherwise, a portal connects to the parent room
*/
-//this will be redone and replaced by area portals, left for reference since a new class with this name will have to exist and want to reuse the gizmos
+// FIXME: This will be redone and replaced by area portals, left for reference
+// since a new class with this name will have to exist and want to reuse the gizmos
#if 0
class Portal : public VisualInstance {
diff --git a/scene/3d/room_instance.h b/scene/3d/room_instance.h
index 3069ea2eba..2b2f80a0c6 100644
--- a/scene/3d/room_instance.h
+++ b/scene/3d/room_instance.h
@@ -44,7 +44,7 @@
*/
-//this will be removed, left for reference
+// FIXME: this will be removed, left for reference
#if 0
class Room : public VisualInstance {
diff --git a/scene/3d/skeleton.cpp b/scene/3d/skeleton.cpp
index d0e0937eca..3d40bb299a 100644
--- a/scene/3d/skeleton.cpp
+++ b/scene/3d/skeleton.cpp
@@ -180,6 +180,9 @@ void Skeleton::_notification(int p_what) {
rest_global_inverse_dirty = false;
}
+ Transform global_transform = get_global_transform();
+ Transform global_transform_inverse = global_transform.affine_inverse();
+
for (int i = 0; i < len; i++) {
Bone &b = bonesptr[i];
@@ -239,7 +242,9 @@ void Skeleton::_notification(int p_what) {
}
}
- vs->skeleton_bone_set_transform(skeleton, i, b.pose_global * b.rest_global_inverse);
+ Transform transform = b.pose_global * b.rest_global_inverse;
+
+ vs->skeleton_bone_set_transform(skeleton, i, global_transform * (transform * global_transform_inverse));
for (List<uint32_t>::Element *E = b.nodes_bound.front(); E; E = E->next()) {
diff --git a/scene/3d/spatial.cpp b/scene/3d/spatial.cpp
index d9f88ac693..e890533ab7 100644
--- a/scene/3d/spatial.cpp
+++ b/scene/3d/spatial.cpp
@@ -558,27 +558,27 @@ bool Spatial::is_visible() const {
void Spatial::rotate(const Vector3 &p_normal, float p_radians) {
Transform t = get_transform();
- t.basis.rotate(p_normal, p_radians);
+ t.basis.rotate_local(p_normal, p_radians); //use local rotation here, as it makes more sense here in tree hierarchy
set_transform(t);
}
void Spatial::rotate_x(float p_radians) {
Transform t = get_transform();
- t.basis.rotate(Vector3(1, 0, 0), p_radians);
+ t.basis.rotate_local(Vector3(1, 0, 0), p_radians);
set_transform(t);
}
void Spatial::rotate_y(float p_radians) {
Transform t = get_transform();
- t.basis.rotate(Vector3(0, 1, 0), p_radians);
+ t.basis.rotate_local(Vector3(0, 1, 0), p_radians);
set_transform(t);
}
void Spatial::rotate_z(float p_radians) {
Transform t = get_transform();
- t.basis.rotate(Vector3(0, 0, 1), p_radians);
+ t.basis.rotate_local(Vector3(0, 0, 1), p_radians);
set_transform(t);
}
diff --git a/scene/3d/sprite_3d.cpp b/scene/3d/sprite_3d.cpp
index 18ebc22c8b..2ecc445663 100644
--- a/scene/3d/sprite_3d.cpp
+++ b/scene/3d/sprite_3d.cpp
@@ -294,6 +294,7 @@ SpriteBase3D::SpriteBase3D() {
for (int i = 0; i < FLAG_MAX; i++)
flags[i] = i == FLAG_TRANSPARENT || i == FLAG_DOUBLE_SIDED;
+ alpha_cut = ALPHA_CUT_DISABLED;
axis = Vector3::AXIS_Z;
pixel_size = 0.01;
modulate = Color(1, 1, 1, 1);
diff --git a/scene/3d/voxel_light_baker.cpp b/scene/3d/voxel_light_baker.cpp
index 98dc1590d8..bd7e52d947 100644
--- a/scene/3d/voxel_light_baker.cpp
+++ b/scene/3d/voxel_light_baker.cpp
@@ -1,5 +1,39 @@
+/*************************************************************************/
+/* voxel_light_baker.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+
#include "voxel_light_baker.h"
#include "os/os.h"
+#include "os/threaded_array_processor.h"
+
+#include <stdlib.h>
+
#define FINDMINMAX(x0, x1, x2, min, max) \
min = max = x0; \
if (x1 < min) min = x1; \
@@ -183,14 +217,23 @@ static bool fast_tri_box_overlap(const Vector3 &boxcenter, const Vector3 boxhalf
return true; /* box and triangle overlaps */
}
-static _FORCE_INLINE_ Vector2 get_uv(const Vector3 &p_pos, const Vector3 *p_vtx, const Vector2 *p_uv) {
+static _FORCE_INLINE_ void get_uv_and_normal(const Vector3 &p_pos, const Vector3 *p_vtx, const Vector2 *p_uv, const Vector3 *p_normal, Vector2 &r_uv, Vector3 &r_normal) {
- if (p_pos.distance_squared_to(p_vtx[0]) < CMP_EPSILON2)
- return p_uv[0];
- if (p_pos.distance_squared_to(p_vtx[1]) < CMP_EPSILON2)
- return p_uv[1];
- if (p_pos.distance_squared_to(p_vtx[2]) < CMP_EPSILON2)
- return p_uv[2];
+ if (p_pos.distance_squared_to(p_vtx[0]) < CMP_EPSILON2) {
+ r_uv = p_uv[0];
+ r_normal = p_normal[0];
+ return;
+ }
+ if (p_pos.distance_squared_to(p_vtx[1]) < CMP_EPSILON2) {
+ r_uv = p_uv[1];
+ r_normal = p_normal[1];
+ return;
+ }
+ if (p_pos.distance_squared_to(p_vtx[2]) < CMP_EPSILON2) {
+ r_uv = p_uv[2];
+ r_normal = p_normal[2];
+ return;
+ }
Vector3 v0 = p_vtx[1] - p_vtx[0];
Vector3 v1 = p_vtx[2] - p_vtx[0];
@@ -202,16 +245,20 @@ static _FORCE_INLINE_ Vector2 get_uv(const Vector3 &p_pos, const Vector3 *p_vtx,
float d20 = v2.dot(v0);
float d21 = v2.dot(v1);
float denom = (d00 * d11 - d01 * d01);
- if (denom == 0)
- return p_uv[0];
+ if (denom == 0) {
+ r_uv = p_uv[0];
+ r_normal = p_normal[0];
+ return;
+ }
float v = (d11 * d20 - d01 * d21) / denom;
float w = (d00 * d21 - d01 * d20) / denom;
float u = 1.0f - v - w;
- return p_uv[0] * u + p_uv[1] * v + p_uv[2] * w;
+ r_uv = p_uv[0] * u + p_uv[1] * v + p_uv[2] * w;
+ r_normal = (p_normal[0] * u + p_normal[1] * v + p_normal[2] * w).normalized();
}
-void VoxelLightBaker::_plot_face(int p_idx, int p_level, int p_x, int p_y, int p_z, const Vector3 *p_vtx, const Vector2 *p_uv, const MaterialCache &p_material, const AABB &p_aabb) {
+void VoxelLightBaker::_plot_face(int p_idx, int p_level, int p_x, int p_y, int p_z, const Vector3 *p_vtx, const Vector3 *p_normal, const Vector2 *p_uv, const MaterialCache &p_material, const AABB &p_aabb) {
if (p_level == cell_subdiv - 1) {
//plot the face by guessing it's albedo and emission value
@@ -289,7 +336,11 @@ void VoxelLightBaker::_plot_face(int p_idx, int p_level, int p_x, int p_y, int p
intersection = Face3(p_vtx[0], p_vtx[1], p_vtx[2]).get_closest_point_to(intersection);
- Vector2 uv = get_uv(intersection, p_vtx, p_uv);
+ Vector2 uv;
+ Vector3 lnormal;
+ get_uv_and_normal(intersection, p_vtx, p_uv, p_normal, uv, lnormal);
+ if (lnormal == Vector3()) //just in case normal as nor provided
+ lnormal = normal;
int uv_x = CLAMP(Math::fposmod(uv.x, 1.0f) * bake_texture_size, 0, bake_texture_size - 1);
int uv_y = CLAMP(Math::fposmod(uv.y, 1.0f) * bake_texture_size, 0, bake_texture_size - 1);
@@ -304,7 +355,7 @@ void VoxelLightBaker::_plot_face(int p_idx, int p_level, int p_x, int p_y, int p
emission_accum.g += p_material.emission[ofs].g;
emission_accum.b += p_material.emission[ofs].b;
- normal_accum += normal;
+ normal_accum += lnormal;
alpha += 1.0;
}
@@ -316,7 +367,11 @@ void VoxelLightBaker::_plot_face(int p_idx, int p_level, int p_x, int p_y, int p
Face3 f(p_vtx[0], p_vtx[1], p_vtx[2]);
Vector3 inters = f.get_closest_point_to(p_aabb.position + p_aabb.size * 0.5);
- Vector2 uv = get_uv(inters, p_vtx, p_uv);
+ Vector3 lnormal;
+ Vector2 uv;
+ get_uv_and_normal(inters, p_vtx, p_uv, p_normal, uv, normal);
+ if (lnormal == Vector3()) //just in case normal as nor provided
+ lnormal = normal;
int uv_x = CLAMP(Math::fposmod(uv.x, 1.0f) * bake_texture_size, 0, bake_texture_size - 1);
int uv_y = CLAMP(Math::fposmod(uv.y, 1.0f) * bake_texture_size, 0, bake_texture_size - 1);
@@ -334,7 +389,7 @@ void VoxelLightBaker::_plot_face(int p_idx, int p_level, int p_x, int p_y, int p
emission_accum.g = p_material.emission[ofs].g * alpha;
emission_accum.b = p_material.emission[ofs].b * alpha;
- normal_accum *= alpha;
+ normal_accum = lnormal * alpha;
} else {
@@ -415,7 +470,7 @@ void VoxelLightBaker::_plot_face(int p_idx, int p_level, int p_x, int p_y, int p
bake_cells[child_idx].level = p_level + 1;
}
- _plot_face(bake_cells[p_idx].childs[i], p_level + 1, nx, ny, nz, p_vtx, p_uv, p_material, aabb);
+ _plot_face(bake_cells[p_idx].childs[i], p_level + 1, nx, ny, nz, p_vtx, p_normal, p_uv, p_material, aabb);
}
}
}
@@ -539,9 +594,12 @@ void VoxelLightBaker::plot_mesh(const Transform &p_xform, Ref<Mesh> &p_mesh, con
PoolVector<Vector3>::Read vr = vertices.read();
PoolVector<Vector2> uv = a[Mesh::ARRAY_TEX_UV];
PoolVector<Vector2>::Read uvr;
+ PoolVector<Vector3> normals = a[Mesh::ARRAY_NORMAL];
+ PoolVector<Vector3>::Read nr;
PoolVector<int> index = a[Mesh::ARRAY_INDEX];
bool read_uv = false;
+ bool read_normals = false;
if (uv.size()) {
@@ -549,6 +607,11 @@ void VoxelLightBaker::plot_mesh(const Transform &p_xform, Ref<Mesh> &p_mesh, con
read_uv = true;
}
+ if (normals.size()) {
+ read_normals = true;
+ nr = normals.read();
+ }
+
if (index.size()) {
int facecount = index.size() / 3;
@@ -558,6 +621,7 @@ void VoxelLightBaker::plot_mesh(const Transform &p_xform, Ref<Mesh> &p_mesh, con
Vector3 vtxs[3];
Vector2 uvs[3];
+ Vector3 normal[3];
for (int k = 0; k < 3; k++) {
vtxs[k] = p_xform.xform(vr[ir[j * 3 + k]]);
@@ -569,11 +633,17 @@ void VoxelLightBaker::plot_mesh(const Transform &p_xform, Ref<Mesh> &p_mesh, con
}
}
+ if (read_normals) {
+ for (int k = 0; k < 3; k++) {
+ normal[k] = nr[ir[j * 3 + k]];
+ }
+ }
+
//test against original bounds
if (!fast_tri_box_overlap(original_bounds.position + original_bounds.size * 0.5, original_bounds.size * 0.5, vtxs))
continue;
//plot
- _plot_face(0, 0, 0, 0, 0, vtxs, uvs, material, po2_bounds);
+ _plot_face(0, 0, 0, 0, 0, vtxs, normal, uvs, material, po2_bounds);
}
} else {
@@ -584,6 +654,7 @@ void VoxelLightBaker::plot_mesh(const Transform &p_xform, Ref<Mesh> &p_mesh, con
Vector3 vtxs[3];
Vector2 uvs[3];
+ Vector3 normal[3];
for (int k = 0; k < 3; k++) {
vtxs[k] = p_xform.xform(vr[j * 3 + k]);
@@ -595,11 +666,17 @@ void VoxelLightBaker::plot_mesh(const Transform &p_xform, Ref<Mesh> &p_mesh, con
}
}
+ if (read_normals) {
+ for (int k = 0; k < 3; k++) {
+ normal[k] = nr[j * 3 + k];
+ }
+ }
+
//test against original bounds
if (!fast_tri_box_overlap(original_bounds.position + original_bounds.size * 0.5, original_bounds.size * 0.5, vtxs))
continue;
//plot face
- _plot_face(0, 0, 0, 0, 0, vtxs, uvs, material, po2_bounds);
+ _plot_face(0, 0, 0, 0, 0, vtxs, normal, uvs, material, po2_bounds);
}
}
}
@@ -833,11 +910,13 @@ void VoxelLightBaker::plot_light_directional(const Vector3 &p_direction, const C
}
}
- for (int i = 0; i < 6; i++) {
- float s = MAX(0.0, aniso_normal[i].dot(-light_axis)); //light depending on normal for direct
- light->direct_accum[i][0] += light_energy.x * s;
- light->direct_accum[i][1] += light_energy.y * s;
- light->direct_accum[i][2] += light_energy.z * s;
+ if (p_direct) {
+ for (int i = 0; i < 6; i++) {
+ float s = MAX(0.0, aniso_normal[i].dot(-light_axis)); //light depending on normal for direct
+ light->direct_accum[i][0] += light_energy.x * s;
+ light->direct_accum[i][1] += light_energy.y * s;
+ light->direct_accum[i][2] += light_energy.z * s;
+ }
}
success_count++;
}
@@ -897,17 +976,7 @@ void VoxelLightBaker::plot_light_omni(const Vector3 &p_pos, const Color &p_color
float dt = CLAMP((d + distance_adv) / local_radius, 0, 1);
att *= powf(1.0 - dt, p_attenutation);
}
-#if 0
- if (light_cache.type == VS::LIGHT_SPOT) {
-
- float angle = Math::rad2deg(acos(light_axis.dot(spot_axis)));
- if (angle > light_cache.spot_angle)
- continue;
- float d = CLAMP(angle / light_cache.spot_angle, 1, 0);
- att *= powf(1.0 - d, light_cache.spot_attenuation);
- }
-#endif
clip_planes = 0;
for (int c = 0; c < 3; c++) {
@@ -972,11 +1041,13 @@ void VoxelLightBaker::plot_light_omni(const Vector3 &p_pos, const Color &p_color
}
}
- for (int i = 0; i < 6; i++) {
- float s = MAX(0.0, aniso_normal[i].dot(-light_axis)); //light depending on normal for direct
- light->direct_accum[i][0] += light_energy.x * s * att;
- light->direct_accum[i][1] += light_energy.y * s * att;
- light->direct_accum[i][2] += light_energy.z * s * att;
+ if (p_direct) {
+ for (int i = 0; i < 6; i++) {
+ float s = MAX(0.0, aniso_normal[i].dot(-light_axis)); //light depending on normal for direct
+ light->direct_accum[i][0] += light_energy.x * s * att;
+ light->direct_accum[i][1] += light_energy.y * s * att;
+ light->direct_accum[i][2] += light_energy.z * s * att;
+ }
}
}
@@ -1041,17 +1112,7 @@ void VoxelLightBaker::plot_light_spot(const Vector3 &p_pos, const Vector3 &p_axi
float dt = CLAMP((d + distance_adv) / local_radius, 0, 1);
att *= powf(1.0 - dt, p_attenutation);
}
-#if 0
- if (light_cache.type == VS::LIGHT_SPOT) {
-
- float angle = Math::rad2deg(acos(light_axis.dot(spot_axis)));
- if (angle > light_cache.spot_angle)
- continue;
- float d = CLAMP(angle / light_cache.spot_angle, 1, 0);
- att *= powf(1.0 - d, light_cache.spot_attenuation);
- }
-#endif
clip_planes = 0;
for (int c = 0; c < 3; c++) {
@@ -1115,11 +1176,13 @@ void VoxelLightBaker::plot_light_spot(const Vector3 &p_pos, const Vector3 &p_axi
}
}
- for (int i = 0; i < 6; i++) {
- float s = MAX(0.0, aniso_normal[i].dot(-light_axis)); //light depending on normal for direct
- light->direct_accum[i][0] += light_energy.x * s * att;
- light->direct_accum[i][1] += light_energy.y * s * att;
- light->direct_accum[i][2] += light_energy.z * s * att;
+ if (p_direct) {
+ for (int i = 0; i < 6; i++) {
+ float s = MAX(0.0, aniso_normal[i].dot(-light_axis)); //light depending on normal for direct
+ light->direct_accum[i][0] += light_energy.x * s * att;
+ light->direct_accum[i][1] += light_energy.y * s * att;
+ light->direct_accum[i][2] += light_energy.z * s * att;
+ }
}
}
@@ -1614,6 +1677,16 @@ Vector3 VoxelLightBaker::_compute_pixel_light_at_pos(const Vector3 &p_pos, const
return accum;
}
+_ALWAYS_INLINE_ uint32_t xorshift32(uint32_t *state) {
+ /* Algorithm "xor" from p. 4 of Marsaglia, "Xorshift RNGs" */
+ uint32_t x = *state;
+ x ^= x << 13;
+ x ^= x >> 17;
+ x ^= x << 5;
+ *state = x;
+ return x;
+}
+
Vector3 VoxelLightBaker::_compute_ray_trace_at_pos(const Vector3 &p_pos, const Vector3 &p_normal) {
int samples_per_quality[3] = { 48, 128, 512 };
@@ -1636,20 +1709,22 @@ Vector3 VoxelLightBaker::_compute_ray_trace_at_pos(const Vector3 &p_pos, const V
const Light *light = bake_light.ptr();
const Cell *cells = bake_cells.ptr();
+ uint32_t local_rng_state = rand(); //needs to be fixed again
+
for (int i = 0; i < samples; i++) {
- float random_angle1 = (((Math::rand() % 65535) / 65535.0) * 2.0 - 1.0) * spread;
+ float random_angle1 = (((xorshift32(&local_rng_state) % 65535) / 65535.0) * 2.0 - 1.0) * spread;
Vector3 axis(0, sin(random_angle1), cos(random_angle1));
- float random_angle2 = ((Math::rand() % 65535) / 65535.0) * Math_PI * 2.0;
+ float random_angle2 = ((xorshift32(&local_rng_state) % 65535) / 65535.0) * Math_PI * 2.0;
Basis rot(Vector3(0, 0, 1), random_angle2);
axis = rot.xform(axis);
Vector3 direction = normal_xform.xform(axis).normalized();
- Vector3 pos = p_pos + Vector3(0.5, 0.5, 0.5) + direction * bias;
-
Vector3 advance = direction * _get_normal_advance(direction);
+ Vector3 pos = p_pos /*+ Vector3(0.5, 0.5, 0.5)*/ + advance * bias;
+
uint32_t cell = CHILD_EMPTY;
while (cell == CHILD_EMPTY) {
@@ -1692,7 +1767,7 @@ Vector3 VoxelLightBaker::_compute_ray_trace_at_pos(const Vector3 &p_pos, const V
}
cell = bc->childs[child];
- if (cell == CHILD_EMPTY)
+ if (unlikely(cell == CHILD_EMPTY))
break;
half >>= 1;
@@ -1701,22 +1776,45 @@ Vector3 VoxelLightBaker::_compute_ray_trace_at_pos(const Vector3 &p_pos, const V
pos += advance;
}
- if (cell != CHILD_EMPTY) {
+ if (unlikely(cell != CHILD_EMPTY)) {
for (int i = 0; i < 6; i++) {
//anisotropic read light
float amount = direction.dot(aniso_normal[i]);
- if (amount < 0)
- amount = 0;
+ if (amount <= 0)
+ continue;
accum.x += light[cell].accum[i][0] * amount;
accum.y += light[cell].accum[i][1] * amount;
accum.z += light[cell].accum[i][2] * amount;
}
+ accum.x += cells[cell].emission[0];
+ accum.y += cells[cell].emission[1];
+ accum.z += cells[cell].emission[2];
}
}
+ // Make sure we don't reset this thread's RNG state
+
return accum / samples;
}
+void VoxelLightBaker::_lightmap_bake_point(uint32_t p_x, LightMap *p_line) {
+
+ LightMap *pixel = &p_line[p_x];
+ if (pixel->pos == Vector3())
+ return;
+ //print_line("pos: " + pixel->pos + " normal " + pixel->normal);
+ switch (bake_mode) {
+ case BAKE_MODE_CONE_TRACE: {
+ pixel->light = _compute_pixel_light_at_pos(pixel->pos, pixel->normal) * energy;
+ } break;
+ case BAKE_MODE_RAY_TRACE: {
+ pixel->light = _compute_ray_trace_at_pos(pixel->pos, pixel->normal) * energy;
+ } break;
+ // pixel->light = Vector3(1, 1, 1);
+ //}
+ }
+}
+
Error VoxelLightBaker::make_lightmap(const Transform &p_xform, Ref<Mesh> &p_mesh, LightMapData &r_lightmap, bool (*p_bake_time_func)(void *, float, float), void *p_bake_time_ud) {
//transfer light information to a lightmap
@@ -1760,6 +1858,7 @@ Error VoxelLightBaker::make_lightmap(const Transform &p_xform, Ref<Mesh> &p_mesh
Vector3 vertex[3];
Vector3 normal[3];
Vector2 uv[3];
+
for (int j = 0; j < 3; j++) {
int idx = ic ? ir[i * 3 + j] : i * 3 + j;
vertex[j] = xform.xform(vr[idx]);
@@ -1770,39 +1869,18 @@ Error VoxelLightBaker::make_lightmap(const Transform &p_xform, Ref<Mesh> &p_mesh
_plot_triangle(uv, vertex, normal, lightmap.ptrw(), width, height);
}
}
- //step 3 perform voxel cone trace on lightmap pixels
+ //step 3 perform voxel cone trace on lightmap pixels
{
LightMap *lightmap_ptr = lightmap.ptrw();
uint64_t begin_time = OS::get_singleton()->get_ticks_usec();
volatile int lines = 0;
+ // make sure our OS-level rng is seeded
+
for (int i = 0; i < height; i++) {
- //print_line("bake line " + itos(i) + " / " + itos(height));
-#ifdef _OPENMP
-#pragma omp parallel for
-#endif
- for (int j = 0; j < width; j++) {
-
- //if (i == 125 && j == 280) {
-
- LightMap *pixel = &lightmap_ptr[i * width + j];
- if (pixel->pos == Vector3())
- continue; //unused, skipe
-
- //print_line("pos: " + pixel->pos + " normal " + pixel->normal);
- switch (bake_mode) {
- case BAKE_MODE_CONE_TRACE: {
- pixel->light = _compute_pixel_light_at_pos(pixel->pos, pixel->normal) * energy;
- } break;
- case BAKE_MODE_RAY_TRACE: {
- pixel->light = _compute_ray_trace_at_pos(pixel->pos, pixel->normal) * energy;
- } break;
- // pixel->light = Vector3(1, 1, 1);
- //}
- }
- }
+ thread_process_array(width, this, &VoxelLightBaker::_lightmap_bake_point, &lightmap_ptr[i * width]);
lines = MAX(lines, i); //for multithread
if (p_bake_time_func) {
@@ -1878,12 +1956,14 @@ Error VoxelLightBaker::make_lightmap(const Transform &p_xform, Ref<Mesh> &p_mesh
LightMap *lightmap_ptr = lightmap.ptrw();
const Cell *cells = bake_cells.ptr();
const Light *light = bake_light.ptr();
-
+#ifdef _OPENMP
+#pragma omp parallel
+#endif
for (int i = 0; i < height; i++) {
//print_line("bake line " + itos(i) + " / " + itos(height));
#ifdef _OPENMP
-#pragma omp parallel for
+#pragma omp parallel for schedule(dynamic, 1)
#endif
for (int j = 0; j < width; j++) {
@@ -2002,6 +2082,7 @@ Error VoxelLightBaker::make_lightmap(const Transform &p_xform, Ref<Mesh> &p_mesh
}
}
+// Enable for debugging
#if 0
{
PoolVector<uint8_t> img;
diff --git a/scene/3d/voxel_light_baker.h b/scene/3d/voxel_light_baker.h
index 6dee2ee69b..68e11c356b 100644
--- a/scene/3d/voxel_light_baker.h
+++ b/scene/3d/voxel_light_baker.h
@@ -1,3 +1,33 @@
+/*************************************************************************/
+/* voxel_light_baker.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+
#ifndef VOXEL_LIGHT_BAKER_H
#define VOXEL_LIGHT_BAKER_H
@@ -99,7 +129,8 @@ private:
Vector<Color> _get_bake_texture(Ref<Image> p_image, const Color &p_color_mul, const Color &p_color_add);
MaterialCache _get_material_cache(Ref<Material> p_material);
- void _plot_face(int p_idx, int p_level, int p_x, int p_y, int p_z, const Vector3 *p_vtx, const Vector2 *p_uv, const MaterialCache &p_material, const AABB &p_aabb);
+
+ void _plot_face(int p_idx, int p_level, int p_x, int p_y, int p_z, const Vector3 *p_vtx, const Vector3 *p_normal, const Vector2 *p_uv, const MaterialCache &p_material, const AABB &p_aabb);
void _fixup_plot(int p_idx, int p_level);
void _debug_mesh(int p_idx, int p_level, const AABB &p_aabb, Ref<MultiMesh> &p_multimesh, int &idx, DebugMode p_mode);
void _check_init_light();
@@ -119,7 +150,10 @@ private:
_FORCE_INLINE_ Vector3 _compute_pixel_light_at_pos(const Vector3 &p_pos, const Vector3 &p_normal);
_FORCE_INLINE_ Vector3 _compute_ray_trace_at_pos(const Vector3 &p_pos, const Vector3 &p_normal);
+ void _lightmap_bake_point(uint32_t p_x, LightMap *p_line);
+
public:
+
void begin_bake(int p_subdiv, const AABB &p_bounds);
void plot_mesh(const Transform &p_xform, Ref<Mesh> &p_mesh, const Vector<Ref<Material> > &p_materials, const Ref<Material> &p_override_material);
void begin_bake_light(BakeQuality p_quality = BAKE_QUALITY_MEDIUM, BakeMode p_bake_mode = BAKE_MODE_CONE_TRACE, float p_propagation = 0.85, float p_energy = 1);
diff --git a/scene/animation/animation_tree_player.cpp b/scene/animation/animation_tree_player.cpp
index 32f82fe6b8..a50047e426 100644
--- a/scene/animation/animation_tree_player.cpp
+++ b/scene/animation/animation_tree_player.cpp
@@ -386,8 +386,6 @@ bool AnimationTreePlayer::_get(const StringName &p_name, Variant &r_ret) const {
void AnimationTreePlayer::_get_property_list(List<PropertyInfo> *p_list) const {
- p_list->push_back(PropertyInfo(Variant::NODE_PATH, "base_path"));
- p_list->push_back(PropertyInfo(Variant::NODE_PATH, "master_player"));
p_list->push_back(PropertyInfo(Variant::DICTIONARY, "data", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_NETWORK));
}
@@ -1140,6 +1138,9 @@ void AnimationTreePlayer::transition_node_set_input_count(const StringName &p_no
n->inputs.resize(p_inputs);
n->input_data.resize(p_inputs);
+
+ _clear_cycle_test();
+
last_error = _cycle_test(out_name);
}
void AnimationTreePlayer::transition_node_set_input_auto_advance(const StringName &p_node, int p_input, bool p_auto_advance) {
@@ -1360,6 +1361,8 @@ void AnimationTreePlayer::remove_node(const StringName &p_node) {
node_map.erase(p_node);
+ _clear_cycle_test();
+
// compute last error again, just in case
last_error = _cycle_test(out_name);
dirty_caches = true;
@@ -1387,6 +1390,14 @@ AnimationTreePlayer::ConnectError AnimationTreePlayer::_cycle_test(const StringN
return CONNECT_OK;
}
+// Use this function to not alter next complete _cycle_test().
+void AnimationTreePlayer::_clear_cycle_test() {
+ for (Map<StringName, NodeBase *>::Element *E = node_map.front(); E; E = E->next()) {
+ NodeBase *nb = E->get();
+ nb->cycletest = false;
+ }
+}
+
Error AnimationTreePlayer::connect_nodes(const StringName &p_src_node, const StringName &p_dst_node, int p_dst_input) {
ERR_FAIL_COND_V(!node_map.has(p_src_node), ERR_INVALID_PARAMETER);
@@ -1411,11 +1422,7 @@ Error AnimationTreePlayer::connect_nodes(const StringName &p_src_node, const Str
dst->inputs[p_dst_input].node = p_src_node;
- for (Map<StringName, NodeBase *>::Element *E = node_map.front(); E; E = E->next()) {
-
- NodeBase *nb = E->get();
- nb->cycletest = false;
- }
+ _clear_cycle_test();
last_error = _cycle_test(out_name);
if (last_error) {
diff --git a/scene/animation/animation_tree_player.h b/scene/animation/animation_tree_player.h
index c49b0c4d1b..7213441d6e 100644
--- a/scene/animation/animation_tree_player.h
+++ b/scene/animation/animation_tree_player.h
@@ -317,6 +317,7 @@ private:
bool reset_request;
ConnectError _cycle_test(const StringName &p_at_node);
+ void _clear_cycle_test();
Track *_find_track(const NodePath &p_path);
void _recompute_caches();
diff --git a/scene/gui/base_button.cpp b/scene/gui/base_button.cpp
index 148277f2dd..a67fe2aeeb 100644
--- a/scene/gui/base_button.cpp
+++ b/scene/gui/base_button.cpp
@@ -450,11 +450,11 @@ String BaseButton::get_tooltip(const Point2 &p_pos) const {
String tooltip = Control::get_tooltip(p_pos);
if (shortcut.is_valid() && shortcut->is_valid()) {
- if (tooltip.find("$sc") != -1) {
- tooltip = tooltip.replace_first("$sc", "(" + shortcut->get_as_text() + ")");
- } else {
- tooltip += " (" + shortcut->get_as_text() + ")";
+ String text = shortcut->get_name() + " (" + shortcut->get_as_text() + ")";
+ if (shortcut->get_name().nocasecmp_to(tooltip) != 0) {
+ text += "\n" + tooltip;
}
+ tooltip = text;
}
return tooltip;
}
diff --git a/scene/gui/button.h b/scene/gui/button.h
index 35488582de..5c5a73bae3 100644
--- a/scene/gui/button.h
+++ b/scene/gui/button.h
@@ -56,7 +56,6 @@ private:
float _internal_margin[4];
protected:
- virtual Size2 get_minimum_size() const;
void _set_internal_margin(Margin p_margin, float p_value);
void _notification(int p_what);
static void _bind_methods();
@@ -64,6 +63,8 @@ protected:
public:
//
+ virtual Size2 get_minimum_size() const;
+
void set_text(const String &p_text);
String get_text() const;
diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp
index cb6283507e..446676e80d 100644
--- a/scene/gui/color_picker.cpp
+++ b/scene/gui/color_picker.cpp
@@ -39,33 +39,32 @@ void ColorPicker::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_THEME_CHANGED: {
- //sample->set_texture(get_icon("color_sample"));
+
btn_pick->set_icon(get_icon("screen_picker", "ColorPicker"));
bt_add_preset->set_icon(get_icon("add_preset"));
_update_controls();
} break;
-
case NOTIFICATION_ENTER_TREE: {
+
btn_pick->set_icon(get_icon("screen_picker", "ColorPicker"));
bt_add_preset->set_icon(get_icon("add_preset"));
_update_color();
} break;
-
case NOTIFICATION_PARENTED: {
+
for (int i = 0; i < 4; i++)
set_margin((Margin)i, get_constant("margin"));
} break;
-
case NOTIFICATION_VISIBILITY_CHANGED: {
Popup *p = Object::cast_to<Popup>(get_parent());
if (p)
p->set_size(Size2(get_combined_minimum_size().width + get_constant("margin") * 2, get_combined_minimum_size().height + get_constant("margin") * 2));
} break;
-
case MainLoop::NOTIFICATION_WM_QUIT_REQUEST: {
+
if (screen != NULL) {
if (screen->is_visible()) {
screen->hide();
@@ -523,7 +522,6 @@ ColorPicker::ColorPicker() :
add_child(hb_edit);
w_edit = memnew(Control);
- //w_edit->set_ignore_mouse(false);
w_edit->set_custom_minimum_size(Size2(get_constant("h_width"), 0));
w_edit->set_h_size_flags(SIZE_FILL);
w_edit->set_v_size_flags(SIZE_EXPAND_FILL);
@@ -589,7 +587,6 @@ ColorPicker::ColorPicker() :
c_text->set_h_size_flags(SIZE_EXPAND_FILL);
_update_controls();
- //_update_color();
updating = false;
set_pick_color(Color(1, 1, 1));
@@ -599,7 +596,6 @@ ColorPicker::ColorPicker() :
preset = memnew(TextureRect);
bbc->add_child(preset);
- //preset->set_ignore_mouse(false);
preset->connect("gui_input", this, "_preset_input");
preset->connect("draw", this, "_update_presets");
@@ -660,11 +656,13 @@ bool ColorPickerButton::is_editing_alpha() const {
return picker->is_editing_alpha();
}
-ColorPicker *ColorPickerButton::get_picker() {
+ColorPicker *ColorPickerButton::get_picker() const {
+
return picker;
}
-PopupPanel *ColorPickerButton::get_popup() {
+PopupPanel *ColorPickerButton::get_popup() const {
+
return popup;
}
diff --git a/scene/gui/color_picker.h b/scene/gui/color_picker.h
index c02cdc8608..2bae279ed5 100644
--- a/scene/gui/color_picker.h
+++ b/scene/gui/color_picker.h
@@ -129,8 +129,8 @@ public:
void set_edit_alpha(bool p_show);
bool is_editing_alpha() const;
- ColorPicker *get_picker();
- PopupPanel *get_popup();
+ ColorPicker *get_picker() const;
+ PopupPanel *get_popup() const;
ColorPickerButton();
};
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp
index 81d2b6731f..b34abf5a46 100644
--- a/scene/gui/control.cpp
+++ b/scene/gui/control.cpp
@@ -2835,7 +2835,7 @@ void Control::_bind_methods() {
ADD_PROPERTYNZ(PropertyInfo(Variant::REAL, "rect_rotation", PROPERTY_HINT_RANGE, "-1080,1080,0.01"), "set_rotation_degrees", "get_rotation_degrees");
ADD_PROPERTYNO(PropertyInfo(Variant::VECTOR2, "rect_scale"), "set_scale", "get_scale");
ADD_PROPERTYNO(PropertyInfo(Variant::VECTOR2, "rect_pivot_offset"), "set_pivot_offset", "get_pivot_offset");
- ADD_PROPERTYNO(PropertyInfo(Variant::BOOL, "rect_clip_content"), "set_clip_contents", "is_clipping_contents");
+ ADD_PROPERTYNZ(PropertyInfo(Variant::BOOL, "rect_clip_content"), "set_clip_contents", "is_clipping_contents");
ADD_GROUP("Hint", "hint_");
ADD_PROPERTYNZ(PropertyInfo(Variant::STRING, "hint_tooltip", PROPERTY_HINT_MULTILINE_TEXT), "set_tooltip", "_get_tooltip");
diff --git a/scene/gui/dialogs.cpp b/scene/gui/dialogs.cpp
index d4912339da..9a55073bb6 100644
--- a/scene/gui/dialogs.cpp
+++ b/scene/gui/dialogs.cpp
@@ -289,10 +289,17 @@ bool WindowDialog::get_resizable() const {
Size2 WindowDialog::get_minimum_size() const {
Ref<Font> font = get_font("title_font", "WindowDialog");
- int msx = close_button->get_combined_minimum_size().x;
- msx += font->get_string_size(title).x;
- return Size2(msx, 1);
+ const int button_width = close_button->get_combined_minimum_size().x;
+ const int title_width = font->get_string_size(title).x;
+ const int padding = button_width / 2;
+ const int button_area = button_width + padding;
+
+ // as the title gets centered, title_width + close_button_width is not enough.
+ // we want a width w, such that w / 2 - title_width / 2 >= button_area, i.e.
+ // w >= 2 * button_area + title_width
+
+ return Size2(2 * button_area + title_width, 1);
}
TextureButton *WindowDialog::get_close_button() {
diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp
index e1f77594da..51a25c60a1 100644
--- a/scene/gui/label.cpp
+++ b/scene/gui/label.cpp
@@ -207,7 +207,7 @@ void Label::_notification(int p_what) {
} break;
}
- int y_ofs = style->get_offset().y;
+ float y_ofs = style->get_offset().y;
y_ofs += (line - lines_skipped) * font_h + font->get_ascent();
y_ofs += vbegin + line * vsep;
diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp
index 85ae6d6241..cebbb2193d 100644
--- a/scene/gui/line_edit.cpp
+++ b/scene/gui/line_edit.cpp
@@ -85,7 +85,7 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) {
if ((cursor_pos < selection.begin) || (cursor_pos > selection.end) || !selection.enabled) {
- selection_clear();
+ deselect();
selection.cursor_start = cursor_pos;
selection.creating = true;
} else if (selection.enabled) {
@@ -99,7 +99,7 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) {
} else {
if ((!selection.creating) && (!selection.doubleclick)) {
- selection_clear();
+ deselect();
}
selection.creating = false;
selection.doubleclick = false;
@@ -175,7 +175,7 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) {
if (editable) {
- selection_clear();
+ deselect();
text = text.substr(cursor_pos, text.length() - cursor_pos);
Ref<Font> font = get_font("font");
@@ -204,7 +204,7 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) {
if (editable) {
- selection_clear();
+ deselect();
text = text.substr(0, cursor_pos);
_text_changed();
}
@@ -827,7 +827,7 @@ void LineEdit::shift_selection_check_pre(bool p_shift) {
selection.cursor_start = cursor_pos;
}
if (!p_shift)
- selection_clear();
+ deselect();
}
void LineEdit::shift_selection_check_post(bool p_shift) {
@@ -880,13 +880,6 @@ void LineEdit::set_cursor_at_pixel_pos(int p_x) {
}
set_cursor_position(ofs);
-
- /*
- int new_cursor_pos=p_x;
- int charwidth=draw_area->get_font_char_width(' ',0);
- new_cursor_pos=( ( (new_cursor_pos-2)+ (charwidth/2) ) /charwidth );
- if (new_cursor_pos>(int)text.length()) new_cursor_pos=text.length();
- set_cursor_position(window_pos+new_cursor_pos); */
}
bool LineEdit::cursor_get_blink_enabled() const {
@@ -941,11 +934,6 @@ void LineEdit::delete_char() {
set_cursor_position(get_cursor_position() - 1);
- if (cursor_pos == window_pos) {
-
- //set_window_pos(cursor_pos-get_window_length());
- }
-
_text_changed();
}
@@ -1143,7 +1131,7 @@ Size2 LineEdit::get_minimum_size() const {
/* selection */
-void LineEdit::selection_clear() {
+void LineEdit::deselect() {
selection.begin = 0;
selection.end = 0;
@@ -1159,7 +1147,7 @@ void LineEdit::selection_delete() {
if (selection.enabled)
delete_text(selection.begin, selection.end);
- selection_clear();
+ deselect();
}
void LineEdit::set_max_length(int p_max_length) {
@@ -1224,7 +1212,7 @@ bool LineEdit::is_secret() const {
void LineEdit::select(int p_from, int p_to) {
if (p_from == 0 && p_to == 0) {
- selection_clear();
+ deselect();
return;
}
@@ -1383,7 +1371,9 @@ void LineEdit::_bind_methods() {
ClassDB::bind_method(D_METHOD("_gui_input"), &LineEdit::_gui_input);
ClassDB::bind_method(D_METHOD("clear"), &LineEdit::clear);
+ ClassDB::bind_method(D_METHOD("select", "from", "to"), &LineEdit::select, DEFVAL(0), DEFVAL(-1));
ClassDB::bind_method(D_METHOD("select_all"), &LineEdit::select_all);
+ ClassDB::bind_method(D_METHOD("deselect"), &LineEdit::deselect);
ClassDB::bind_method(D_METHOD("set_text", "text"), &LineEdit::set_text);
ClassDB::bind_method(D_METHOD("get_text"), &LineEdit::get_text);
ClassDB::bind_method(D_METHOD("set_placeholder", "text"), &LineEdit::set_placeholder);
@@ -1405,7 +1395,6 @@ void LineEdit::_bind_methods() {
ClassDB::bind_method(D_METHOD("is_editable"), &LineEdit::is_editable);
ClassDB::bind_method(D_METHOD("set_secret", "enabled"), &LineEdit::set_secret);
ClassDB::bind_method(D_METHOD("is_secret"), &LineEdit::is_secret);
- ClassDB::bind_method(D_METHOD("select", "from", "to"), &LineEdit::select, DEFVAL(0), DEFVAL(-1));
ClassDB::bind_method(D_METHOD("menu_option", "option"), &LineEdit::menu_option);
ClassDB::bind_method(D_METHOD("get_menu"), &LineEdit::get_menu);
ClassDB::bind_method(D_METHOD("set_context_menu_enabled", "enable"), &LineEdit::set_context_menu_enabled);
@@ -1457,7 +1446,7 @@ LineEdit::LineEdit() {
pass = false;
placeholder_alpha = 0.6;
- selection_clear();
+ deselect();
set_focus_mode(FOCUS_ALL);
editable = true;
set_default_cursor_shape(CURSOR_IBEAM);
diff --git a/scene/gui/line_edit.h b/scene/gui/line_edit.h
index c3a299c2f5..5ca4ca15df 100644
--- a/scene/gui/line_edit.h
+++ b/scene/gui/line_edit.h
@@ -119,7 +119,6 @@ private:
void shift_selection_check_pre(bool);
void shift_selection_check_post(bool);
- void selection_clear();
void selection_fill_at_cursor();
void selection_delete();
void set_window_pos(int p_pos);
@@ -155,7 +154,9 @@ public:
bool is_context_menu_enabled();
PopupMenu *get_menu() const;
+ void select(int p_from = 0, int p_to = -1);
void select_all();
+ void deselect();
void delete_char();
void delete_text(int p_from_column, int p_to_column);
@@ -190,8 +191,6 @@ public:
void set_secret(bool p_secret);
bool is_secret() const;
- void select(int p_from = 0, int p_to = -1);
-
virtual Size2 get_minimum_size() const;
void set_expand_to_text_length(bool p_enabled);
diff --git a/scene/gui/menu_button.cpp b/scene/gui/menu_button.cpp
index d850553957..c235797bef 100644
--- a/scene/gui/menu_button.cpp
+++ b/scene/gui/menu_button.cpp
@@ -33,6 +33,9 @@
void MenuButton::_unhandled_key_input(Ref<InputEvent> p_event) {
+ if (disable_shortcuts)
+ return;
+
if (p_event->is_pressed() && !p_event->is_echo() && (Object::cast_to<InputEventKey>(p_event.ptr()) || Object::cast_to<InputEventJoypadButton>(p_event.ptr()) || Object::cast_to<InputEventAction>(*p_event))) {
if (!get_parent() || !is_visible_in_tree() || is_disabled())
@@ -60,25 +63,10 @@ void MenuButton::pressed() {
void MenuButton::_gui_input(Ref<InputEvent> p_event) {
- /*if (p_event.type==InputEvent::MOUSE_BUTTON && p_event->get_button_index()==BUTTON_LEFT) {
- clicked=p_event->is_pressed();
- }
- if (clicked && p_event.type==InputEvent::MOUSE_MOTION && popup->is_visible_in_tree()) {
-
- Point2 gt = Point2(p_event.mouse_motion.x,p_event.mouse_motion.y);
- gt = get_global_transform().xform(gt);
- Point2 lt = popup->get_transform().affine_inverse().xform(gt);
- if (popup->has_point(lt)) {
- //print_line("HAS POINT!!!");
- popup->call_deferred("grab_click_focus");
- }
-
- }*/
-
BaseButton::_gui_input(p_event);
}
-PopupMenu *MenuButton::get_popup() {
+PopupMenu *MenuButton::get_popup() const {
return popup;
}
@@ -98,14 +86,22 @@ void MenuButton::_bind_methods() {
ClassDB::bind_method(D_METHOD("_unhandled_key_input"), &MenuButton::_unhandled_key_input);
ClassDB::bind_method(D_METHOD("_set_items"), &MenuButton::_set_items);
ClassDB::bind_method(D_METHOD("_get_items"), &MenuButton::_get_items);
+ ClassDB::bind_method(D_METHOD("set_disable_shortcuts", "disabled"), &MenuButton::set_disable_shortcuts);
ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "items", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "_set_items", "_get_items");
ADD_SIGNAL(MethodInfo("about_to_show"));
}
+
+void MenuButton::set_disable_shortcuts(bool p_disabled) {
+
+ disable_shortcuts = p_disabled;
+}
+
MenuButton::MenuButton() {
set_flat(true);
+ set_disable_shortcuts(false);
set_enabled_focus_mode(FOCUS_NONE);
popup = memnew(PopupMenu);
popup->hide();
diff --git a/scene/gui/menu_button.h b/scene/gui/menu_button.h
index c7f1d976ff..1bd9b155b2 100644
--- a/scene/gui/menu_button.h
+++ b/scene/gui/menu_button.h
@@ -40,6 +40,7 @@ class MenuButton : public Button {
GDCLASS(MenuButton, Button);
bool clicked;
+ bool disable_shortcuts;
PopupMenu *popup;
virtual void pressed();
@@ -53,7 +54,9 @@ protected:
static void _bind_methods();
public:
- PopupMenu *get_popup();
+ PopupMenu *get_popup() const;
+ void set_disable_shortcuts(bool p_disabled);
+
MenuButton();
~MenuButton();
};
diff --git a/scene/gui/option_button.cpp b/scene/gui/option_button.cpp
index 70f3d9ca83..6f784b56de 100644
--- a/scene/gui/option_button.cpp
+++ b/scene/gui/option_button.cpp
@@ -42,38 +42,35 @@ Size2 OptionButton::get_minimum_size() const {
void OptionButton::_notification(int p_what) {
- switch (p_what) {
-
- case NOTIFICATION_DRAW: {
-
- if (!has_icon("arrow"))
- return;
-
- RID ci = get_canvas_item();
- Ref<Texture> arrow = Control::get_icon("arrow");
- Ref<StyleBox> normal = get_stylebox("normal");
- Color clr = Color(1, 1, 1);
- if (get_constant("modulate_arrow"))
- switch (get_draw_mode()) {
- case DRAW_PRESSED:
- clr = get_color("font_color_pressed");
- break;
- case DRAW_HOVER:
- clr = get_color("font_color_hover");
- break;
- case DRAW_DISABLED:
- clr = get_color("font_color_disabled");
- break;
- default:
- clr = get_color("font_color");
- }
-
- Size2 size = get_size();
-
- Point2 ofs(size.width - arrow->get_width() - get_constant("arrow_margin"), int(Math::abs((size.height - arrow->get_height()) / 2)));
- arrow->draw(ci, ofs, clr);
-
- } break;
+ if (p_what == NOTIFICATION_DRAW) {
+
+ if (!has_icon("arrow"))
+ return;
+
+ RID ci = get_canvas_item();
+ Ref<Texture> arrow = Control::get_icon("arrow");
+ Ref<StyleBox> normal = get_stylebox("normal");
+ Color clr = Color(1, 1, 1);
+ if (get_constant("modulate_arrow")) {
+ switch (get_draw_mode()) {
+ case DRAW_PRESSED:
+ clr = get_color("font_color_pressed");
+ break;
+ case DRAW_HOVER:
+ clr = get_color("font_color_hover");
+ break;
+ case DRAW_DISABLED:
+ clr = get_color("font_color_disabled");
+ break;
+ default:
+ clr = get_color("font_color");
+ }
+ }
+
+ Size2 size = get_size();
+
+ Point2 ofs(size.width - arrow->get_width() - get_constant("arrow_margin"), int(Math::abs((size.height - arrow->get_height()) / 2)));
+ arrow->draw(ci, ofs, clr);
}
}
@@ -244,6 +241,11 @@ void OptionButton::remove_item(int p_idx) {
popup->remove_item(p_idx);
}
+PopupMenu *OptionButton::get_popup() const {
+
+ return popup;
+}
+
Array OptionButton::_get_items() const {
Array items;
@@ -310,6 +312,8 @@ void OptionButton::_bind_methods() {
ClassDB::bind_method(D_METHOD("remove_item", "idx"), &OptionButton::remove_item);
ClassDB::bind_method(D_METHOD("_select_int"), &OptionButton::_select_int);
+ ClassDB::bind_method(D_METHOD("get_popup"), &OptionButton::get_popup);
+
ClassDB::bind_method(D_METHOD("_set_items"), &OptionButton::_set_items);
ClassDB::bind_method(D_METHOD("_get_items"), &OptionButton::_get_items);
@@ -320,15 +324,16 @@ void OptionButton::_bind_methods() {
OptionButton::OptionButton() {
+ current = -1;
+ set_text_align(ALIGN_LEFT);
+ set_action_mode(ACTION_MODE_BUTTON_PRESS);
+
popup = memnew(PopupMenu);
popup->hide();
+ add_child(popup);
popup->set_as_toplevel(true);
popup->set_pass_on_modal_close_click(false);
- add_child(popup);
popup->connect("id_pressed", this, "_selected");
-
- current = -1;
- set_text_align(ALIGN_LEFT);
}
OptionButton::~OptionButton() {
diff --git a/scene/gui/option_button.h b/scene/gui/option_button.h
index a06c540678..b09942b072 100644
--- a/scene/gui/option_button.h
+++ b/scene/gui/option_button.h
@@ -85,6 +85,8 @@ public:
void remove_item(int p_idx);
+ PopupMenu *get_popup() const;
+
virtual void get_translatable_strings(List<String> *p_strings) const;
OptionButton();
diff --git a/scene/gui/popup_menu.cpp b/scene/gui/popup_menu.cpp
index 32f889e826..d598104cf5 100644
--- a/scene/gui/popup_menu.cpp
+++ b/scene/gui/popup_menu.cpp
@@ -42,24 +42,6 @@ String PopupMenu::_get_accel_text(int p_item) const {
else if (items[p_item].accel)
return keycode_get_string(items[p_item].accel);
return String();
-
- /*
- String atxt;
- if (p_accel&KEY_MASK_SHIFT)
- atxt+="Shift+";
- if (p_accel&KEY_MASK_ALT)
- atxt+="Alt+";
- if (p_accel&KEY_MASK_CTRL)
- atxt+="Ctrl+";
- if (p_accel&KEY_MASK_META)
- atxt+="Meta+";
-
- p_accel&=KEY_CODE_MASK;
-
- atxt+=String::chr(p_accel).to_upper();
-
- return atxt;
-*/
}
Size2 PopupMenu::get_minimum_size() const {
@@ -136,7 +118,6 @@ int PopupMenu::_get_mouse_over(const Point2 &p_over) const {
Ref<Font> font = get_font("font");
int vseparation = get_constant("vseparation");
- //int hseparation = get_constant("hseparation");
float font_h = font->get_height();
for (int i = 0; i < items.size(); i++) {
@@ -221,7 +202,11 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) {
case KEY_DOWN: {
- for (int i = mouse_over + 1; i < items.size(); i++) {
+ int search_from = mouse_over + 1;
+ if (search_from >= items.size())
+ search_from = 0;
+
+ for (int i = search_from; i < items.size(); i++) {
if (i < 0 || i >= items.size())
continue;
@@ -236,7 +221,11 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) {
} break;
case KEY_UP: {
- for (int i = mouse_over - 1; i >= 0; i--) {
+ int search_from = mouse_over - 1;
+ if (search_from < 0)
+ search_from = items.size() - 1;
+
+ for (int i = search_from; i >= 0; i--) {
if (i < 0 || i >= items.size())
continue;
@@ -249,11 +238,36 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) {
}
}
} break;
+
+ case KEY_LEFT: {
+
+ Node *n = get_parent();
+ if (!n)
+ break;
+
+ PopupMenu *pm = Object::cast_to<PopupMenu>(n);
+ if (!pm)
+ break;
+
+ hide();
+ } break;
+
+ case KEY_RIGHT: {
+
+ if (mouse_over >= 0 && mouse_over < items.size() && !items[mouse_over].separator && items[mouse_over].submenu != "" && submenu_over != mouse_over)
+ _activate_submenu(mouse_over);
+ } break;
+
case KEY_ENTER:
case KEY_KP_ENTER: {
if (mouse_over >= 0 && mouse_over < items.size() && !items[mouse_over].separator) {
+ if (items[mouse_over].submenu != "" && submenu_over != mouse_over) {
+ _activate_submenu(mouse_over);
+ break;
+ }
+
activate_item(mouse_over);
}
} break;
@@ -500,6 +514,13 @@ void PopupMenu::_notification(int p_what) {
} break;
case NOTIFICATION_MOUSE_EXIT: {
+ if (mouse_over >= 0 && (items[mouse_over].submenu == "" || submenu_over != -1)) {
+ mouse_over = -1;
+ update();
+ }
+ } break;
+ case NOTIFICATION_POPUP_HIDE: {
+
if (mouse_over >= 0) {
mouse_over = -1;
update();
@@ -1217,6 +1238,7 @@ void PopupMenu::set_invalidate_click_until_motion() {
PopupMenu::PopupMenu() {
mouse_over = -1;
+ submenu_over = -1;
set_focus_mode(FOCUS_ALL);
set_as_toplevel(true);
diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp
index 05c6e9f77e..6fbc58a38a 100644
--- a/scene/gui/rich_text_label.cpp
+++ b/scene/gui/rich_text_label.cpp
@@ -31,6 +31,11 @@
#include "os/keyboard.h"
#include "os/os.h"
#include "scene/scene_string_names.h"
+
+#ifdef TOOLS_ENABLED
+#include "editor/editor_node.h"
+#endif
+
RichTextLabel::Item *RichTextLabel::_get_next_item(Item *p_item, bool p_free) {
if (p_free) {
@@ -370,7 +375,11 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int &
Color uc = color;
uc.a *= 0.5;
int uy = y + lh - fh + ascent + 2;
- VS::get_singleton()->canvas_item_add_line(ci, p_ofs + Point2(align_ofs + pofs, uy), p_ofs + Point2(align_ofs + pofs + cw, uy), uc);
+ float underline_width = 1.0;
+#ifdef TOOLS_ENABLED
+ underline_width *= EDSCALE;
+#endif
+ VS::get_singleton()->canvas_item_add_line(ci, p_ofs + Point2(align_ofs + pofs, uy), p_ofs + Point2(align_ofs + pofs + cw, uy), uc, underline_width);
}
ofs += cw;
}
diff --git a/scene/gui/split_container.cpp b/scene/gui/split_container.cpp
index 4420a936d2..1c15953517 100644
--- a/scene/gui/split_container.cpp
+++ b/scene/gui/split_container.cpp
@@ -61,7 +61,7 @@ Control *SplitContainer::_getch(int p_idx) const {
void SplitContainer::_resort() {
- /** First pass, determine minimum size AND amount of stretchable elements */
+ /* First pass, determine minimum size AND amount of stretchable elements */
int axis = vertical ? 1 : 0;
@@ -114,10 +114,8 @@ void SplitContainer::_resort() {
Size2 ms_second = second->get_combined_minimum_size();
if (vertical) {
-
minimum = ms_first.height + ms_second.height;
} else {
-
minimum = ms_first.width + ms_second.width;
}
@@ -141,12 +139,10 @@ void SplitContainer::_resort() {
} else if (expand_first_mode) {
middle_sep = get_size()[axis] - ms_second[axis] - sep;
-
} else {
middle_sep = ms_first[axis];
}
-
} else if (ratiomode) {
int first_ratio = first->get_stretch_ratio();
@@ -160,23 +156,19 @@ void SplitContainer::_resort() {
expand_ofs = (available * (1.0 - ratio));
middle_sep = ms_first[axis] + available * ratio + expand_ofs;
-
} else if (expand_first_mode) {
if (expand_ofs > 0)
expand_ofs = 0;
-
- if (expand_ofs < -available)
+ else if (expand_ofs < -available)
expand_ofs = -available;
middle_sep = get_size()[axis] - ms_second[axis] - sep + expand_ofs;
-
} else {
if (expand_ofs < 0)
expand_ofs = 0;
-
- if (expand_ofs > available)
+ else if (expand_ofs > available)
expand_ofs = available;
middle_sep = ms_first[axis] + expand_ofs;
@@ -187,7 +179,6 @@ void SplitContainer::_resort() {
fit_child_in_rect(first, Rect2(Point2(0, 0), Size2(get_size().width, middle_sep)));
int sofs = middle_sep + sep;
fit_child_in_rect(second, Rect2(Point2(0, sofs), Size2(get_size().width, get_size().height - sofs)));
-
} else {
fit_child_in_rect(first, Rect2(Point2(0, 0), Size2(middle_sep, get_size().height)));
@@ -246,10 +237,12 @@ void SplitContainer::_notification(int p_what) {
_resort();
} break;
case NOTIFICATION_MOUSE_ENTER: {
+
mouse_inside = true;
update();
} break;
case NOTIFICATION_MOUSE_EXIT: {
+
mouse_inside = false;
update();
} break;
@@ -260,22 +253,17 @@ void SplitContainer::_notification(int p_what) {
if (collapsed || (!mouse_inside && get_constant("autohide")))
return;
+
int sep = dragger_visibility != DRAGGER_HIDDEN_COLLAPSED ? get_constant("separation") : 0;
Ref<Texture> tex = get_icon("grabber");
Size2 size = get_size();
- if (vertical) {
+ if (dragger_visibility == DRAGGER_VISIBLE) {
- //draw_style_box( get_stylebox("bg"), Rect2(0,middle_sep,get_size().width,sep));
- if (dragger_visibility == DRAGGER_VISIBLE)
+ if (vertical)
draw_texture(tex, Point2i((size.x - tex->get_width()) / 2, middle_sep + (sep - tex->get_height()) / 2));
-
- } else {
-
- //draw_style_box( get_stylebox("bg"), Rect2(middle_sep,0,sep,get_size().height));
- if (dragger_visibility == DRAGGER_VISIBLE)
+ else
draw_texture(tex, Point2i(middle_sep + (sep - tex->get_width()) / 2, (size.y - tex->get_height()) / 2));
}
-
} break;
}
}
@@ -292,11 +280,13 @@ void SplitContainer::_gui_input(const Ref<InputEvent> &p_event) {
if (mb->get_button_index() == BUTTON_LEFT) {
if (mb->is_pressed()) {
+
int sep = get_constant("separation");
if (vertical) {
if (mb->get_position().y > middle_sep && mb->get_position().y < middle_sep + sep) {
+
dragging = true;
drag_from = mb->get_position().y;
drag_ofs = expand_ofs;
@@ -304,6 +294,7 @@ void SplitContainer::_gui_input(const Ref<InputEvent> &p_event) {
} else {
if (mb->get_position().x > middle_sep && mb->get_position().x < middle_sep + sep) {
+
dragging = true;
drag_from = mb->get_position().x;
drag_ofs = expand_ofs;
@@ -318,36 +309,31 @@ void SplitContainer::_gui_input(const Ref<InputEvent> &p_event) {
Ref<InputEventMouseMotion> mm = p_event;
- if (mm.is_valid()) {
-
- if (dragging) {
+ if (mm.is_valid() && dragging) {
- expand_ofs = drag_ofs + ((vertical ? mm->get_position().y : mm->get_position().x) - drag_from);
- queue_sort();
- emit_signal("dragged", get_split_offset());
- }
+ expand_ofs = drag_ofs + ((vertical ? mm->get_position().y : mm->get_position().x) - drag_from);
+ queue_sort();
+ emit_signal("dragged", get_split_offset());
}
}
Control::CursorShape SplitContainer::get_cursor_shape(const Point2 &p_pos) const {
- if (collapsed)
- return Control::get_cursor_shape(p_pos);
-
if (dragging)
return (vertical ? CURSOR_VSIZE : CURSOR_HSIZE);
- int sep = get_constant("separation");
+ if (!collapsed && _getch(0) && _getch(1) && dragger_visibility == DRAGGER_VISIBLE) {
- if (vertical) {
+ int sep = get_constant("separation");
- if (p_pos.y > middle_sep && p_pos.y < middle_sep + sep) {
- return CURSOR_VSIZE;
- }
- } else {
+ if (vertical) {
- if (p_pos.x > middle_sep && p_pos.x < middle_sep + sep) {
- return CURSOR_HSIZE;
+ if (p_pos.y > middle_sep && p_pos.y < middle_sep + sep)
+ return CURSOR_VSIZE;
+ } else {
+
+ if (p_pos.x > middle_sep && p_pos.x < middle_sep + sep)
+ return CURSOR_HSIZE;
}
}
@@ -358,6 +344,7 @@ void SplitContainer::set_split_offset(int p_offset) {
if (expand_ofs == p_offset)
return;
+
expand_ofs = p_offset;
queue_sort();
}
@@ -371,6 +358,7 @@ void SplitContainer::set_collapsed(bool p_collapsed) {
if (collapsed == p_collapsed)
return;
+
collapsed = p_collapsed;
queue_sort();
}
diff --git a/scene/gui/split_container.h b/scene/gui/split_container.h
index c7a484c4c5..40a58d4b32 100644
--- a/scene/gui/split_container.h
+++ b/scene/gui/split_container.h
@@ -88,7 +88,7 @@ class HSplitContainer : public SplitContainer {
public:
HSplitContainer() :
- SplitContainer(false) { set_default_cursor_shape(CURSOR_HSPLIT); }
+ SplitContainer(false) {}
};
class VSplitContainer : public SplitContainer {
@@ -97,7 +97,7 @@ class VSplitContainer : public SplitContainer {
public:
VSplitContainer() :
- SplitContainer(true) { set_default_cursor_shape(CURSOR_VSPLIT); }
+ SplitContainer(true) {}
};
#endif // SPLIT_CONTAINER_H
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp
index e5169089f2..0fba4a6f94 100644
--- a/scene/gui/text_edit.cpp
+++ b/scene/gui/text_edit.cpp
@@ -1664,17 +1664,22 @@ void TextEdit::backspace_at_cursor() {
cursor_set_column(prev_column);
}
-void TextEdit::indent_selection_right() {
+void TextEdit::indent_right() {
- if (!is_selection_active()) {
- return;
- }
+ int start_line;
+ int end_line;
begin_complex_operation();
- int start_line = get_selection_from_line();
- int end_line = get_selection_to_line();
+
+ if (is_selection_active()) {
+ start_line = get_selection_from_line();
+ end_line = get_selection_to_line();
+ } else {
+ start_line = cursor.line;
+ end_line = start_line;
+ }
// ignore if the cursor is not past the first column
- if (get_selection_to_column() == 0) {
+ if (is_selection_active() && get_selection_to_column() == 0) {
end_line--;
}
@@ -1688,23 +1693,31 @@ void TextEdit::indent_selection_right() {
set_line(i, line_text);
}
- // fix selection being off by one on the last line
- selection.to_column++;
+ // fix selection and cursor being off by one on the last line
+ if (is_selection_active()) {
+ select(selection.from_line, selection.from_column + 1, selection.to_line, selection.to_column + 1);
+ }
+ cursor_set_column(cursor.column + 1, false);
end_complex_operation();
update();
}
-void TextEdit::indent_selection_left() {
+void TextEdit::indent_left() {
- if (!is_selection_active()) {
- return;
- }
+ int start_line;
+ int end_line;
begin_complex_operation();
- int start_line = get_selection_from_line();
- int end_line = get_selection_to_line();
+
+ if (is_selection_active()) {
+ start_line = get_selection_from_line();
+ end_line = get_selection_to_line();
+ } else {
+ start_line = cursor.line;
+ end_line = start_line;
+ }
// ignore if the cursor is not past the first column
- if (get_selection_to_column() == 0) {
+ if (is_selection_active() && get_selection_to_column() == 0) {
end_line--;
}
String last_line_text = get_line(end_line);
@@ -1721,10 +1734,11 @@ void TextEdit::indent_selection_left() {
}
}
- // fix selection being off by one on the last line
- if (last_line_text != get_line(end_line) && selection.to_column > 0) {
- selection.to_column--;
+ // fix selection and cursor being off by one on the last line
+ if (is_selection_active() && last_line_text != get_line(end_line)) {
+ select(selection.from_line, selection.from_column - 1, selection.to_line, selection.to_column - 1);
}
+ cursor_set_column(cursor.column - 1, false);
end_complex_operation();
update();
}
@@ -1953,6 +1967,31 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) {
if (mb->get_button_index() == BUTTON_RIGHT && context_menu_enabled) {
+ _reset_caret_blink_timer();
+
+ int row, col;
+ update_line_scroll_pos();
+ _get_mouse_pos(Point2i(mb->get_position().x, mb->get_position().y), row, col);
+
+ if (is_right_click_moving_caret()) {
+ if (is_selection_active()) {
+
+ int from_line = get_selection_from_line();
+ int to_line = get_selection_to_line();
+ int from_column = get_selection_from_column();
+ int to_column = get_selection_to_column();
+
+ if (row < from_line || row > to_line || (row == from_line && col < from_column) || (row == to_line && col > to_column)) {
+ // Right click is outside the seleted text
+ deselect();
+ }
+ }
+ if (!is_selection_active()) {
+ cursor_set_line(row, true, false);
+ cursor_set_column(col);
+ }
+ }
+
menu->set_position(get_global_transform().xform(get_local_mouse_position()));
menu->set_size(Vector2(1, 1));
menu->popup();
@@ -2216,9 +2255,9 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) {
case KEY_TAB: {
if (k->get_shift()) {
- indent_selection_left();
+ indent_left();
} else {
- indent_selection_right();
+ indent_right();
}
dobreak = true;
accept_event();
@@ -2389,8 +2428,12 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) {
if (readonly)
break;
- if (selection.active) {
-
+ if (is_selection_active()) {
+ if (k->get_shift()) {
+ indent_left();
+ } else {
+ indent_right();
+ }
} else {
if (k->get_shift()) {
@@ -3684,6 +3727,14 @@ bool TextEdit::cursor_is_block_mode() const {
return block_caret;
}
+void TextEdit::set_right_click_moves_caret(bool p_enable) {
+ right_click_moves_caret = p_enable;
+}
+
+bool TextEdit::is_right_click_moving_caret() const {
+ return right_click_moves_caret;
+}
+
void TextEdit::_v_scroll_input() {
scrolling = false;
}
@@ -4060,7 +4111,7 @@ void TextEdit::cut() {
backspace_at_cursor();
update();
cursor_set_line(cursor.line + 1);
- cut_copy_line = true;
+ cut_copy_line = clipboard;
} else {
@@ -4074,7 +4125,7 @@ void TextEdit::cut() {
selection.active = false;
selection.selecting_mode = Selection::MODE_NONE;
update();
- cut_copy_line = false;
+ cut_copy_line = "";
}
}
@@ -4083,11 +4134,11 @@ void TextEdit::copy() {
if (!selection.active) {
String clipboard = _base_get_text(cursor.line, 0, cursor.line, text[cursor.line].length());
OS::get_singleton()->set_clipboard(clipboard);
- cut_copy_line = true;
+ cut_copy_line = clipboard;
} else {
String clipboard = _base_get_text(selection.from_line, selection.from_column, selection.to_line, selection.to_column);
OS::get_singleton()->set_clipboard(clipboard);
- cut_copy_line = false;
+ cut_copy_line = "";
}
}
@@ -4103,7 +4154,7 @@ void TextEdit::paste() {
cursor_set_line(selection.from_line);
cursor_set_column(selection.from_column);
- } else if (cut_copy_line) {
+ } else if (!cut_copy_line.empty() && cut_copy_line == clipboard) {
cursor_set_column(0);
String ins = "\n";
@@ -4144,11 +4195,15 @@ void TextEdit::select(int p_from_line, int p_from_column, int p_to_line, int p_t
p_from_line = text.size() - 1;
if (p_from_column >= text[p_from_line].length())
p_from_column = text[p_from_line].length();
+ if (p_from_column < 0)
+ p_from_column = 0;
if (p_to_line >= text.size())
p_to_line = text.size() - 1;
if (p_to_column >= text[p_to_line].length())
p_to_column = text[p_to_line].length();
+ if (p_to_column < 0)
+ p_to_column = 0;
selection.from_line = p_from_line;
selection.from_column = p_from_column;
@@ -5433,6 +5488,9 @@ void TextEdit::_bind_methods() {
ClassDB::bind_method(D_METHOD("cursor_set_block_mode", "enable"), &TextEdit::cursor_set_block_mode);
ClassDB::bind_method(D_METHOD("cursor_is_block_mode"), &TextEdit::cursor_is_block_mode);
+ ClassDB::bind_method(D_METHOD("set_right_click_moves_caret", "enable"), &TextEdit::set_right_click_moves_caret);
+ ClassDB::bind_method(D_METHOD("is_right_click_moving_caret"), &TextEdit::is_right_click_moving_caret);
+
ClassDB::bind_method(D_METHOD("set_readonly", "enable"), &TextEdit::set_readonly);
ClassDB::bind_method(D_METHOD("is_readonly"), &TextEdit::is_readonly);
@@ -5444,8 +5502,10 @@ void TextEdit::_bind_methods() {
ClassDB::bind_method(D_METHOD("cut"), &TextEdit::cut);
ClassDB::bind_method(D_METHOD("copy"), &TextEdit::copy);
ClassDB::bind_method(D_METHOD("paste"), &TextEdit::paste);
- ClassDB::bind_method(D_METHOD("select_all"), &TextEdit::select_all);
+
ClassDB::bind_method(D_METHOD("select", "from_line", "from_column", "to_line", "to_column"), &TextEdit::select);
+ ClassDB::bind_method(D_METHOD("select_all"), &TextEdit::select_all);
+ ClassDB::bind_method(D_METHOD("deselect"), &TextEdit::deselect);
ClassDB::bind_method(D_METHOD("is_selection_active"), &TextEdit::is_selection_active);
ClassDB::bind_method(D_METHOD("get_selection_from_line"), &TextEdit::get_selection_from_line);
@@ -5466,7 +5526,7 @@ void TextEdit::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_hiding_enabled", "enable"), &TextEdit::set_hiding_enabled);
ClassDB::bind_method(D_METHOD("is_hiding_enabled"), &TextEdit::is_hiding_enabled);
ClassDB::bind_method(D_METHOD("set_line_as_hidden", "line", "enable"), &TextEdit::set_line_as_hidden);
- ClassDB::bind_method(D_METHOD("is_line_hidden"), &TextEdit::is_line_hidden);
+ ClassDB::bind_method(D_METHOD("is_line_hidden", "line"), &TextEdit::is_line_hidden);
ClassDB::bind_method(D_METHOD("fold_all_lines"), &TextEdit::fold_all_lines);
ClassDB::bind_method(D_METHOD("unhide_all_lines"), &TextEdit::unhide_all_lines);
ClassDB::bind_method(D_METHOD("fold_line", "line"), &TextEdit::fold_line);
@@ -5514,6 +5574,7 @@ void TextEdit::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "caret_block_mode"), "cursor_set_block_mode", "cursor_is_block_mode");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "caret_blink"), "cursor_set_blink_enabled", "cursor_get_blink_enabled");
ADD_PROPERTYNZ(PropertyInfo(Variant::REAL, "caret_blink_speed", PROPERTY_HINT_RANGE, "0.1,10,0.1"), "cursor_set_blink_speed", "cursor_get_blink_speed");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "caret_moving_by_right_click"), "set_right_click_moves_caret", "is_right_click_moving_caret");
ADD_SIGNAL(MethodInfo("cursor_changed"));
ADD_SIGNAL(MethodInfo("text_changed"));
@@ -5591,6 +5652,7 @@ TextEdit::TextEdit() {
caret_blink_timer->set_wait_time(0.65);
caret_blink_timer->connect("timeout", this, "_toggle_draw_caret");
cursor_set_blink_enabled(false);
+ right_click_moves_caret = true;
idle_detect = memnew(Timer);
add_child(idle_detect);
diff --git a/scene/gui/text_edit.h b/scene/gui/text_edit.h
index dd305d5822..f18eaa85cb 100644
--- a/scene/gui/text_edit.h
+++ b/scene/gui/text_edit.h
@@ -246,6 +246,7 @@ class TextEdit : public Control {
bool draw_caret;
bool window_has_focus;
bool block_caret;
+ bool right_click_moves_caret;
bool setting_row;
bool wrap;
@@ -270,7 +271,7 @@ class TextEdit : public Control {
bool brace_matching_enabled;
bool highlight_current_line;
bool auto_indent;
- bool cut_copy_line;
+ String cut_copy_line;
bool insert_mode;
bool select_identifiers_enabled;
@@ -443,8 +444,8 @@ public:
void set_line(int line, String new_text);
void backspace_at_cursor();
- void indent_selection_left();
- void indent_selection_right();
+ void indent_left();
+ void indent_right();
int get_indent_level(int p_line) const;
inline void set_scroll_pass_end_of_file(bool p_enabled) {
@@ -481,6 +482,9 @@ public:
void cursor_set_block_mode(const bool p_enable);
bool cursor_is_block_mode() const;
+ void set_right_click_moves_caret(bool p_enable);
+ bool is_right_click_moving_caret() const;
+
void set_readonly(bool p_readonly);
bool is_readonly() const;
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp
index ab12d123ba..51ad22e271 100644
--- a/scene/gui/tree.cpp
+++ b/scene/gui/tree.cpp
@@ -30,6 +30,7 @@
#include "tree.h"
#include <limits.h>
+#include "math_funcs.h"
#include "os/input.h"
#include "os/keyboard.h"
#include "os/os.h"
@@ -37,6 +38,10 @@
#include "project_settings.h"
#include "scene/main/viewport.h"
+#ifdef TOOLS_ENABLED
+#include "editor/editor_node.h"
+#endif
+
void TreeItem::move_to_top() {
if (!parent || parent->childs == this)
@@ -1412,9 +1417,14 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2
if (c->get_children() != NULL)
root_pos -= Point2i(cache.arrow->get_width(), 0);
+ float line_width = 1.0;
+#ifdef TOOLS_ENABLED
+ line_width *= EDSCALE;
+#endif
+
Point2i parent_pos = Point2i(parent_ofs - cache.arrow->get_width() / 2, p_pos.y + label_h / 2 + cache.arrow->get_height() / 2) - cache.offset + p_draw_ofs;
- VisualServer::get_singleton()->canvas_item_add_line(ci, root_pos, Point2i(parent_pos.x, root_pos.y), cache.relationship_line_color);
- VisualServer::get_singleton()->canvas_item_add_line(ci, Point2i(parent_pos.x, root_pos.y), parent_pos, cache.relationship_line_color);
+ VisualServer::get_singleton()->canvas_item_add_line(ci, root_pos, Point2i(parent_pos.x - Math::floor(line_width / 2), root_pos.y), cache.relationship_line_color, line_width);
+ VisualServer::get_singleton()->canvas_item_add_line(ci, Point2i(parent_pos.x, root_pos.y), parent_pos, cache.relationship_line_color, line_width);
}
int child_h = draw_item(children_pos, p_draw_ofs, p_draw_size, c);
@@ -1765,7 +1775,7 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool
case TreeItem::CELL_MODE_STRING: {
//nothing in particular
- if (select_mode == SELECT_MULTI && (get_tree()->get_last_event_id() == focus_in_id || !already_cursor)) {
+ if (select_mode == SELECT_MULTI && (get_tree()->get_event_count() == focus_in_id || !already_cursor)) {
bring_up_editor = false;
}
@@ -1853,7 +1863,7 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool
} else {
editor_text = String::num(p_item->cells[col].val, Math::step_decimals(p_item->cells[col].step));
- if (select_mode == SELECT_MULTI && get_tree()->get_last_event_id() == focus_in_id)
+ if (select_mode == SELECT_MULTI && get_tree()->get_event_count() == focus_in_id)
bring_up_editor = false;
}
}
@@ -2776,7 +2786,7 @@ void Tree::_notification(int p_what) {
if (p_what == NOTIFICATION_FOCUS_ENTER) {
- focus_in_id = get_tree()->get_last_event_id();
+ focus_in_id = get_tree()->get_event_count();
}
if (p_what == NOTIFICATION_MOUSE_EXIT) {
@@ -2940,43 +2950,51 @@ Size2 Tree::get_minimum_size() const {
return Size2(1, 1);
}
-TreeItem *Tree::create_item(TreeItem *p_parent) {
+TreeItem *Tree::create_item(TreeItem *p_parent, int p_idx) {
ERR_FAIL_COND_V(blocked > 0, NULL);
- TreeItem *ti = memnew(TreeItem(this));
-
- ERR_FAIL_COND_V(!ti, NULL);
- ti->cells.resize(columns.size());
+ TreeItem *ti = NULL;
if (p_parent) {
- /* Always append at the end */
+ // Append or insert a new item to the given parent.
+ ti = memnew(TreeItem(this));
+ ERR_FAIL_COND_V(!ti, NULL);
+ ti->cells.resize(columns.size());
- TreeItem *last = 0;
+ TreeItem *prev = NULL;
TreeItem *c = p_parent->childs;
+ int idx = 0;
while (c) {
-
- last = c;
+ if (idx++ == p_idx) {
+ ti->next = c;
+ break;
+ }
+ prev = c;
c = c->next;
}
- if (last) {
-
- last->next = ti;
- } else {
-
+ if (prev)
+ prev->next = ti;
+ else
p_parent->childs = ti;
- }
ti->parent = p_parent;
} else {
- if (root)
- ti->childs = root;
+ if (!root) {
+ // No root exists, make the given item the new root.
+ ti = memnew(TreeItem(this));
+ ERR_FAIL_COND_V(!ti, NULL);
+ ti->cells.resize(columns.size());
- root = ti;
+ root = ti;
+ } else {
+ // Root exists, append or insert to root.
+ ti = create_item(root, p_idx);
+ }
}
return ti;
@@ -3713,7 +3731,7 @@ void Tree::_bind_methods() {
ClassDB::bind_method(D_METHOD("_scroll_moved"), &Tree::_scroll_moved);
ClassDB::bind_method(D_METHOD("clear"), &Tree::clear);
- ClassDB::bind_method(D_METHOD("create_item", "parent"), &Tree::_create_item, DEFVAL(Variant()));
+ ClassDB::bind_method(D_METHOD("create_item", "parent", "idx"), &Tree::_create_item, DEFVAL(Variant()), DEFVAL(-1));
ClassDB::bind_method(D_METHOD("get_root"), &Tree::get_root);
ClassDB::bind_method(D_METHOD("set_column_min_width", "column", "min_width"), &Tree::set_column_min_width);
diff --git a/scene/gui/tree.h b/scene/gui/tree.h
index 112de3165f..b8d94bcffb 100644
--- a/scene/gui/tree.h
+++ b/scene/gui/tree.h
@@ -359,7 +359,7 @@ private:
LineEdit *text_editor;
HSlider *value_editor;
bool updating_value_editor;
- uint32_t focus_in_id;
+ int64_t focus_in_id;
PopupMenu *popup_menu;
Vector<ColumnInfo> columns;
@@ -511,8 +511,8 @@ protected:
static void _bind_methods();
//bind helpers
- Object *_create_item(Object *p_parent) {
- return create_item(Object::cast_to<TreeItem>(p_parent));
+ Object *_create_item(Object *p_parent, int p_idx = -1) {
+ return create_item(Object::cast_to<TreeItem>(p_parent), p_idx);
}
TreeItem *_get_next_selected(Object *p_item) {
@@ -532,7 +532,7 @@ public:
void clear();
- TreeItem *create_item(TreeItem *p_parent = 0);
+ TreeItem *create_item(TreeItem *p_parent = 0, int p_idx = -1);
TreeItem *get_root();
TreeItem *get_last_item();
diff --git a/scene/main/node.cpp b/scene/main/node.cpp
index efc5d269a6..942a6d5428 100644
--- a/scene/main/node.cpp
+++ b/scene/main/node.cpp
@@ -340,7 +340,8 @@ void Node::move_child(Node *p_child, int p_pos) {
data.children[i]->notification(NOTIFICATION_MOVED_IN_PARENT);
}
for (const Map<StringName, GroupData>::Element *E = p_child->data.grouped.front(); E; E = E->next()) {
- E->get().group->changed = true;
+ if (E->get().group)
+ E->get().group->changed = true;
}
data.blocked--;
@@ -2110,6 +2111,7 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const
StringName script_property_name = CoreStringNames::get_singleton()->_script;
+ List<const Node *> hidden_roots;
List<const Node *> node_tree;
node_tree.push_front(this);
@@ -2120,11 +2122,16 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const
for (List<const Node *>::Element *N = node_tree.front(); N; N = N->next()) {
for (int i = 0; i < N->get()->get_child_count(); ++i) {
+ Node *descendant = N->get()->get_child(i);
// Skip nodes not really belonging to the instanced hierarchy; they'll be processed normally later
- if (N->get()->get_child(i)->data.owner != this)
+ // but remember non-instanced nodes that are hidden below instanced ones
+ if (descendant->data.owner != this) {
+ if (descendant->get_parent() && descendant->get_parent() != this && descendant->get_parent()->data.owner == this)
+ hidden_roots.push_back(descendant);
continue;
+ }
- node_tree.push_back(N->get()->get_child(i));
+ node_tree.push_back(descendant);
}
}
}
@@ -2156,7 +2163,7 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const
Variant value = N->get()->get(name);
// Duplicate dictionaries and arrays, mainly needed for __meta__
if (value.get_type() == Variant::DICTIONARY) {
- value = Dictionary(value).copy();
+ value = Dictionary(value).duplicate();
} else if (value.get_type() == Variant::ARRAY) {
value = Array(value).duplicate();
}
@@ -2201,6 +2208,34 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const
}
node->add_child(dup);
+ if (i < node->get_child_count() - 1) {
+ node->move_child(dup, i);
+ }
+ }
+
+ for (List<const Node *>::Element *E = hidden_roots.front(); E; E = E->next()) {
+
+ Node *parent = node->get_node(get_path_to(E->get()->data.parent));
+ if (!parent) {
+
+ memdelete(node);
+ return NULL;
+ }
+
+ Node *dup = E->get()->_duplicate(p_flags, r_duplimap);
+ if (!dup) {
+
+ memdelete(node);
+ return NULL;
+ }
+
+ parent->add_child(dup);
+ int pos = E->get()->get_position_in_parent();
+
+ if (pos < parent->get_child_count() - 1) {
+
+ parent->move_child(dup, pos);
+ }
}
return node;
@@ -2269,7 +2304,7 @@ void Node::_duplicate_and_reown(Node *p_new_parent, const Map<Node *, Node *> &p
Variant value = get(name);
// Duplicate dictionaries and arrays, mainly needed for __meta__
if (value.get_type() == Variant::DICTIONARY) {
- value = Dictionary(value).copy();
+ value = Dictionary(value).duplicate();
} else if (value.get_type() == Variant::ARRAY) {
value = Array(value).duplicate();
}
diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp
index deb40800bc..db39b37bd5 100644
--- a/scene/main/scene_tree.cpp
+++ b/scene/main/scene_tree.cpp
@@ -38,6 +38,7 @@
#include "os/os.h"
#include "print_string.h"
#include "project_settings.h"
+#include "scene/resources/dynamic_font.h"
#include "scene/resources/material.h"
#include "scene/resources/mesh.h"
#include "scene/resources/packed_scene.h"
@@ -390,13 +391,12 @@ void SceneTree::input_event(const Ref<InputEvent> &p_event) {
if (Engine::get_singleton()->is_editor_hint() && (Object::cast_to<InputEventJoypadButton>(p_event.ptr()) || Object::cast_to<InputEventJoypadMotion>(*p_event)))
return; //avoid joy input on editor
+ current_event++;
root_lock++;
- //last_id=p_event.ID;
input_handled = false;
Ref<InputEvent> ev = p_event;
- ev->set_id(++last_id); //this should work better
MainLoop::input_event(ev);
@@ -495,6 +495,11 @@ bool SceneTree::idle(float p_time) {
Size2 win_size = Size2(OS::get_singleton()->get_video_mode().width, OS::get_singleton()->get_video_mode().height);
if (win_size != last_screen_size) {
+ if (use_font_oversampling) {
+ DynamicFontAtSize::font_oversampling = OS::get_singleton()->get_window_size().width / root->get_visible_rect().size.width;
+ DynamicFont::update_oversampling();
+ }
+
last_screen_size = win_size;
_update_root_rect();
@@ -935,11 +940,6 @@ void SceneMainLoop::_update_listener_2d() {
}
*/
-uint32_t SceneTree::get_last_event_id() const {
-
- return last_id;
-}
-
Variant SceneTree::_call_group_flags(const Variant **p_args, int p_argcount, Variant::CallError &r_error) {
r_error.error = Variant::CallError::CALL_OK;
@@ -988,6 +988,10 @@ int64_t SceneTree::get_frame() const {
return current_frame;
}
+int64_t SceneTree::get_event_count() const {
+
+ return current_event;
+}
Array SceneTree::_get_nodes_in_group(const StringName &p_group) {
@@ -2195,6 +2199,9 @@ void SceneTree::_bind_methods() {
ClassDB::bind_method(D_METHOD("_connection_failed"), &SceneTree::_connection_failed);
ClassDB::bind_method(D_METHOD("_server_disconnected"), &SceneTree::_server_disconnected);
+ ClassDB::bind_method(D_METHOD("set_use_font_oversampling", "enable"), &SceneTree::set_use_font_oversampling);
+ ClassDB::bind_method(D_METHOD("is_using_font_oversampling"), &SceneTree::is_using_font_oversampling);
+
ADD_SIGNAL(MethodInfo("tree_changed"));
ADD_SIGNAL(MethodInfo("node_added", PropertyInfo(Variant::OBJECT, "node")));
ADD_SIGNAL(MethodInfo("node_removed", PropertyInfo(Variant::OBJECT, "node")));
@@ -2244,6 +2251,20 @@ void SceneTree::add_idle_callback(IdleCallback p_callback) {
idle_callbacks[idle_callback_count++] = p_callback;
}
+void SceneTree::set_use_font_oversampling(bool p_oversampling) {
+
+ use_font_oversampling = p_oversampling;
+ if (use_font_oversampling) {
+ DynamicFontAtSize::font_oversampling = OS::get_singleton()->get_window_size().width / root->get_visible_rect().size.width;
+ } else {
+ DynamicFontAtSize::font_oversampling = 1.0;
+ }
+}
+
+bool SceneTree::is_using_font_oversampling() const {
+ return use_font_oversampling;
+}
+
SceneTree::SceneTree() {
singleton = this;
@@ -2264,9 +2285,10 @@ SceneTree::SceneTree() {
tree_version = 1;
physics_process_time = 1;
idle_process_time = 1;
- last_id = 1;
+
root = NULL;
current_frame = 0;
+ current_event = 0;
tree_changed_name = "tree_changed";
node_added_name = "node_added";
node_removed_name = "node_removed";
@@ -2327,7 +2349,7 @@ SceneTree::SceneTree() {
ProjectSettings::get_singleton()->set("rendering/environment/default_environment", "");
} else {
//file was erased, notify user.
- ERR_PRINTS(RTR("Default Environment as specified in Project Setings (Rendering -> Viewport -> Default Environment) could not be loaded."));
+ ERR_PRINTS(RTR("Default Environment as specified in Project Setings (Rendering -> Environment -> Default Environment) could not be loaded."));
}
}
}
@@ -2380,6 +2402,8 @@ SceneTree::SceneTree() {
last_send_cache_id = 1;
#endif
+
+ use_font_oversampling = false;
}
SceneTree::~SceneTree() {
diff --git a/scene/main/scene_tree.h b/scene/main/scene_tree.h
index 244fc8da62..3e2e74b553 100644
--- a/scene/main/scene_tree.h
+++ b/scene/main/scene_tree.h
@@ -109,7 +109,6 @@ private:
float idle_process_time;
bool accept_quit;
bool quit_on_go_back;
- uint32_t last_id;
#ifdef DEBUG_ENABLED
bool debug_collisions_hint;
@@ -122,12 +121,15 @@ private:
bool _quit;
bool initialized;
bool input_handled;
+
Size2 last_screen_size;
StringName tree_changed_name;
StringName node_added_name;
StringName node_removed_name;
+ bool use_font_oversampling;
int64_t current_frame;
+ int64_t current_event;
int node_count;
#ifdef TOOLS_ENABLED
@@ -323,7 +325,7 @@ public:
NOTIFICATION_TRANSFORM_CHANGED = 29
};
- enum CallGroupFlags {
+ enum GroupCallFlags {
GROUP_CALL_DEFAULT = 0,
GROUP_CALL_REVERSE = 1,
GROUP_CALL_REALTIME = 2,
@@ -333,8 +335,6 @@ public:
_FORCE_INLINE_ Viewport *get_root() const { return root; }
- uint32_t get_last_event_id() const;
-
void call_group_flags(uint32_t p_call_flags, const StringName &p_group, const StringName &p_function, VARIANT_ARG_LIST);
void notify_group_flags(uint32_t p_call_flags, const StringName &p_group, int p_notification);
void set_group_flags(uint32_t p_call_flags, const StringName &p_group, const String &p_name, const Variant &p_value);
@@ -410,6 +410,7 @@ public:
int get_collision_debug_contact_count() { return collision_debug_contacts; }
int64_t get_frame() const;
+ int64_t get_event_count() const;
int get_node_count() const;
@@ -420,6 +421,9 @@ public:
void set_screen_stretch(StretchMode p_mode, StretchAspect p_aspect, const Size2 p_minsize, real_t p_shrink = 1);
+ void set_use_font_oversampling(bool p_oversampling);
+ bool is_using_font_oversampling() const;
+
//void change_scene(const String& p_path);
//Node *get_loaded_scene();
@@ -462,6 +466,6 @@ public:
VARIANT_ENUM_CAST(SceneTree::StretchMode);
VARIANT_ENUM_CAST(SceneTree::StretchAspect);
-VARIANT_ENUM_CAST(SceneTree::CallGroupFlags);
+VARIANT_ENUM_CAST(SceneTree::GroupCallFlags);
#endif
diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp
index 4635de81e8..fa6a7832f5 100644
--- a/scene/main/viewport.cpp
+++ b/scene/main/viewport.cpp
@@ -184,7 +184,6 @@ Viewport::GUI::GUI() {
key_focus = NULL;
mouse_over = NULL;
- cancelled_input_ID = 0;
tooltip = NULL;
tooltip_popup = NULL;
tooltip_label = NULL;
@@ -1421,7 +1420,7 @@ void Viewport::_gui_show_tooltip() {
gui.tooltip_label->set_anchor_and_margin(MARGIN_TOP, Control::ANCHOR_BEGIN, ttp->get_margin(MARGIN_TOP));
gui.tooltip_label->set_anchor_and_margin(MARGIN_RIGHT, Control::ANCHOR_END, -ttp->get_margin(MARGIN_RIGHT));
gui.tooltip_label->set_anchor_and_margin(MARGIN_BOTTOM, Control::ANCHOR_END, -ttp->get_margin(MARGIN_BOTTOM));
- gui.tooltip_label->set_text(tooltip);
+ gui.tooltip_label->set_text(tooltip.strip_edges());
Rect2 r(gui.tooltip_pos + Point2(10, 10), gui.tooltip_label->get_combined_minimum_size() + ttp->get_minimum_size());
Rect2 vr = gui.tooltip_label->get_viewport_rect();
if (r.size.x + r.position.x > vr.size.x)
@@ -1620,9 +1619,6 @@ bool Viewport::_gui_drop(Control *p_at_control, Point2 p_at_pos, bool p_just_che
void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
- if (p_event->get_id() == gui.cancelled_input_ID) {
- return;
- }
//?
/*
if (!is_visible()) {
@@ -1640,7 +1636,7 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
if (mb->is_pressed()) {
Size2 pos = mpos;
- if (gui.mouse_focus && mb->get_button_index() != gui.mouse_focus_button) {
+ if (gui.mouse_focus && mb->get_button_index() != gui.mouse_focus_button && mb->get_button_index() == BUTTON_LEFT) {
//do not steal mouse focus and stuff
@@ -1659,6 +1655,7 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
//cancel event, sorry, modal exclusive EATS UP ALL
//alternative, you can't pop out a window the same frame it was made modal (fixes many issues)
get_tree()->set_input_as_handled();
+
return; // no one gets the event if exclusive NO ONE
}
@@ -1751,7 +1748,6 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
_gui_call_input(gui.mouse_focus, mb);
}
- get_tree()->call_group_flags(SceneTree::GROUP_CALL_REALTIME, "windows", "_cancel_input_ID", mb->get_id());
get_tree()->set_input_as_handled();
if (gui.drag_data.get_type() != Variant::NIL && mb->get_button_index() == BUTTON_LEFT) {
@@ -1807,21 +1803,23 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
pos = gui.focus_inv_xform.xform(pos);
mb->set_position(pos);
- if (gui.mouse_focus->can_process()) {
- _gui_call_input(gui.mouse_focus, mb);
- }
+ Control *mouse_focus = gui.mouse_focus;
+ //disable mouse focus if needed before calling input, this makes popups on mouse press event work better, as the release will never be received otherwise
if (mb->get_button_index() == gui.mouse_focus_button) {
gui.mouse_focus = NULL;
gui.mouse_focus_button = -1;
}
+ if (mouse_focus->can_process()) {
+ _gui_call_input(mouse_focus, mb);
+ }
+
/*if (gui.drag_data.get_type()!=Variant::NIL && mb->get_button_index()==BUTTON_LEFT) {
_propagate_viewport_notification(this,NOTIFICATION_DRAG_END);
gui.drag_data=Variant(); //always clear
}*/
- get_tree()->call_group_flags(SceneTree::GROUP_CALL_REALTIME, "windows", "_cancel_input_ID", mb->get_id());
get_tree()->set_input_as_handled();
}
}
@@ -2348,7 +2346,6 @@ void Viewport::_gui_control_grab_focus(Control *p_control) {
//no need for change
if (gui.key_focus && gui.key_focus == p_control)
return;
-
get_tree()->call_group_flags(SceneTree::GROUP_CALL_REALTIME, "_viewports", "_gui_remove_focus");
gui.key_focus = p_control;
p_control->notification(Control::NOTIFICATION_FOCUS_ENTER);
@@ -2370,6 +2367,21 @@ List<Control *>::Element *Viewport::_gui_show_modal(Control *p_control) {
else
p_control->_modal_set_prev_focus_owner(0);
+ if (gui.mouse_focus && !p_control->is_a_parent_of(gui.mouse_focus)) {
+ Ref<InputEventMouseButton> mb;
+ mb.instance();
+ mb->set_position(gui.mouse_focus->get_local_mouse_position());
+ mb->set_global_position(gui.mouse_focus->get_local_mouse_position());
+ mb->set_button_index(gui.mouse_focus_button);
+ mb->set_pressed(false);
+ gui.mouse_focus->call_multilevel(SceneStringNames::get_singleton()->_gui_input, mb);
+
+ //if (gui.mouse_over == gui.mouse_focus) {
+ // gui.mouse_focus->notification(Control::NOTIFICATION_MOUSE_EXIT);
+ //}
+ gui.mouse_focus = NULL;
+ }
+
return gui.modal_stack.back();
}
@@ -2886,7 +2898,7 @@ Viewport::Viewport() {
gui.canvas_sort_index = 0;
msaa = MSAA_DISABLED;
- hdr = false;
+ hdr = true;
usage = USAGE_3D;
debug_draw = DEBUG_DRAW_DISABLED;
diff --git a/scene/main/viewport.h b/scene/main/viewport.h
index 0835e3f69a..c084e348b5 100644
--- a/scene/main/viewport.h
+++ b/scene/main/viewport.h
@@ -269,7 +269,6 @@ private:
float tooltip_timer;
float tooltip_delay;
List<Control *> modal_stack;
- unsigned int cancelled_input_ID;
Transform2D focus_inv_xform;
bool subwindow_order_dirty;
List<Control *> subwindows;
diff --git a/scene/register_scene_types.cpp b/scene/register_scene_types.cpp
index 9715e1d6a0..0c8837ee1a 100644
--- a/scene/register_scene_types.cpp
+++ b/scene/register_scene_types.cpp
@@ -200,6 +200,9 @@ static ResourceFormatLoaderDynamicFont *resource_loader_dynamic_font = NULL;
static ResourceFormatLoaderStreamTexture *resource_loader_stream_texture = NULL;
+static ResourceFormatSaverShader *resource_saver_shader = NULL;
+static ResourceFormatLoaderShader *resource_loader_shader = NULL;
+
void register_scene_types() {
SceneStringNames::create();
@@ -268,11 +271,11 @@ void register_scene_types() {
ClassDB::register_class<Control>();
ClassDB::register_class<Button>();
ClassDB::register_class<Label>();
- ClassDB::register_class<ScrollBar>();
+ ClassDB::register_virtual_class<ScrollBar>();
ClassDB::register_class<HScrollBar>();
ClassDB::register_class<VScrollBar>();
ClassDB::register_class<ProgressBar>();
- ClassDB::register_class<Slider>();
+ ClassDB::register_virtual_class<Slider>();
ClassDB::register_class<HSlider>();
ClassDB::register_class<VSlider>();
ClassDB::register_class<Popup>();
@@ -283,7 +286,7 @@ void register_scene_types() {
ClassDB::register_class<ToolButton>();
ClassDB::register_class<LinkButton>();
ClassDB::register_class<Panel>();
- ClassDB::register_class<Range>();
+ ClassDB::register_virtual_class<Range>();
OS::get_singleton()->yield(); //may take time to init
@@ -542,6 +545,8 @@ void register_scene_types() {
ClassDB::register_class<DynamicFontData>();
ClassDB::register_class<DynamicFont>();
+ DynamicFont::initialize_dynamic_fonts();
+
ClassDB::register_virtual_class<StyleBox>();
ClassDB::register_class<StyleBoxEmpty>();
ClassDB::register_class<StyleBoxTexture>();
@@ -605,6 +610,12 @@ void register_scene_types() {
resource_loader_text = memnew(ResourceFormatLoaderText);
ResourceLoader::add_resource_format_loader(resource_loader_text, true);
+ resource_saver_shader = memnew(ResourceFormatSaverShader);
+ ResourceSaver::add_resource_format_saver(resource_saver_shader, true);
+
+ resource_loader_shader = memnew(ResourceFormatLoaderShader);
+ ResourceLoader::add_resource_format_loader(resource_loader_shader, true);
+
for (int i = 0; i < 20; i++) {
GLOBAL_DEF("layer_names/2d_render/layer_" + itos(i + 1), "");
GLOBAL_DEF("layer_names/2d_physics/layer_" + itos(i + 1), "");
@@ -621,6 +632,8 @@ void unregister_scene_types() {
memdelete(resource_loader_stream_texture);
memdelete(resource_loader_theme);
+ DynamicFont::finish_dynamic_fonts();
+
if (resource_saver_text) {
memdelete(resource_saver_text);
}
@@ -628,6 +641,13 @@ void unregister_scene_types() {
memdelete(resource_loader_text);
}
+ if (resource_saver_shader) {
+ memdelete(resource_saver_shader);
+ }
+ if (resource_loader_shader) {
+ memdelete(resource_loader_shader);
+ }
+
SpatialMaterial::finish_shaders();
ParticlesMaterial::finish_shaders();
CanvasItemMaterial::finish_shaders();
diff --git a/scene/resources/dynamic_font.cpp b/scene/resources/dynamic_font.cpp
index a40417f24d..66b1e49d13 100644
--- a/scene/resources/dynamic_font.cpp
+++ b/scene/resources/dynamic_font.cpp
@@ -191,10 +191,10 @@ Error DynamicFontAtSize::_load() {
ERR_FAIL_COND_V( error, ERR_INVALID_PARAMETER );
}*/
- error = FT_Set_Pixel_Sizes(face, 0, id.size);
+ error = FT_Set_Pixel_Sizes(face, 0, id.size * oversampling);
- ascent = face->size->metrics.ascender >> 6;
- descent = -face->size->metrics.descender >> 6;
+ ascent = (face->size->metrics.ascender >> 6) / oversampling;
+ descent = (-face->size->metrics.descender >> 6) / oversampling;
linegap = 0;
texture_flags = 0;
if (id.mipmaps)
@@ -208,6 +208,8 @@ Error DynamicFontAtSize::_load() {
return OK;
}
+float DynamicFontAtSize::font_oversampling = 1.0;
+
float DynamicFontAtSize::get_height() const {
return ascent + descent;
@@ -282,11 +284,11 @@ Size2 DynamicFontAtSize::get_char_size(CharType p_char, CharType p_next, const V
if (delta.x == 0)
continue;
- ret.x += delta.x >> 6;
+ ret.x += (delta.x >> 6) / oversampling;
break;
}
} else {
- ret.x += delta.x >> 6;
+ ret.x += (delta.x >> 6) / oversampling;
}
}
@@ -338,7 +340,7 @@ float DynamicFontAtSize::draw_char(RID p_canvas_item, const Point2 &p_pos, CharT
cpos.y += ch->v_align;
ERR_FAIL_COND_V(ch->texture_idx < -1 || ch->texture_idx >= fb->textures.size(), 0);
if (ch->texture_idx != -1)
- VisualServer::get_singleton()->canvas_item_add_texture_rect_region(p_canvas_item, Rect2(cpos, ch->rect.size), fb->textures[ch->texture_idx].texture->get_rid(), ch->rect, p_modulate, false, RID(), false);
+ VisualServer::get_singleton()->canvas_item_add_texture_rect_region(p_canvas_item, Rect2(cpos, ch->rect.size), fb->textures[ch->texture_idx].texture->get_rid(), ch->rect_uv, p_modulate, false, RID(), false);
advance = ch->advance;
used_fallback = true;
break;
@@ -360,7 +362,7 @@ float DynamicFontAtSize::draw_char(RID p_canvas_item, const Point2 &p_pos, CharT
cpos.y += c->v_align;
ERR_FAIL_COND_V(c->texture_idx < -1 || c->texture_idx >= textures.size(), 0);
if (c->texture_idx != -1)
- VisualServer::get_singleton()->canvas_item_add_texture_rect_region(p_canvas_item, Rect2(cpos, c->rect.size), textures[c->texture_idx].texture->get_rid(), c->rect, p_modulate, false, RID(), false);
+ VisualServer::get_singleton()->canvas_item_add_texture_rect_region(p_canvas_item, Rect2(cpos, c->rect.size), textures[c->texture_idx].texture->get_rid(), c->rect_uv, p_modulate, false, RID(), false);
advance = c->advance;
//textures[c->texture_idx].texture->draw(p_canvas_item,Vector2());
}
@@ -382,11 +384,11 @@ float DynamicFontAtSize::draw_char(RID p_canvas_item, const Point2 &p_pos, CharT
if (delta.x == 0)
continue;
- advance += delta.x >> 6;
+ advance += (delta.x >> 6) / oversampling;
break;
}
} else {
- advance += delta.x >> 6;
+ advance += (delta.x >> 6) / oversampling;
}
}
@@ -602,19 +604,37 @@ void DynamicFontAtSize::_update_char(CharType p_char) {
}
Character chr;
- chr.h_align = xofs;
- chr.v_align = ascent - yofs; // + ascent - descent;
- chr.advance = advance;
+ chr.h_align = xofs / oversampling;
+ chr.v_align = ascent - (yofs / oversampling); // + ascent - descent;
+ chr.advance = advance / oversampling;
chr.texture_idx = tex_index;
chr.found = true;
- chr.rect = Rect2(tex_x + rect_margin, tex_y + rect_margin, w, h);
+ chr.rect_uv = Rect2(tex_x + rect_margin, tex_y + rect_margin, w, h);
+ chr.rect = chr.rect_uv;
+ chr.rect.position /= oversampling;
+ chr.rect.size /= oversampling;
//print_line("CHAR: "+String::chr(p_char)+" TEX INDEX: "+itos(tex_index)+" RECT: "+chr.rect+" X OFS: "+itos(xofs)+" Y OFS: "+itos(yofs));
char_map[p_char] = chr;
}
+bool DynamicFontAtSize::update_oversampling() {
+ if (oversampling == font_oversampling)
+ return false;
+ if (!valid)
+ return false;
+
+ FT_Done_FreeType(library);
+ textures.clear();
+ char_map.clear();
+ oversampling = font_oversampling;
+ _load();
+
+ return true;
+}
+
DynamicFontAtSize::DynamicFontAtSize() {
valid = false;
@@ -623,6 +643,7 @@ DynamicFontAtSize::DynamicFontAtSize() {
descent = 1;
linegap = 1;
texture_flags = 0;
+ oversampling = font_oversampling;
}
DynamicFontAtSize::~DynamicFontAtSize() {
@@ -913,15 +934,52 @@ void DynamicFont::_bind_methods() {
BIND_ENUM_CONSTANT(SPACING_SPACE);
}
-DynamicFont::DynamicFont() {
+Mutex *DynamicFont::dynamic_font_mutex = NULL;
+
+SelfList<DynamicFont>::List DynamicFont::dynamic_fonts;
+
+DynamicFont::DynamicFont() :
+ font_list(this) {
spacing_top = 0;
spacing_bottom = 0;
spacing_char = 0;
spacing_space = 0;
+ if (dynamic_font_mutex)
+ dynamic_font_mutex->lock();
+ dynamic_fonts.add(&font_list);
+ if (dynamic_font_mutex)
+ dynamic_font_mutex->unlock();
}
DynamicFont::~DynamicFont() {
+
+ if (dynamic_font_mutex)
+ dynamic_font_mutex->lock();
+ dynamic_fonts.remove(&font_list);
+ if (dynamic_font_mutex)
+ dynamic_font_mutex->unlock();
+}
+
+void DynamicFont::initialize_dynamic_fonts() {
+ dynamic_font_mutex = Mutex::create();
+}
+
+void DynamicFont::finish_dynamic_fonts() {
+ memdelete(dynamic_font_mutex);
+ dynamic_font_mutex = NULL;
+}
+
+void DynamicFont::update_oversampling() {
+
+ SelfList<DynamicFont> *E = dynamic_fonts.first();
+ while (E) {
+
+ if (E->self()->data_at_size.is_valid() && E->self()->data_at_size->update_oversampling()) {
+ E->self()->emit_changed();
+ }
+ E = E->next();
+ }
}
/////////////////////////
diff --git a/scene/resources/dynamic_font.h b/scene/resources/dynamic_font.h
index 52c3f30590..b2452a6a0a 100644
--- a/scene/resources/dynamic_font.h
+++ b/scene/resources/dynamic_font.h
@@ -32,6 +32,7 @@
#ifdef FREETYPE_ENABLED
#include "io/resource_loader.h"
+#include "os/mutex.h"
#include "os/thread_safe.h"
#include "scene/resources/font.h"
@@ -97,10 +98,11 @@ class DynamicFontAtSize : public Reference {
FT_Face face; /* handle to face object */
FT_StreamRec stream;
- int ascent;
- int descent;
- int linegap;
- int rect_margin;
+ float ascent;
+ float descent;
+ float linegap;
+ float rect_margin;
+ float oversampling;
uint32_t texture_flags;
@@ -121,6 +123,7 @@ class DynamicFontAtSize : public Reference {
bool found;
int texture_idx;
Rect2 rect;
+ Rect2 rect_uv;
float v_align;
float h_align;
float advance;
@@ -145,8 +148,9 @@ class DynamicFontAtSize : public Reference {
static HashMap<String, Vector<uint8_t> > _fontdata;
Error _load();
-protected:
public:
+ static float font_oversampling;
+
float get_height() const;
float get_ascent() const;
@@ -157,6 +161,7 @@ public:
float draw_char(RID p_canvas_item, const Point2 &p_pos, CharType p_char, CharType p_next, const Color &p_modulate, const Vector<Ref<DynamicFontAtSize> > &p_fallbacks) const;
void set_texture_flags(uint32_t p_flags);
+ bool update_oversampling();
DynamicFontAtSize();
~DynamicFontAtSize();
@@ -232,6 +237,15 @@ public:
virtual float draw_char(RID p_canvas_item, const Point2 &p_pos, CharType p_char, CharType p_next = 0, const Color &p_modulate = Color(1, 1, 1)) const;
+ SelfList<DynamicFont> font_list;
+
+ static Mutex *dynamic_font_mutex;
+ static SelfList<DynamicFont>::List dynamic_fonts;
+
+ static void initialize_dynamic_fonts();
+ static void finish_dynamic_fonts();
+ static void update_oversampling();
+
DynamicFont();
~DynamicFont();
};
diff --git a/scene/resources/font.cpp b/scene/resources/font.cpp
index 2b44ea4554..8510669d6c 100644
--- a/scene/resources/font.cpp
+++ b/scene/resources/font.cpp
@@ -257,8 +257,8 @@ Error BitmapFont::create_from_fnt(const String &p_file) {
if (keys.has("file")) {
- String file = keys["file"];
- file = p_file.get_base_dir() + "/" + file;
+ String base_dir = p_file.get_base_dir();
+ String file = base_dir.plus_file(keys["file"]);
Ref<Texture> tex = ResourceLoader::load(file);
if (tex.is_null()) {
ERR_PRINT("Can't load font texture!");
diff --git a/scene/resources/material.cpp b/scene/resources/material.cpp
index 326320c60f..cc9fde58e2 100644
--- a/scene/resources/material.cpp
+++ b/scene/resources/material.cpp
@@ -753,7 +753,7 @@ void SpatialMaterial::_update_shader() {
if (features[FEATURE_REFRACTION] && !flags[FLAG_UV1_USE_TRIPLANAR]) { //refraction not supported with triplanar
if (features[FEATURE_NORMAL_MAPPING]) {
- code += "\tvec3 ref_normal = normalize( mix(NORMAL,TANGENT * NORMALMAP.x + BINORMAL * NORMALMAP.y + NORMAL * NORMALMAP.z,NORMALMAP_DEPTH) ) * SIDE;\n";
+ code += "\tvec3 ref_normal = normalize( mix(NORMAL,TANGENT * NORMALMAP.x + BINORMAL * NORMALMAP.y + NORMAL * NORMALMAP.z,NORMALMAP_DEPTH) );\n";
} else {
code += "\tvec3 ref_normal = NORMAL;\n";
}
diff --git a/scene/resources/mesh.cpp b/scene/resources/mesh.cpp
index bb33962be6..bf5f7bf039 100644
--- a/scene/resources/mesh.cpp
+++ b/scene/resources/mesh.cpp
@@ -1111,13 +1111,14 @@ Error ArrayMesh::lightmap_unwrap(const Transform &p_base_transform, float p_texe
for (int j = 0; j < vc; j++) {
Vector3 v = p_base_transform.xform(r[j]);
+ Vector3 n = p_base_transform.basis.xform(rn[j]).normalized();
vertices[(j + vertex_ofs) * 3 + 0] = v.x;
vertices[(j + vertex_ofs) * 3 + 1] = v.y;
vertices[(j + vertex_ofs) * 3 + 2] = v.z;
- normals[(j + vertex_ofs) * 3 + 0] = rn[j].x;
- normals[(j + vertex_ofs) * 3 + 1] = rn[j].y;
- normals[(j + vertex_ofs) * 3 + 2] = rn[j].z;
+ normals[(j + vertex_ofs) * 3 + 0] = n.x;
+ normals[(j + vertex_ofs) * 3 + 1] = n.y;
+ normals[(j + vertex_ofs) * 3 + 2] = n.z;
uv_index[j + vertex_ofs] = Pair<int, int>(i, j);
}
diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp
index 3a5cb7da2e..879f76e6d8 100644
--- a/scene/resources/packed_scene.cpp
+++ b/scene/resources/packed_scene.cpp
@@ -270,6 +270,8 @@ Node *SceneState::instance(GenEditState p_edit_state) const {
if (i > 0) {
if (parent) {
parent->_add_child_nocheck(node, snames[n.name]);
+ if (n.index >= 0 && n.index < parent->get_child_count() - 1)
+ parent->move_child(node, n.index);
} else {
//it may be possible that an instanced scene has changed
//and the node has nowhere to go anymore
@@ -386,6 +388,7 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map
nd.name = _nm_get_string(p_node->get_name(), name_map);
nd.instance = -1; //not instanced by default
+ nd.index = p_node->get_index();
// if this node is part of an instanced scene or sub-instanced scene
// we need to get the corresponding instance states.
@@ -1114,7 +1117,10 @@ void SceneState::set_bundled_scene(const Dictionary &p_dictionary) {
nd.parent = r[idx++];
nd.owner = r[idx++];
nd.type = r[idx++];
- nd.name = r[idx++];
+ uint32_t name_index = r[idx++];
+ nd.name = name_index & ((1 << NAME_INDEX_BITS) - 1);
+ nd.index = (name_index >> NAME_INDEX_BITS);
+ nd.index--; //0 is invaild, stored as 1
nd.instance = r[idx++];
nd.properties.resize(r[idx++]);
for (int j = 0; j < nd.properties.size(); j++) {
@@ -1206,7 +1212,11 @@ Dictionary SceneState::get_bundled_scene() const {
rnodes.push_back(nd.parent);
rnodes.push_back(nd.owner);
rnodes.push_back(nd.type);
- rnodes.push_back(nd.name);
+ uint32_t name_index = nd.name;
+ if (nd.index < (1 << (32 - NAME_INDEX_BITS)) - 1) { //save if less than 16k childs
+ name_index |= uint32_t(nd.index + 1) << NAME_INDEX_BITS; //for backwards compatibility, index 0 is no index
+ }
+ rnodes.push_back(name_index);
rnodes.push_back(nd.instance);
rnodes.push_back(nd.properties.size());
for (int j = 0; j < nd.properties.size(); j++) {
@@ -1284,6 +1294,11 @@ StringName SceneState::get_node_name(int p_idx) const {
return names[nodes[p_idx].name];
}
+int SceneState::get_node_index(int p_idx) const {
+ ERR_FAIL_INDEX_V(p_idx, nodes.size(), -1);
+ return nodes[p_idx].index;
+}
+
bool SceneState::is_node_instance_placeholder(int p_idx) const {
ERR_FAIL_INDEX_V(p_idx, nodes.size(), false);
@@ -1524,7 +1539,7 @@ int SceneState::add_node_path(const NodePath &p_path) {
node_paths.push_back(p_path);
return (node_paths.size() - 1) | FLAG_ID_IS_PATH;
}
-int SceneState::add_node(int p_parent, int p_owner, int p_type, int p_name, int p_instance) {
+int SceneState::add_node(int p_parent, int p_owner, int p_type, int p_name, int p_instance, int p_index) {
NodeData nd;
nd.parent = p_parent;
@@ -1532,6 +1547,7 @@ int SceneState::add_node(int p_parent, int p_owner, int p_type, int p_name, int
nd.type = p_type;
nd.name = p_name;
nd.instance = p_instance;
+ nd.index = p_index;
nodes.push_back(nd);
@@ -1605,6 +1621,7 @@ void SceneState::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_node_instance_placeholder", "idx"), &SceneState::get_node_instance_placeholder);
ClassDB::bind_method(D_METHOD("get_node_instance", "idx"), &SceneState::get_node_instance);
ClassDB::bind_method(D_METHOD("get_node_groups", "idx"), &SceneState::_get_node_groups);
+ ClassDB::bind_method(D_METHOD("get_node_index", "idx"), &SceneState::get_node_index);
ClassDB::bind_method(D_METHOD("get_node_property_count", "idx"), &SceneState::get_node_property_count);
ClassDB::bind_method(D_METHOD("get_node_property_name", "idx", "prop_idx"), &SceneState::get_node_property_name);
ClassDB::bind_method(D_METHOD("get_node_property_value", "idx", "prop_idx"), &SceneState::get_node_property_value);
diff --git a/scene/resources/packed_scene.h b/scene/resources/packed_scene.h
index 20bfb19b1f..70deea24ff 100644
--- a/scene/resources/packed_scene.h
+++ b/scene/resources/packed_scene.h
@@ -48,6 +48,8 @@ class SceneState : public Reference {
enum {
NO_PARENT_SAVED = 0x7FFFFFFF,
+ NAME_INDEX_BITS = 18,
+ NAME_MASK = (1 << NAME_INDEX_BITS) - 1,
};
struct NodeData {
@@ -57,6 +59,7 @@ class SceneState : public Reference {
int type;
int name;
int instance;
+ int index;
struct Property {
@@ -151,6 +154,7 @@ public:
String get_node_instance_placeholder(int p_idx) const;
bool is_node_instance_placeholder(int p_idx) const;
Vector<StringName> get_node_groups(int p_idx) const;
+ int get_node_index(int p_idx) const;
int get_node_property_count(int p_idx) const;
StringName get_node_property_name(int p_idx, int p_prop) const;
@@ -174,7 +178,7 @@ public:
int find_name(const StringName &p_name) const;
int add_value(const Variant &p_value);
int add_node_path(const NodePath &p_path);
- int add_node(int p_parent, int p_owner, int p_type, int p_name, int p_instance);
+ int add_node(int p_parent, int p_owner, int p_type, int p_name, int p_instance, int p_index);
void add_node_property(int p_node, int p_name, int p_value);
void add_node_group(int p_node, int p_group);
void set_base_scene(int p_idx);
diff --git a/scene/resources/room.h b/scene/resources/room.h
index aadee858c2..0e021cfcf7 100644
--- a/scene/resources/room.h
+++ b/scene/resources/room.h
@@ -36,7 +36,7 @@
@author Juan Linietsky <reduzio@gmail.com>
*/
-//left for reference but will be removed when portals are reimplemented using Area
+// FIXME: left for reference but will be removed when portals are reimplemented using Area
#if 0
class RoomBounds : public Resource {
diff --git a/scene/resources/scene_format_text.cpp b/scene/resources/scene_format_text.cpp
index aebbb5b562..7bf5f24269 100644
--- a/scene/resources/scene_format_text.cpp
+++ b/scene/resources/scene_format_text.cpp
@@ -198,6 +198,7 @@ Ref<PackedScene> ResourceInteractiveLoaderText::_parse_node_tag(VariantParser::R
int type = -1;
int name = -1;
int instance = -1;
+ int index = -1;
//int base_scene=-1;
if (next_tag.fields.has("name")) {
@@ -249,7 +250,11 @@ Ref<PackedScene> ResourceInteractiveLoaderText::_parse_node_tag(VariantParser::R
owner = 0; //if no owner, owner is root
}
- int node_id = packed_scene->get_state()->add_node(parent, owner, type, name, instance);
+ if (next_tag.fields.has("index")) {
+ index = next_tag.fields["index"];
+ }
+
+ int node_id = packed_scene->get_state()->add_node(parent, owner, type, name, instance, index);
if (next_tag.fields.has("groups")) {
@@ -1609,6 +1614,7 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r
StringName type = state->get_node_type(i);
StringName name = state->get_node_name(i);
+ int index = state->get_node_index(i);
NodePath path = state->get_node_path(i, true);
NodePath owner = state->get_node_owner_path(i);
Ref<PackedScene> instance = state->get_node_instance(i);
@@ -1626,6 +1632,9 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r
if (owner != NodePath() && owner != NodePath(".")) {
header += " owner=\"" + String(owner.simplified()) + "\"";
}
+ if (index >= 0) {
+ header += " index=\"" + itos(index) + "\"";
+ }
if (groups.size()) {
String sgroups = " groups=[\n";
diff --git a/scene/resources/shader.cpp b/scene/resources/shader.cpp
index 66df7dfda8..207c50f673 100644
--- a/scene/resources/shader.cpp
+++ b/scene/resources/shader.cpp
@@ -151,3 +151,80 @@ Shader::~Shader() {
VisualServer::get_singleton()->free(shader);
}
+////////////
+
+RES ResourceFormatLoaderShader::load(const String &p_path, const String &p_original_path, Error *r_error) {
+
+ if (r_error)
+ *r_error = ERR_FILE_CANT_OPEN;
+
+ Ref<Shader> shader;
+ shader.instance();
+
+ Vector<uint8_t> buffer = FileAccess::get_file_as_array(p_path);
+
+ String str;
+ str.parse_utf8((const char *)buffer.ptr(), buffer.size());
+
+ shader->set_code(str);
+
+ if (r_error)
+ *r_error = OK;
+
+ return shader;
+}
+
+void ResourceFormatLoaderShader::get_recognized_extensions(List<String> *p_extensions) const {
+
+ p_extensions->push_back("shader");
+}
+
+bool ResourceFormatLoaderShader::handles_type(const String &p_type) const {
+
+ return (p_type == "Shader");
+}
+
+String ResourceFormatLoaderShader::get_resource_type(const String &p_path) const {
+
+ String el = p_path.get_extension().to_lower();
+ if (el == "shader")
+ return "Shader";
+ return "";
+}
+
+Error ResourceFormatSaverShader::save(const String &p_path, const RES &p_resource, uint32_t p_flags) {
+
+ Ref<Shader> shader = p_resource;
+ ERR_FAIL_COND_V(shader.is_null(), ERR_INVALID_PARAMETER);
+
+ String source = shader->get_code();
+
+ Error err;
+ FileAccess *file = FileAccess::open(p_path, FileAccess::WRITE, &err);
+
+ if (err) {
+
+ ERR_FAIL_COND_V(err, err);
+ }
+
+ file->store_string(source);
+ if (file->get_error() != OK && file->get_error() != ERR_FILE_EOF) {
+ memdelete(file);
+ return ERR_CANT_CREATE;
+ }
+ file->close();
+ memdelete(file);
+
+ return OK;
+}
+
+void ResourceFormatSaverShader::get_recognized_extensions(const RES &p_resource, List<String> *p_extensions) const {
+
+ if (Object::cast_to<Shader>(*p_resource)) {
+ p_extensions->push_back("shader");
+ }
+}
+bool ResourceFormatSaverShader::recognize(const RES &p_resource) const {
+
+ return Object::cast_to<Shader>(*p_resource) != NULL;
+}
diff --git a/scene/resources/shader.h b/scene/resources/shader.h
index 5cc70629c7..78d73a33e2 100644
--- a/scene/resources/shader.h
+++ b/scene/resources/shader.h
@@ -31,6 +31,7 @@
#define SHADER_H
#include "io/resource_loader.h"
+#include "io/resource_saver.h"
#include "resource.h"
#include "scene/resources/texture.h"
@@ -38,7 +39,6 @@ class Shader : public Resource {
GDCLASS(Shader, Resource);
OBJ_SAVE_TYPE(Shader);
- RES_BASE_EXTENSION("shd");
public:
enum Mode {
@@ -95,4 +95,19 @@ public:
VARIANT_ENUM_CAST(Shader::Mode);
+class ResourceFormatLoaderShader : public ResourceFormatLoader {
+public:
+ virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL);
+ virtual void get_recognized_extensions(List<String> *p_extensions) const;
+ virtual bool handles_type(const String &p_type) const;
+ virtual String get_resource_type(const String &p_path) const;
+};
+
+class ResourceFormatSaverShader : public ResourceFormatSaver {
+public:
+ virtual Error save(const String &p_path, const RES &p_resource, uint32_t p_flags = 0);
+ virtual void get_recognized_extensions(const RES &p_resource, List<String> *p_extensions) const;
+ virtual bool recognize(const RES &p_resource) const;
+};
+
#endif // SHADER_H
diff --git a/scene/resources/texture.cpp b/scene/resources/texture.cpp
index 987d6c5f6a..35d0d55d85 100644
--- a/scene/resources/texture.cpp
+++ b/scene/resources/texture.cpp
@@ -707,6 +707,8 @@ Ref<Image> StreamTexture::get_data() const {
}
void StreamTexture::set_flags(uint32_t p_flags) {
+ flags = p_flags;
+ VS::get_singleton()->texture_set_flags(texture, flags);
}
void StreamTexture::reload_from_file() {
diff --git a/scene/resources/tile_set.cpp b/scene/resources/tile_set.cpp
index bd6b917d4e..144c208c07 100644
--- a/scene/resources/tile_set.cpp
+++ b/scene/resources/tile_set.cpp
@@ -893,8 +893,8 @@ void TileSet::clear() {
void TileSet::_bind_methods() {
ClassDB::bind_method(D_METHOD("create_tile", "id"), &TileSet::create_tile);
- ClassDB::bind_method(D_METHOD("autotile_set_bitmask_mode", "mode"), &TileSet::autotile_set_bitmask_mode);
- ClassDB::bind_method(D_METHOD("autotile_get_bitmask_mode"), &TileSet::autotile_get_bitmask_mode);
+ ClassDB::bind_method(D_METHOD("autotile_set_bitmask_mode", "id", "mode"), &TileSet::autotile_set_bitmask_mode);
+ ClassDB::bind_method(D_METHOD("autotile_get_bitmask_mode", "id"), &TileSet::autotile_get_bitmask_mode);
ClassDB::bind_method(D_METHOD("tile_set_name", "id", "name"), &TileSet::tile_set_name);
ClassDB::bind_method(D_METHOD("tile_get_name", "id"), &TileSet::tile_get_name);
ClassDB::bind_method(D_METHOD("tile_set_texture", "id", "texture"), &TileSet::tile_set_texture);
diff --git a/servers/arvr/arvr_positional_tracker.cpp b/servers/arvr/arvr_positional_tracker.cpp
index fc0270615c..fb97d5b86b 100644
--- a/servers/arvr/arvr_positional_tracker.cpp
+++ b/servers/arvr/arvr_positional_tracker.cpp
@@ -62,13 +62,15 @@ void ARVRPositionalTracker::_bind_methods() {
void ARVRPositionalTracker::set_type(ARVRServer::TrackerType p_type) {
if (type != p_type) {
type = p_type;
+ hand = ARVRPositionalTracker::TRACKER_HAND_UNKNOWN;
ARVRServer *arvr_server = ARVRServer::get_singleton();
ERR_FAIL_NULL(arvr_server);
// get a tracker id for our type
+ // note if this is a controller this will be 3 or higher but we may change it later.
tracker_id = arvr_server->get_free_tracker_id_for_type(p_type);
- }
+ };
};
ARVRServer::TrackerType ARVRPositionalTracker::get_type() const {
@@ -156,7 +158,24 @@ ARVRPositionalTracker::TrackerHand ARVRPositionalTracker::get_hand() const {
};
void ARVRPositionalTracker::set_hand(const ARVRPositionalTracker::TrackerHand p_hand) {
- hand = p_hand;
+ ARVRServer *arvr_server = ARVRServer::get_singleton();
+ ERR_FAIL_NULL(arvr_server);
+
+ if (hand != p_hand) {
+ // we can only set this if we've previously set this to be a controller!!
+ ERR_FAIL_COND((type != ARVRServer::TRACKER_CONTROLLER) && (p_hand != ARVRPositionalTracker::TRACKER_HAND_UNKNOWN));
+
+ hand = p_hand;
+ if (hand == ARVRPositionalTracker::TRACKER_LEFT_HAND) {
+ if (!arvr_server->is_tracker_id_in_use_for_type(type, 1)) {
+ tracker_id = 1;
+ };
+ } else if (hand == ARVRPositionalTracker::TRACKER_RIGHT_HAND) {
+ if (!arvr_server->is_tracker_id_in_use_for_type(type, 2)) {
+ tracker_id = 2;
+ };
+ };
+ };
};
Transform ARVRPositionalTracker::get_transform(bool p_adjust_by_reference_frame) const {
diff --git a/servers/arvr_server.cpp b/servers/arvr_server.cpp
index 1e73d6753c..df73040e1e 100644
--- a/servers/arvr_server.cpp
+++ b/servers/arvr_server.cpp
@@ -43,7 +43,7 @@ void ARVRServer::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_world_scale"), &ARVRServer::get_world_scale);
ClassDB::bind_method(D_METHOD("set_world_scale"), &ARVRServer::set_world_scale);
ClassDB::bind_method(D_METHOD("get_reference_frame"), &ARVRServer::get_reference_frame);
- ClassDB::bind_method(D_METHOD("center_on_hmd", "ignore_tilt", "keep_height"), &ARVRServer::center_on_hmd);
+ ClassDB::bind_method(D_METHOD("center_on_hmd", "rotation_mode", "keep_height"), &ARVRServer::center_on_hmd);
ADD_PROPERTY(PropertyInfo(Variant::REAL, "world_scale"), "set_world_scale", "get_world_scale");
@@ -63,6 +63,10 @@ void ARVRServer::_bind_methods() {
BIND_ENUM_CONSTANT(TRACKER_UNKNOWN);
BIND_ENUM_CONSTANT(TRACKER_ANY);
+ BIND_ENUM_CONSTANT(RESET_FULL_ROTATION);
+ BIND_ENUM_CONSTANT(RESET_BUT_KEEP_TILT);
+ BIND_ENUM_CONSTANT(DONT_RESET_ROTATION);
+
ADD_SIGNAL(MethodInfo("interface_added", PropertyInfo(Variant::STRING, "name")));
ADD_SIGNAL(MethodInfo("interface_removed", PropertyInfo(Variant::STRING, "name")));
@@ -96,7 +100,7 @@ Transform ARVRServer::get_reference_frame() const {
return reference_frame;
};
-void ARVRServer::center_on_hmd(bool p_ignore_tilt, bool p_keep_height) {
+void ARVRServer::center_on_hmd(RotationMode p_rotation_mode, bool p_keep_height) {
if (primary_interface != NULL) {
// clear our current reference frame or we'll end up double adjusting it
reference_frame = Transform();
@@ -105,7 +109,7 @@ void ARVRServer::center_on_hmd(bool p_ignore_tilt, bool p_keep_height) {
Transform new_reference_frame = primary_interface->get_transform_for_eye(ARVRInterface::EYE_MONO, Transform());
// remove our tilt
- if (p_ignore_tilt) {
+ if (p_rotation_mode == 1) {
// take the Y out of our Z
new_reference_frame.basis.set_axis(2, Vector3(new_reference_frame.basis.elements[0][2], 0.0, new_reference_frame.basis.elements[2][2]).normalized());
@@ -114,6 +118,9 @@ void ARVRServer::center_on_hmd(bool p_ignore_tilt, bool p_keep_height) {
// and X is our cross reference
new_reference_frame.basis.set_axis(0, new_reference_frame.basis.get_axis(1).cross(new_reference_frame.basis.get_axis(2)).normalized());
+ } else if (p_rotation_mode == 2) {
+ // remove our rotation, we're only interesting in centering on position
+ new_reference_frame.basis = Basis();
};
// don't negate our height
@@ -229,8 +236,12 @@ bool ARVRServer::is_tracker_id_in_use_for_type(TrackerType p_tracker_type, int p
};
int ARVRServer::get_free_tracker_id_for_type(TrackerType p_tracker_type) {
- // we start checking at 1, 0 means that it's not a controller..
- int tracker_id = 1;
+ // We start checking at 1, 0 means that it's not a controller..
+ // Note that for controller we reserve:
+ // - 1 for the left hand controller and
+ // - 2 for the right hand controller
+ // so we start at 3 :)
+ int tracker_id = p_tracker_type == ARVRServer::TRACKER_CONTROLLER ? 3 : 1;
while (is_tracker_id_in_use_for_type(p_tracker_type, tracker_id)) {
// try the next one
diff --git a/servers/arvr_server.h b/servers/arvr_server.h
index 9b84ee2e99..0381e6e533 100644
--- a/servers/arvr_server.h
+++ b/servers/arvr_server.h
@@ -68,6 +68,12 @@ public:
TRACKER_ANY = 0xff /* used by get_connected_trackers to return all types */
};
+ enum RotationMode {
+ RESET_FULL_ROTATION = 0, /* we reset the full rotation, regardless of how the HMD is oriented, we're looking dead ahead */
+ RESET_BUT_KEEP_TILT = 1, /* reset rotation but keep tilt. */
+ DONT_RESET_ROTATION = 2, /* don't reset the rotation, we will only center on position */
+ };
+
private:
Vector<Ref<ARVRInterface> > interfaces;
Vector<ARVRPositionalTracker *> trackers;
@@ -78,8 +84,6 @@ private:
Transform world_origin; /* our world origin point, maps a location in our virtual world to the origin point in our real world tracking volume */
Transform reference_frame; /* our reference frame */
- bool is_tracker_id_in_use_for_type(TrackerType p_tracker_type, int p_tracker_id) const;
-
protected:
static ARVRServer *singleton;
@@ -127,7 +131,7 @@ public:
and in the virtual world out of sync
*/
Transform get_reference_frame() const;
- void center_on_hmd(bool p_ignore_tilt, bool p_keep_height);
+ void center_on_hmd(RotationMode p_rotation_mode, bool p_keep_height);
/*
Interfaces are objects that 'glue' Godot to an AR or VR SDK such as the Oculus SDK, OpenVR, OpenHMD, etc.
@@ -150,9 +154,8 @@ public:
/*
Our trackers are objects that expose the orientation and position of physical devices such as controller, anchor points, etc.
They are created and managed by our active AR/VR interfaces.
-
- Note that for trackers that
*/
+ bool is_tracker_id_in_use_for_type(TrackerType p_tracker_type, int p_tracker_id) const;
int get_free_tracker_id_for_type(TrackerType p_tracker_type);
void add_tracker(ARVRPositionalTracker *p_tracker);
void remove_tracker(ARVRPositionalTracker *p_tracker);
@@ -167,5 +170,6 @@ public:
#define ARVR ARVRServer
VARIANT_ENUM_CAST(ARVRServer::TrackerType);
+VARIANT_ENUM_CAST(ARVRServer::RotationMode);
#endif
diff --git a/servers/audio/audio_stream.cpp b/servers/audio/audio_stream.cpp
index d7b2c2c5e0..6048c47347 100644
--- a/servers/audio/audio_stream.cpp
+++ b/servers/audio/audio_stream.cpp
@@ -76,7 +76,14 @@ void AudioStreamPlaybackResampled::mix(AudioFrame *p_buffer, float p_rate_scale,
internal_buffer[1] = internal_buffer[INTERNAL_BUFFER_LEN + 1];
internal_buffer[2] = internal_buffer[INTERNAL_BUFFER_LEN + 2];
internal_buffer[3] = internal_buffer[INTERNAL_BUFFER_LEN + 3];
- _mix_internal(internal_buffer + 4, INTERNAL_BUFFER_LEN);
+ if (is_playing()) {
+ _mix_internal(internal_buffer + 4, INTERNAL_BUFFER_LEN);
+ } else {
+ //fill with silence, not playing
+ for (int i = 0; i < INTERNAL_BUFFER_LEN; ++i) {
+ internal_buffer[i + 4] = AudioFrame(0, 0);
+ }
+ }
mix_offset -= (INTERNAL_BUFFER_LEN << FP_BITS);
}
}
diff --git a/servers/physics_2d_server.cpp b/servers/physics_2d_server.cpp
index dc58cd36dd..dad4711c07 100644
--- a/servers/physics_2d_server.cpp
+++ b/servers/physics_2d_server.cpp
@@ -654,6 +654,10 @@ void Physics2DServer::_bind_methods() {
BIND_ENUM_CONSTANT(JOINT_GROOVE);
BIND_ENUM_CONSTANT(JOINT_DAMPED_SPRING);
+ BIND_ENUM_CONSTANT(JOINT_PARAM_BIAS);
+ BIND_ENUM_CONSTANT(JOINT_PARAM_MAX_BIAS);
+ BIND_ENUM_CONSTANT(JOINT_PARAM_MAX_FORCE);
+
BIND_ENUM_CONSTANT(DAMPED_STRING_REST_LENGTH);
BIND_ENUM_CONSTANT(DAMPED_STRING_STIFFNESS);
BIND_ENUM_CONSTANT(DAMPED_STRING_DAMPING);
diff --git a/servers/visual/rasterizer.h b/servers/visual/rasterizer.h
index c5c225a40a..667a0f5742 100644
--- a/servers/visual/rasterizer.h
+++ b/servers/visual/rasterizer.h
@@ -473,6 +473,8 @@ public:
virtual RID particles_create() = 0;
virtual void particles_set_emitting(RID p_particles, bool p_emitting) = 0;
+ virtual bool particles_get_emitting(RID p_particles) = 0;
+
virtual void particles_set_amount(RID p_particles, int p_amount) = 0;
virtual void particles_set_lifetime(RID p_particles, float p_lifetime) = 0;
virtual void particles_set_one_shot(RID p_particles, bool p_one_shot) = 0;
diff --git a/servers/visual/shader_language.cpp b/servers/visual/shader_language.cpp
index e10a57c571..834505df9a 100644
--- a/servers/visual/shader_language.cpp
+++ b/servers/visual/shader_language.cpp
@@ -755,12 +755,12 @@ void ShaderLanguage::clear() {
}
}
-bool ShaderLanguage::_find_identifier(const BlockNode *p_block, const Map<StringName, DataType> &p_builtin_types, const StringName &p_identifier, DataType *r_data_type, IdentifierType *r_type) {
+bool ShaderLanguage::_find_identifier(const BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types, const StringName &p_identifier, DataType *r_data_type, IdentifierType *r_type) {
if (p_builtin_types.has(p_identifier)) {
if (r_data_type) {
- *r_data_type = p_builtin_types[p_identifier];
+ *r_data_type = p_builtin_types[p_identifier].type;
}
if (r_type) {
*r_type = IDENTIFIER_BUILTIN_VAR;
@@ -1897,62 +1897,6 @@ bool ShaderLanguage::_validate_function_call(BlockNode *p_block, OperatorNode *p
return false;
}
-#if 0
- if (found_builtin) {
-
- if (p_func->op==OP_CONSTRUCT && all_const) {
-
-
- Vector<float> cdata;
- for(int i=0;i<argcount;i++) {
-
- Variant v = static_cast<ConstantNode*>(p_func->arguments[i+1])->value;
- switch(v.get_type()) {
-
- case Variant::REAL: cdata.push_back(v); break;
- case Variant::INT: cdata.push_back(v); break;
- case Variant::VECTOR2: { Vector2 v2=v; cdata.push_back(v2.x); cdata.push_back(v2.y); } break;
- case Variant::VECTOR3: { Vector3 v3=v; cdata.push_back(v3.x); cdata.push_back(v3.y); cdata.push_back(v3.z);} break;
- case Variant::PLANE: { Plane v4=v; cdata.push_back(v4.normal.x); cdata.push_back(v4.normal.y); cdata.push_back(v4.normal.z); cdata.push_back(v4.d); } break;
- default: ERR_FAIL_V(NULL);
-
- }
-
- }
-
- ConstantNode *cn = parser.create_node<ConstantNode>(p_func->parent);
- Variant data;
- switch(p_func->return_cache) {
- case TYPE_FLOAT: data = cdata[0]; break;
- case TYPE_VEC2:
- if (cdata.size()==1)
- data = Vector2(cdata[0],cdata[0]);
- else
- data = Vector2(cdata[0],cdata[1]);
-
- break;
- case TYPE_VEC3:
- if (cdata.size()==1)
- data = Vector3(cdata[0],cdata[0],cdata[0]);
- else
- data = Vector3(cdata[0],cdata[1],cdata[2]);
- break;
- case TYPE_VEC4:
- if (cdata.size()==1)
- data = Plane(cdata[0],cdata[0],cdata[0],cdata[0]);
- else
- data = Plane(cdata[0],cdata[1],cdata[2],cdata[3]);
- break;
- }
-
- cn->datatype=p_func->return_cache;
- cn->value=data;
- return cn;
-
- }
- return p_func;
- }
-#endif
// try existing functions..
StringName exclude_function;
@@ -2008,7 +1952,7 @@ bool ShaderLanguage::_validate_function_call(BlockNode *p_block, OperatorNode *p
return false;
}
-bool ShaderLanguage::_parse_function_arguments(BlockNode *p_block, const Map<StringName, DataType> &p_builtin_types, OperatorNode *p_func, int *r_complete_arg) {
+bool ShaderLanguage::_parse_function_arguments(BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types, OperatorNode *p_func, int *r_complete_arg) {
TkPos pos = _get_tkpos();
Token tk = _get_token();
@@ -2261,7 +2205,48 @@ bool ShaderLanguage::_get_completable_identifier(BlockNode *p_block, CompletionT
return false;
}
-ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, const Map<StringName, DataType> &p_builtin_types) {
+bool ShaderLanguage::_is_operator_assign(Operator p_op) const {
+ switch (p_op) {
+ case OP_ASSIGN:
+ case OP_ASSIGN_ADD:
+ case OP_ASSIGN_SUB:
+ case OP_ASSIGN_MUL:
+ case OP_ASSIGN_DIV:
+ case OP_ASSIGN_MOD:
+ case OP_ASSIGN_SHIFT_LEFT:
+ case OP_ASSIGN_SHIFT_RIGHT:
+ case OP_ASSIGN_BIT_AND:
+ case OP_ASSIGN_BIT_OR:
+ case OP_ASSIGN_BIT_XOR:
+ return true;
+ default:
+ return false;
+ }
+
+ return false;
+}
+
+bool ShaderLanguage::_validate_assign(Node *p_node, const Map<StringName, BuiltInInfo> &p_builtin_types) {
+
+ if (p_node->type == Node::TYPE_OPERATOR) {
+
+ OperatorNode *op = static_cast<OperatorNode *>(p_node);
+ if (op->type == OP_INDEX) {
+ return _validate_assign(op->arguments[0], p_builtin_types);
+ }
+ }
+
+ if (p_node->type == Node::TYPE_VARIABLE) {
+
+ VariableNode *var = static_cast<VariableNode *>(p_node);
+ if (p_builtin_types.has(var->name) && p_builtin_types[var->name].constant) {
+ return false; //ops not valid
+ }
+ }
+ return true;
+}
+
+ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types) {
Vector<Expression> expression;
//Vector<TokenType> operators;
@@ -2765,6 +2750,11 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
_set_error("Invalid base type for increment/decrement operator");
return NULL;
}
+
+ if (!_validate_assign(expr, p_builtin_types)) {
+ _set_error("Invalid use of increment/decrement operator in constant expression.");
+ return NULL;
+ }
expr = op;
} else {
@@ -2948,6 +2938,11 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
OperatorNode *op = alloc_node<OperatorNode>();
op->op = expression[i].op;
+ if ((op->op == OP_INCREMENT || op->op == OP_DECREMENT) && !_validate_assign(expression[i + 1].node, p_builtin_types)) {
+
+ _set_error("Can't use increment/decrement operator in constant expression.");
+ return NULL;
+ }
op->arguments.push_back(expression[i + 1].node);
expression[i].is_op = false;
@@ -3019,6 +3014,12 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons
ERR_FAIL_V(NULL);
}
+ if (_is_operator_assign(op->op) && !_validate_assign(expression[next_op - 1].node, p_builtin_types)) {
+
+ _set_error("Assignment to constant expression.");
+ return NULL;
+ }
+
if (expression[next_op + 1].is_op) {
// this is not invalid and can really appear
// but it becomes invalid anyway because no binary op
@@ -3142,7 +3143,7 @@ ShaderLanguage::Node *ShaderLanguage::_reduce_expression(BlockNode *p_block, Sha
return p_node;
}
-ShaderLanguage::Node *ShaderLanguage::_parse_and_reduce_expression(BlockNode *p_block, const Map<StringName, DataType> &p_builtin_types) {
+ShaderLanguage::Node *ShaderLanguage::_parse_and_reduce_expression(BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types) {
ShaderLanguage::Node *expr = _parse_expression(p_block, p_builtin_types);
if (!expr) //errored
@@ -3153,7 +3154,7 @@ ShaderLanguage::Node *ShaderLanguage::_parse_and_reduce_expression(BlockNode *p_
return expr;
}
-Error ShaderLanguage::_parse_block(BlockNode *p_block, const Map<StringName, DataType> &p_builtin_types, bool p_just_one, bool p_can_break, bool p_can_continue) {
+Error ShaderLanguage::_parse_block(BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types, bool p_just_one, bool p_can_break, bool p_can_continue) {
while (true) {
@@ -3369,7 +3370,7 @@ Error ShaderLanguage::_parse_block(BlockNode *p_block, const Map<StringName, Dat
}
BlockNode *block = alloc_node<BlockNode>();
- block->parent_block = p_block;
+ block->parent_block = init_block;
cf->blocks.push_back(block);
p_block->statements.push_back(cf);
@@ -3636,7 +3637,7 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct
name = tk.text;
- if (_find_identifier(NULL, Map<StringName, DataType>(), name)) {
+ if (_find_identifier(NULL, Map<StringName, BuiltInInfo>(), name)) {
_set_error("Redefinition of '" + String(name) + "'");
return ERR_PARSE_ERROR;
}
@@ -3660,7 +3661,7 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct
tk = _get_token();
if (tk.type == TK_OP_ASSIGN) {
- Node *expr = _parse_and_reduce_expression(NULL, Map<StringName, DataType>());
+ Node *expr = _parse_and_reduce_expression(NULL, Map<StringName, BuiltInInfo>());
if (!expr)
return ERR_PARSE_ERROR;
if (expr->type != Node::TYPE_CONSTANT) {
@@ -3841,7 +3842,7 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct
return ERR_PARSE_ERROR;
}
- if (_find_identifier(NULL, Map<StringName, DataType>(), name)) {
+ if (_find_identifier(NULL, Map<StringName, BuiltInInfo>(), name)) {
_set_error("Redefinition of '" + String(name) + "'");
return ERR_PARSE_ERROR;
}
@@ -3852,7 +3853,7 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct
return ERR_PARSE_ERROR;
}
- Map<StringName, DataType> builtin_types;
+ Map<StringName, BuiltInInfo> builtin_types;
if (p_functions.has(name)) {
builtin_types = p_functions[name].built_ins;
}
@@ -4109,7 +4110,7 @@ Error ShaderLanguage::complete(const String &p_code, const Map<StringName, Funct
if (comp_ident && skip_function != StringName() && p_functions.has(skip_function)) {
- for (Map<StringName, DataType>::Element *E = p_functions[skip_function].built_ins.front(); E; E = E->next()) {
+ for (Map<StringName, BuiltInInfo>::Element *E = p_functions[skip_function].built_ins.front(); E; E = E->next()) {
matches.insert(E->key());
}
}
diff --git a/servers/visual/shader_language.h b/servers/visual/shader_language.h
index e092bf931f..4cf8560990 100644
--- a/servers/visual/shader_language.h
+++ b/servers/visual/shader_language.h
@@ -537,8 +537,18 @@ public:
static void get_keyword_list(List<String> *r_keywords);
static void get_builtin_funcs(List<String> *r_keywords);
+ struct BuiltInInfo {
+ DataType type;
+ bool constant;
+ BuiltInInfo() {}
+ BuiltInInfo(DataType p_type, bool p_constant = false) {
+ type = p_type;
+ constant = p_constant;
+ }
+ };
+
struct FunctionInfo {
- Map<StringName, DataType> built_ins;
+ Map<StringName, BuiltInInfo> built_ins;
bool can_discard;
};
@@ -601,7 +611,10 @@ private:
IDENTIFIER_BUILTIN_VAR,
};
- bool _find_identifier(const BlockNode *p_block, const Map<StringName, DataType> &p_builtin_types, const StringName &p_identifier, DataType *r_data_type = NULL, IdentifierType *r_type = NULL);
+ bool _find_identifier(const BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types, const StringName &p_identifier, DataType *r_data_type = NULL, IdentifierType *r_type = NULL);
+
+ bool _is_operator_assign(Operator p_op) const;
+ bool _validate_assign(Node *p_node, const Map<StringName, BuiltInInfo> &p_builtin_types);
bool _validate_operator(OperatorNode *p_op, DataType *r_ret_type = NULL);
@@ -625,14 +638,14 @@ private:
static const BuiltinFuncDef builtin_func_defs[];
bool _validate_function_call(BlockNode *p_block, OperatorNode *p_func, DataType *r_ret_type);
- bool _parse_function_arguments(BlockNode *p_block, const Map<StringName, DataType> &p_builtin_types, OperatorNode *p_func, int *r_complete_arg = NULL);
+ bool _parse_function_arguments(BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types, OperatorNode *p_func, int *r_complete_arg = NULL);
- Node *_parse_expression(BlockNode *p_block, const Map<StringName, DataType> &p_builtin_types);
+ Node *_parse_expression(BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types);
ShaderLanguage::Node *_reduce_expression(BlockNode *p_block, ShaderLanguage::Node *p_node);
- Node *_parse_and_reduce_expression(BlockNode *p_block, const Map<StringName, DataType> &p_builtin_types);
+ Node *_parse_and_reduce_expression(BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types);
- Error _parse_block(BlockNode *p_block, const Map<StringName, DataType> &p_builtin_types, bool p_just_one = false, bool p_can_break = false, bool p_can_continue = false);
+ Error _parse_block(BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types, bool p_just_one = false, bool p_can_break = false, bool p_can_continue = false);
Error _parse_shader(const Map<StringName, FunctionInfo> &p_functions, const Set<String> &p_render_modes, const Set<String> &p_shader_types);
diff --git a/servers/visual/shader_types.cpp b/servers/visual/shader_types.cpp
index 7489ca7e3e..96f981ab5e 100644
--- a/servers/visual/shader_types.cpp
+++ b/servers/visual/shader_types.cpp
@@ -45,6 +45,11 @@ const Set<String> &ShaderTypes::get_types() {
ShaderTypes *ShaderTypes::singleton = NULL;
+static ShaderLanguage::BuiltInInfo constt(ShaderLanguage::DataType p_type) {
+
+ return ShaderLanguage::BuiltInInfo(p_type, true);
+}
+
ShaderTypes::ShaderTypes() {
singleton = this;
@@ -58,32 +63,32 @@ ShaderTypes::ShaderTypes() {
shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["UV2"] = ShaderLanguage::TYPE_VEC2;
shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC4;
shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["POINT_SIZE"] = ShaderLanguage::TYPE_FLOAT;
- shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["INSTANCE_ID"] = ShaderLanguage::TYPE_INT;
- shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["INSTANCE_CUSTOM"] = ShaderLanguage::TYPE_VEC4;
+ shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["INSTANCE_ID"] = constt(ShaderLanguage::TYPE_INT);
+ shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["INSTANCE_CUSTOM"] = constt(ShaderLanguage::TYPE_VEC4);
shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["ROUGHNESS"] = ShaderLanguage::TYPE_FLOAT;
shader_modes[VS::SHADER_SPATIAL].functions["vertex"].can_discard = false;
//builtins
shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["WORLD_MATRIX"] = ShaderLanguage::TYPE_MAT4;
- shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["INV_CAMERA_MATRIX"] = ShaderLanguage::TYPE_MAT4;
- shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["CAMERA_MATRIX"] = ShaderLanguage::TYPE_MAT4;
+ shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["INV_CAMERA_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
+ shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["CAMERA_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["PROJECTION_MATRIX"] = ShaderLanguage::TYPE_MAT4;
shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["MODELVIEW_MATRIX"] = ShaderLanguage::TYPE_MAT4;
shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["INV_PROJECTION_MATRIX"] = ShaderLanguage::TYPE_MAT4;
- shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["TIME"] = ShaderLanguage::TYPE_FLOAT;
- shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["VIEWPORT_SIZE"] = ShaderLanguage::TYPE_VEC2;
+ shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT);
+ shader_modes[VS::SHADER_SPATIAL].functions["vertex"].built_ins["VIEWPORT_SIZE"] = constt(ShaderLanguage::TYPE_VEC2);
- shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["VERTEX"] = ShaderLanguage::TYPE_VEC3;
- shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["FRAGCOORD"] = ShaderLanguage::TYPE_VEC4;
- shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["FRONT_FACING"] = ShaderLanguage::TYPE_BOOL;
+ shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["VERTEX"] = constt(ShaderLanguage::TYPE_VEC3);
+ shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["FRAGCOORD"] = constt(ShaderLanguage::TYPE_VEC4);
+ shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["FRONT_FACING"] = constt(ShaderLanguage::TYPE_BOOL);
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["NORMAL"] = ShaderLanguage::TYPE_VEC3;
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["TANGENT"] = ShaderLanguage::TYPE_VEC3;
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["BINORMAL"] = ShaderLanguage::TYPE_VEC3;
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["NORMALMAP"] = ShaderLanguage::TYPE_VEC3;
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["NORMALMAP_DEPTH"] = ShaderLanguage::TYPE_FLOAT;
- shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["UV"] = ShaderLanguage::TYPE_VEC2;
- shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["UV2"] = ShaderLanguage::TYPE_VEC2;
- shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC4;
+ shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["UV"] = constt(ShaderLanguage::TYPE_VEC2);
+ shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["UV2"] = constt(ShaderLanguage::TYPE_VEC2);
+ shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["COLOR"] = constt(ShaderLanguage::TYPE_VEC4);
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["ALBEDO"] = ShaderLanguage::TYPE_VEC3;
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["ALPHA"] = ShaderLanguage::TYPE_FLOAT;
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["METALLIC"] = ShaderLanguage::TYPE_FLOAT;
@@ -103,33 +108,32 @@ ShaderTypes::ShaderTypes() {
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["SCREEN_TEXTURE"] = ShaderLanguage::TYPE_SAMPLER2D;
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["DEPTH_TEXTURE"] = ShaderLanguage::TYPE_SAMPLER2D;
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["SCREEN_UV"] = ShaderLanguage::TYPE_VEC2;
- shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["POINT_COORD"] = ShaderLanguage::TYPE_VEC2;
- shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["SIDE"] = ShaderLanguage::TYPE_FLOAT;
+ shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["POINT_COORD"] = constt(ShaderLanguage::TYPE_VEC2);
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["ALPHA_SCISSOR"] = ShaderLanguage::TYPE_FLOAT;
- shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["WORLD_MATRIX"] = ShaderLanguage::TYPE_MAT4;
- shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["INV_CAMERA_MATRIX"] = ShaderLanguage::TYPE_MAT4;
- shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["PROJECTION_MATRIX"] = ShaderLanguage::TYPE_MAT4;
- shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["INV_PROJECTION_MATRIX"] = ShaderLanguage::TYPE_MAT4;
- shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["TIME"] = ShaderLanguage::TYPE_FLOAT;
- shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["VIEWPORT_SIZE"] = ShaderLanguage::TYPE_VEC2;
+ shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["WORLD_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
+ shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["INV_CAMERA_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
+ shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
+ shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["INV_PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
+ shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT);
+ shader_modes[VS::SHADER_SPATIAL].functions["fragment"].built_ins["VIEWPORT_SIZE"] = constt(ShaderLanguage::TYPE_VEC2);
shader_modes[VS::SHADER_SPATIAL].functions["fragment"].can_discard = true;
- shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["WORLD_MATRIX"] = ShaderLanguage::TYPE_MAT4;
- shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["INV_CAMERA_MATRIX"] = ShaderLanguage::TYPE_MAT4;
- shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["PROJECTION_MATRIX"] = ShaderLanguage::TYPE_MAT4;
- shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["INV_PROJECTION_MATRIX"] = ShaderLanguage::TYPE_MAT4;
- shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["TIME"] = ShaderLanguage::TYPE_FLOAT;
- shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["VIEWPORT_SIZE"] = ShaderLanguage::TYPE_VEC2;
-
- shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["NORMAL"] = ShaderLanguage::TYPE_VEC3;
- shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["VIEW"] = ShaderLanguage::TYPE_VEC3;
- shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["LIGHT"] = ShaderLanguage::TYPE_VEC3;
- shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["LIGHT_COLOR"] = ShaderLanguage::TYPE_VEC3;
- shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["ATTENUATION"] = ShaderLanguage::TYPE_VEC3;
- shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["ALBEDO"] = ShaderLanguage::TYPE_VEC3;
- shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["TRANSMISSION"] = ShaderLanguage::TYPE_VEC3;
- shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["ROUGHNESS"] = ShaderLanguage::TYPE_FLOAT;
+ shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["WORLD_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
+ shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["INV_CAMERA_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
+ shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
+ shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["INV_PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
+ shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT);
+ shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["VIEWPORT_SIZE"] = constt(ShaderLanguage::TYPE_VEC2);
+
+ shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["NORMAL"] = constt(ShaderLanguage::TYPE_VEC3);
+ shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["VIEW"] = constt(ShaderLanguage::TYPE_VEC3);
+ shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["LIGHT"] = constt(ShaderLanguage::TYPE_VEC3);
+ shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["LIGHT_COLOR"] = constt(ShaderLanguage::TYPE_VEC3);
+ shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["ATTENUATION"] = constt(ShaderLanguage::TYPE_VEC3);
+ shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["ALBEDO"] = constt(ShaderLanguage::TYPE_VEC3);
+ shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["TRANSMISSION"] = constt(ShaderLanguage::TYPE_VEC3);
+ shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["ROUGHNESS"] = constt(ShaderLanguage::TYPE_FLOAT);
shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["DIFFUSE_LIGHT"] = ShaderLanguage::TYPE_VEC3;
shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["SPECULAR_LIGHT"] = ShaderLanguage::TYPE_VEC3;
@@ -177,38 +181,38 @@ ShaderTypes::ShaderTypes() {
shader_modes[VS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC4;
shader_modes[VS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["POINT_SIZE"] = ShaderLanguage::TYPE_FLOAT;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["WORLD_MATRIX"] = ShaderLanguage::TYPE_MAT4;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["PROJECTION_MATRIX"] = ShaderLanguage::TYPE_MAT4;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["EXTRA_MATRIX"] = ShaderLanguage::TYPE_MAT4;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["TIME"] = ShaderLanguage::TYPE_FLOAT;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["INSTANCE_CUSTOM"] = ShaderLanguage::TYPE_VEC4;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["AT_LIGHT_PASS"] = ShaderLanguage::TYPE_BOOL;
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["WORLD_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["PROJECTION_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["EXTRA_MATRIX"] = constt(ShaderLanguage::TYPE_MAT4);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["INSTANCE_CUSTOM"] = constt(ShaderLanguage::TYPE_VEC4);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["vertex"].built_ins["AT_LIGHT_PASS"] = constt(ShaderLanguage::TYPE_BOOL);
shader_modes[VS::SHADER_CANVAS_ITEM].functions["vertex"].can_discard = false;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["FRAGCOORD"] = ShaderLanguage::TYPE_VEC4;
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["FRAGCOORD"] = constt(ShaderLanguage::TYPE_VEC4);
shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["NORMAL"] = ShaderLanguage::TYPE_VEC3;
shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["NORMALMAP"] = ShaderLanguage::TYPE_VEC3;
shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["NORMALMAP_DEPTH"] = ShaderLanguage::TYPE_FLOAT;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["UV"] = ShaderLanguage::TYPE_VEC2;
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["UV"] = constt(ShaderLanguage::TYPE_VEC2);
shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC4;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["TEXTURE"] = ShaderLanguage::TYPE_SAMPLER2D;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["TEXTURE_PIXEL_SIZE"] = ShaderLanguage::TYPE_VEC2;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["NORMAL_TEXTURE"] = ShaderLanguage::TYPE_SAMPLER2D;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["SCREEN_UV"] = ShaderLanguage::TYPE_VEC2;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["SCREEN_PIXEL_SIZE"] = ShaderLanguage::TYPE_VEC2;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["POINT_COORD"] = ShaderLanguage::TYPE_VEC2;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["TIME"] = ShaderLanguage::TYPE_FLOAT;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["AT_LIGHT_PASS"] = ShaderLanguage::TYPE_BOOL;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["SCREEN_TEXTURE"] = ShaderLanguage::TYPE_SAMPLER2D;
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["TEXTURE"] = constt(ShaderLanguage::TYPE_SAMPLER2D);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["TEXTURE_PIXEL_SIZE"] = constt(ShaderLanguage::TYPE_VEC2);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["NORMAL_TEXTURE"] = constt(ShaderLanguage::TYPE_SAMPLER2D);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["SCREEN_UV"] = constt(ShaderLanguage::TYPE_VEC2);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["SCREEN_PIXEL_SIZE"] = constt(ShaderLanguage::TYPE_VEC2);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["POINT_COORD"] = constt(ShaderLanguage::TYPE_VEC2);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["AT_LIGHT_PASS"] = constt(ShaderLanguage::TYPE_BOOL);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].built_ins["SCREEN_TEXTURE"] = constt(ShaderLanguage::TYPE_SAMPLER2D);
shader_modes[VS::SHADER_CANVAS_ITEM].functions["fragment"].can_discard = true;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["POSITION"] = ShaderLanguage::TYPE_VEC2;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["NORMAL"] = ShaderLanguage::TYPE_VEC3;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["UV"] = ShaderLanguage::TYPE_VEC2;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["COLOR"] = ShaderLanguage::TYPE_VEC4;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["TEXTURE"] = ShaderLanguage::TYPE_SAMPLER2D;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["TEXTURE_PIXEL_SIZE"] = ShaderLanguage::TYPE_VEC2;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["SCREEN_UV"] = ShaderLanguage::TYPE_VEC2;
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["POSITION"] = constt(ShaderLanguage::TYPE_VEC2);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["NORMAL"] = constt(ShaderLanguage::TYPE_VEC3);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["UV"] = constt(ShaderLanguage::TYPE_VEC2);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["COLOR"] = constt(ShaderLanguage::TYPE_VEC4);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["TEXTURE"] = constt(ShaderLanguage::TYPE_SAMPLER2D);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["TEXTURE_PIXEL_SIZE"] = constt(ShaderLanguage::TYPE_VEC2);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["SCREEN_UV"] = constt(ShaderLanguage::TYPE_VEC2);
shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_VEC"] = ShaderLanguage::TYPE_VEC2;
shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_HEIGHT"] = ShaderLanguage::TYPE_FLOAT;
shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_COLOR"] = ShaderLanguage::TYPE_VEC4;
@@ -216,8 +220,8 @@ ShaderTypes::ShaderTypes() {
shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT_SHADOW"] = ShaderLanguage::TYPE_VEC4;
shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["LIGHT"] = ShaderLanguage::TYPE_VEC4;
shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["SHADOW"] = ShaderLanguage::TYPE_VEC4;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["POINT_COORD"] = ShaderLanguage::TYPE_VEC2;
- shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["TIME"] = ShaderLanguage::TYPE_FLOAT;
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["POINT_COORD"] = constt(ShaderLanguage::TYPE_VEC2);
+ shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT);
shader_modes[VS::SHADER_CANVAS_ITEM].functions["light"].can_discard = true;
shader_modes[VS::SHADER_CANVAS_ITEM].modes.insert("skip_vertex_transform");
@@ -237,16 +241,16 @@ ShaderTypes::ShaderTypes() {
shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["VELOCITY"] = ShaderLanguage::TYPE_VEC3;
shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["MASS"] = ShaderLanguage::TYPE_FLOAT;
shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["ACTIVE"] = ShaderLanguage::TYPE_BOOL;
- shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["RESTART"] = ShaderLanguage::TYPE_BOOL;
+ shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["RESTART"] = constt(ShaderLanguage::TYPE_BOOL);
shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["CUSTOM"] = ShaderLanguage::TYPE_VEC4;
shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["TRANSFORM"] = ShaderLanguage::TYPE_MAT4;
- shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["TIME"] = ShaderLanguage::TYPE_FLOAT;
- shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["LIFETIME"] = ShaderLanguage::TYPE_FLOAT;
- shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["DELTA"] = ShaderLanguage::TYPE_FLOAT;
- shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["NUMBER"] = ShaderLanguage::TYPE_UINT;
- shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["INDEX"] = ShaderLanguage::TYPE_INT;
- shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["EMISSION_TRANSFORM"] = ShaderLanguage::TYPE_MAT4;
- shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["RANDOM_SEED"] = ShaderLanguage::TYPE_UINT;
+ shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["TIME"] = constt(ShaderLanguage::TYPE_FLOAT);
+ shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["LIFETIME"] = constt(ShaderLanguage::TYPE_FLOAT);
+ shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["DELTA"] = constt(ShaderLanguage::TYPE_FLOAT);
+ shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["NUMBER"] = constt(ShaderLanguage::TYPE_UINT);
+ shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["INDEX"] = constt(ShaderLanguage::TYPE_INT);
+ shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["EMISSION_TRANSFORM"] = constt(ShaderLanguage::TYPE_MAT4);
+ shader_modes[VS::SHADER_PARTICLES].functions["vertex"].built_ins["RANDOM_SEED"] = constt(ShaderLanguage::TYPE_UINT);
shader_modes[VS::SHADER_PARTICLES].functions["vertex"].can_discard = false;
shader_modes[VS::SHADER_PARTICLES].modes.insert("billboard");
diff --git a/servers/visual/visual_server_canvas.cpp b/servers/visual/visual_server_canvas.cpp
index 0fed9cc961..532546c5fa 100644
--- a/servers/visual/visual_server_canvas.cpp
+++ b/servers/visual/visual_server_canvas.cpp
@@ -499,7 +499,6 @@ void VisualServerCanvas::canvas_item_add_multiline(RID p_item, const Vector<Poin
pline->antialiased = false; //todo
pline->multiline = true;
- // if (p_width <= 1) {
pline->lines = p_points;
pline->line_colors = p_colors;
if (pline->line_colors.size() == 0) {
@@ -507,66 +506,7 @@ void VisualServerCanvas::canvas_item_add_multiline(RID p_item, const Vector<Poin
} else if (pline->line_colors.size() > 1 && pline->line_colors.size() != pline->lines.size()) {
pline->line_colors.resize(1);
}
-#if 0
-//width not yet
- } else {
- //make a trianglestrip for drawing the line...
- Vector2 prev_t;
- pline->triangles.resize(p_points.size() * 2);
- if (p_antialiased) {
- pline->lines.resize(p_points.size() * 2);
- }
- if (p_colors.size() == 0) {
- pline->triangle_colors.push_back(Color(1, 1, 1, 1));
- if (p_antialiased) {
- pline->line_colors.push_back(Color(1, 1, 1, 1));
- }
- }
- if (p_colors.size() == 1) {
- pline->triangle_colors = p_colors;
- pline->line_colors = p_colors;
- } else {
- pline->triangle_colors.resize(pline->triangles.size());
- pline->line_colors.resize(pline->lines.size());
- }
-
- for (int i = 0; i < p_points.size(); i++) {
-
- Vector2 t;
- if (i == p_points.size() - 1) {
- t = prev_t;
- } else {
- t = (p_points[i + 1] - p_points[i]).normalized().tangent();
- if (i == 0) {
- prev_t = t;
- }
- }
-
- Vector2 tangent = ((t + prev_t).normalized()) * p_width * 0.5;
-
- if (p_antialiased) {
- pline->lines[i] = p_points[i] + tangent;
- pline->lines[p_points.size() * 2 - i - 1] = p_points[i] - tangent;
- if (pline->line_colors.size() > 1) {
- pline->line_colors[i] = p_colors[i];
- pline->line_colors[p_points.size() * 2 - i - 1] = p_colors[i];
- }
- }
-
- pline->triangles[i * 2 + 0] = p_points[i] + tangent;
- pline->triangles[i * 2 + 1] = p_points[i] - tangent;
-
- if (pline->triangle_colors.size() > 1) {
-
- pline->triangle_colors[i * 2 + 0] = p_colors[i];
- pline->triangle_colors[i * 2 + 1] = p_colors[i];
- }
-
- prev_t = t;
- }
- }
-#endif
canvas_item->rect_dirty = true;
canvas_item->commands.push_back(pline);
}
diff --git a/servers/visual/visual_server_raster.cpp b/servers/visual/visual_server_raster.cpp
index 6b527b5cd1..7bb7d04fcd 100644
--- a/servers/visual/visual_server_raster.cpp
+++ b/servers/visual/visual_server_raster.cpp
@@ -181,6 +181,10 @@ void VisualServerRaster::set_debug_generate_wireframes(bool p_generate) {
VSG::storage->set_debug_generate_wireframes(p_generate);
}
+void VisualServerRaster::call_set_use_vsync(bool p_enable) {
+ OS::get_singleton()->_set_use_vsync(p_enable);
+}
+
VisualServerRaster::VisualServerRaster() {
VSG::canvas = memnew(VisualServerCanvas);
diff --git a/servers/visual/visual_server_raster.h b/servers/visual/visual_server_raster.h
index a0e79e9d3e..9b19aa0eff 100644
--- a/servers/visual/visual_server_raster.h
+++ b/servers/visual/visual_server_raster.h
@@ -384,6 +384,7 @@ public:
BIND0R(RID, particles_create)
BIND2(particles_set_emitting, RID, bool)
+ BIND1R(bool, particles_get_emitting, RID)
BIND2(particles_set_amount, RID, int)
BIND2(particles_set_lifetime, RID, float)
BIND2(particles_set_one_shot, RID, bool)
@@ -668,6 +669,8 @@ public:
virtual bool has_os_feature(const String &p_feature) const;
virtual void set_debug_generate_wireframes(bool p_generate);
+ virtual void call_set_use_vsync(bool p_enable);
+
VisualServerRaster();
~VisualServerRaster();
diff --git a/servers/visual/visual_server_scene.h b/servers/visual/visual_server_scene.h
index 4b0c4af09d..689e06de93 100644
--- a/servers/visual/visual_server_scene.h
+++ b/servers/visual/visual_server_scene.h
@@ -69,34 +69,6 @@ public:
Portal() { enabled=true; disable_distance=50; disable_color=Color(); connect_range=0.8; }
};
-
- struct BakedLight {
-
- Rasterizer::BakedLightData data;
- PoolVector<int> sampler;
- AABB octree_aabb;
- Size2i octree_tex_size;
- Size2i light_tex_size;
-
- };
-
- struct BakedLightSampler {
-
- float params[BAKED_LIGHT_SAMPLER_MAX];
- int resolution;
- Vector<Vector3> dp_cache;
-
- BakedLightSampler() {
- params[BAKED_LIGHT_SAMPLER_STRENGTH]=1.0;
- params[BAKED_LIGHT_SAMPLER_ATTENUATION]=1.0;
- params[BAKED_LIGHT_SAMPLER_RADIUS]=1.0;
- params[BAKED_LIGHT_SAMPLER_DETAIL_RATIO]=0.1;
- resolution=16;
- }
- };
-
- void _update_baked_light_sampler_dp_cache(BakedLightSampler * blsamp);
-
#endif
/* CAMERA API */
diff --git a/servers/visual/visual_server_wrap_mt.cpp b/servers/visual/visual_server_wrap_mt.cpp
index b86a0ae3f6..e55b7a9309 100644
--- a/servers/visual/visual_server_wrap_mt.cpp
+++ b/servers/visual/visual_server_wrap_mt.cpp
@@ -158,9 +158,19 @@ void VisualServerWrapMT::finish() {
canvas_occluder_polygon_free_cached_ids();
}
+void VisualServerWrapMT::set_use_vsync_callback(bool p_enable) {
+
+ singleton_mt->call_set_use_vsync(p_enable);
+}
+
+VisualServerWrapMT *VisualServerWrapMT::singleton_mt = NULL;
+
VisualServerWrapMT::VisualServerWrapMT(VisualServer *p_contained, bool p_create_thread) :
command_queue(p_create_thread) {
+ singleton_mt = this;
+ OS::switch_vsync_function = set_use_vsync_callback; //as this goes to another thread, make sure it goes properly
+
visual_server = p_contained;
create_thread = p_create_thread;
thread = NULL;
diff --git a/servers/visual/visual_server_wrap_mt.h b/servers/visual/visual_server_wrap_mt.h
index cb6f67474e..a350cc1809 100644
--- a/servers/visual/visual_server_wrap_mt.h
+++ b/servers/visual/visual_server_wrap_mt.h
@@ -64,6 +64,8 @@ class VisualServerWrapMT : public VisualServer {
//#define DEBUG_SYNC
+ static VisualServerWrapMT *singleton_mt;
+
#ifdef DEBUG_SYNC
#define SYNC_DEBUG print_line("sync on: " + String(__FUNCTION__));
#else
@@ -315,6 +317,7 @@ public:
FUNCRID(particles)
FUNC2(particles_set_emitting, RID, bool)
+ FUNC1R(bool, particles_get_emitting, RID)
FUNC2(particles_set_amount, RID, int)
FUNC2(particles_set_lifetime, RID, float)
FUNC2(particles_set_one_shot, RID, bool)
@@ -584,6 +587,10 @@ public:
virtual bool has_feature(Features p_feature) const { return visual_server->has_feature(p_feature); }
virtual bool has_os_feature(const String &p_feature) const { return visual_server->has_os_feature(p_feature); }
+ FUNC1(call_set_use_vsync, bool)
+
+ static void set_use_vsync_callback(bool p_enable);
+
VisualServerWrapMT(VisualServer *p_contained, bool p_create_thread);
~VisualServerWrapMT();
diff --git a/servers/visual_server.cpp b/servers/visual_server.cpp
index 153cff2f22..42ecb82a46 100644
--- a/servers/visual_server.cpp
+++ b/servers/visual_server.cpp
@@ -1820,6 +1820,7 @@ void VisualServer::_bind_methods() {
BIND_ENUM_CONSTANT(INSTANCE_LIGHT);
BIND_ENUM_CONSTANT(INSTANCE_REFLECTION_PROBE);
BIND_ENUM_CONSTANT(INSTANCE_GI_PROBE);
+ BIND_ENUM_CONSTANT(INSTANCE_LIGHTMAP_CAPTURE);
BIND_ENUM_CONSTANT(INSTANCE_MAX);
BIND_ENUM_CONSTANT(INSTANCE_GEOMETRY_MASK);
@@ -1921,6 +1922,7 @@ VisualServer::VisualServer() {
//ERR_FAIL_COND(singleton);
singleton = this;
+
GLOBAL_DEF("rendering/vram_compression/import_s3tc", true);
GLOBAL_DEF("rendering/vram_compression/import_etc", false);
GLOBAL_DEF("rendering/vram_compression/import_etc2", true);
diff --git a/servers/visual_server.h b/servers/visual_server.h
index ad4d32b967..e45b18b066 100644
--- a/servers/visual_server.h
+++ b/servers/visual_server.h
@@ -504,6 +504,7 @@ public:
virtual RID particles_create() = 0;
virtual void particles_set_emitting(RID p_particles, bool p_emitting) = 0;
+ virtual bool particles_get_emitting(RID p_particles) = 0;
virtual void particles_set_amount(RID p_particles, int p_amount) = 0;
virtual void particles_set_lifetime(RID p_particles, float p_lifetime) = 0;
virtual void particles_set_one_shot(RID p_particles, bool p_one_shot) = 0;
@@ -751,7 +752,6 @@ public:
INSTANCE_GI_PROBE,
INSTANCE_LIGHTMAP_CAPTURE,
INSTANCE_MAX,
- /*INSTANCE_BAKED_LIGHT_SAMPLER,*/
INSTANCE_GEOMETRY_MASK = (1 << INSTANCE_MESH) | (1 << INSTANCE_MULTIMESH) | (1 << INSTANCE_IMMEDIATE) | (1 << INSTANCE_PARTICLES)
};
@@ -981,6 +981,8 @@ public:
virtual void set_debug_generate_wireframes(bool p_generate) = 0;
+ virtual void call_set_use_vsync(bool p_enable) = 0;
+
VisualServer();
virtual ~VisualServer();
};
diff --git a/thirdparty/README.md b/thirdparty/README.md
index 8c50081782..62690e21c7 100644
--- a/thirdparty/README.md
+++ b/thirdparty/README.md
@@ -365,6 +365,7 @@ Files extracted from upstream source:
- celt/ and silk/ subfolders
- COPYING
+
## pcre2
- Upstream: http://www.pcre.org/
@@ -378,6 +379,7 @@ Files extracted from upstream source:
- src/pcre2_jit_*.c and src/sljit/*
- AUTHORS and COPYING
+
## pvrtccompressor
- Upstream: https://bitbucket.org/jthlim/pvrtccompressor
@@ -389,12 +391,14 @@ Files extracted from upstream source:
- all .cpp and .h files apart from `main.cpp`
- LICENSE.TXT
+
## recastnavigation
- Upstream: https://github.com/recastnavigation/recastnavigation
- version: git commit ef3ea40f - 2016-02-06
- License: zlib
+
## rtaudio
- Upstream: http://www.music.mcgill.ca/~gary/rtaudio/
@@ -416,6 +420,10 @@ Files extracted from upstream source:
- all .cpp, .h and .inl files
+Important: Some files have Godot-made changes.
+They are marked with `// -- GODOT start --` and `// -- GODOT end --`
+comments and a patch is provided in the squish/ folder.
+
## tinyexr
diff --git a/thirdparty/squish/Add-Decompress-Bc5-to-Squish.patch b/thirdparty/squish/Add-Decompress-Bc5-to-Squish.patch
new file mode 100644
index 0000000000..1e06a8d318
--- /dev/null
+++ b/thirdparty/squish/Add-Decompress-Bc5-to-Squish.patch
@@ -0,0 +1,143 @@
+From 7b64cc4c8b0be0443741483bf65909f5140179c0 Mon Sep 17 00:00:00 2001
+From: Orkun <orkuntezerm@gmail.com>
+Date: Sun, 19 Nov 2017 02:24:31 +0300
+Subject: [PATCH] Fix #12220: Add Decompress Bc5 to Squish
+
+This Commit fixes the corrupted file preview described in #12220.
+Added DecompressColourBc5 function to squish.
+---
+ thirdparty/squish/colourblock.cpp | 85 +++++++++++++++++++++++++++++++++++++++
+ thirdparty/squish/colourblock.h | 3 ++
+ thirdparty/squish/squish.cpp | 8 +++-
+ 3 files changed, 95 insertions(+), 1 deletion(-)
+
+diff --git a/thirdparty/squish/colourblock.cpp b/thirdparty/squish/colourblock.cpp
+index af8b98036..3de46382c 100644
+--- a/thirdparty/squish/colourblock.cpp
++++ b/thirdparty/squish/colourblock.cpp
+@@ -211,4 +211,89 @@ void DecompressColour( u8* rgba, void const* block, bool isDxt1 )
+ }
+ }
+
++// -- Godot start --
++void DecompressColourBc5( u8* rgba, void const* block)
++{
++ // get the block bytes
++ u8 const* bytes = reinterpret_cast< u8 const* >( block );
++
++ // unpack the endpoints
++ u8 codes[16];
++ int red_0 = bytes[0];
++ int red_1 = bytes[1];
++
++ codes[0] = red_0;
++ codes[1] = red_1;
++ codes[6] = 0.0f;
++ codes[7] = 1.0f;
++ // generate the midpoints
++ if(red_0 > red_1)
++ {
++ for( int i = 2; i < 8; ++i )
++ {
++ codes[i] = ((8-i)*red_0 + (i-1)*red_1)/7;
++ }
++ }
++ else
++ {
++ for( int i = 2; i < 6; ++i )
++ {
++ codes[i] = ((6-i)*red_0 + (i-1)*red_1)/5;
++ }
++ }
++
++ int green_0 = bytes[8];
++ int green_1 = bytes[9];
++
++ codes[0 + 8] = green_0;
++ codes[1 + 8] = green_1;
++ codes[6 + 8] = 0.0f;
++ codes[7 + 8] = 1.0f;
++ // generate the midpoints
++ if(green_0 > green_1)
++ {
++ for( int i = 2; i < 8; ++i )
++ {
++ codes[i + 8] = ((8-i)*green_0 + (i-1)*green_1)/7;
++ }
++ }
++ else
++ {
++ for( int i = 2; i < 6; ++i )
++ {
++ codes[i + 8] = ((6-i)*green_0 + (i-1)*green_1)/5;
++ }
++ }
++
++ u8 indices[32];
++ for( int i = 0; i < 4; ++i )
++ {
++ u8 packed = bytes[2 + i];
++ u8* red_ind = indices + 4*i;
++
++ red_ind[0] = packed & 0x3;
++ red_ind[1] = ( packed >> 2 ) & 0x3;
++ red_ind[2] = ( packed >> 4 ) & 0x3;
++ red_ind[3] = ( packed >> 6 ) & 0x3;
++
++ packed = bytes[8 + i];
++ u8* green_ind = indices + 4*i + 16;
++ green_ind[0] = packed & 0x3;
++ green_ind[1] = ( packed >> 2 ) & 0x3;
++ green_ind[2] = ( packed >> 4 ) & 0x3;
++ green_ind[3] = ( packed >> 6 ) & 0x3;
++ }
++
++ // store out the colours
++ for( int i = 0; i < 16; ++i )
++ {
++ rgba[4*i] = codes[indices[i]];
++ rgba[4*i +1] = codes[indices[i + 16] + 8];
++ rgba[4*i +2] = 0;
++ rgba[4*i +3] = 255;
++ }
++}
++// -- GODOT end --
++
++
+ } // namespace squish
+diff --git a/thirdparty/squish/colourblock.h b/thirdparty/squish/colourblock.h
+index fee2cd7c5..3cb9b7e3b 100644
+--- a/thirdparty/squish/colourblock.h
++++ b/thirdparty/squish/colourblock.h
+@@ -35,6 +35,9 @@ void WriteColourBlock3( Vec3::Arg start, Vec3::Arg end, u8 const* indices, void*
+ void WriteColourBlock4( Vec3::Arg start, Vec3::Arg end, u8 const* indices, void* block );
+
+ void DecompressColour( u8* rgba, void const* block, bool isDxt1 );
++// -- GODOT start --
++void DecompressColourBc5( u8* rgba, void const* block );
++// -- GODOT end --
+
+ } // namespace squish
+
+diff --git a/thirdparty/squish/squish.cpp b/thirdparty/squish/squish.cpp
+index 1d22a64ad..fd11a147d 100644
+--- a/thirdparty/squish/squish.cpp
++++ b/thirdparty/squish/squish.cpp
+@@ -135,7 +135,13 @@ void Decompress( u8* rgba, void const* block, int flags )
+ colourBlock = reinterpret_cast< u8 const* >( block ) + 8;
+
+ // decompress colour
+- DecompressColour( rgba, colourBlock, ( flags & kDxt1 ) != 0 );
++ // -- GODOT start --
++ //DecompressColour( rgba, colourBlock, ( flags & kDxt1 ) != 0 );
++ if(( flags & ( kBc5 ) ) != 0)
++ DecompressColourBc5( rgba, colourBlock);
++ else
++ DecompressColour( rgba, colourBlock, ( flags & kDxt1 ) != 0 );
++ // -- GODOT end --
+
+ // decompress alpha separately if necessary
+ if( ( flags & kDxt3 ) != 0 )
+--
+2.13.6
+
diff --git a/thirdparty/squish/colourblock.cpp b/thirdparty/squish/colourblock.cpp
index af8b980365..3de46382c0 100644
--- a/thirdparty/squish/colourblock.cpp
+++ b/thirdparty/squish/colourblock.cpp
@@ -211,4 +211,89 @@ void DecompressColour( u8* rgba, void const* block, bool isDxt1 )
}
}
+// -- Godot start --
+void DecompressColourBc5( u8* rgba, void const* block)
+{
+ // get the block bytes
+ u8 const* bytes = reinterpret_cast< u8 const* >( block );
+
+ // unpack the endpoints
+ u8 codes[16];
+ int red_0 = bytes[0];
+ int red_1 = bytes[1];
+
+ codes[0] = red_0;
+ codes[1] = red_1;
+ codes[6] = 0.0f;
+ codes[7] = 1.0f;
+ // generate the midpoints
+ if(red_0 > red_1)
+ {
+ for( int i = 2; i < 8; ++i )
+ {
+ codes[i] = ((8-i)*red_0 + (i-1)*red_1)/7;
+ }
+ }
+ else
+ {
+ for( int i = 2; i < 6; ++i )
+ {
+ codes[i] = ((6-i)*red_0 + (i-1)*red_1)/5;
+ }
+ }
+
+ int green_0 = bytes[8];
+ int green_1 = bytes[9];
+
+ codes[0 + 8] = green_0;
+ codes[1 + 8] = green_1;
+ codes[6 + 8] = 0.0f;
+ codes[7 + 8] = 1.0f;
+ // generate the midpoints
+ if(green_0 > green_1)
+ {
+ for( int i = 2; i < 8; ++i )
+ {
+ codes[i + 8] = ((8-i)*green_0 + (i-1)*green_1)/7;
+ }
+ }
+ else
+ {
+ for( int i = 2; i < 6; ++i )
+ {
+ codes[i + 8] = ((6-i)*green_0 + (i-1)*green_1)/5;
+ }
+ }
+
+ u8 indices[32];
+ for( int i = 0; i < 4; ++i )
+ {
+ u8 packed = bytes[2 + i];
+ u8* red_ind = indices + 4*i;
+
+ red_ind[0] = packed & 0x3;
+ red_ind[1] = ( packed >> 2 ) & 0x3;
+ red_ind[2] = ( packed >> 4 ) & 0x3;
+ red_ind[3] = ( packed >> 6 ) & 0x3;
+
+ packed = bytes[8 + i];
+ u8* green_ind = indices + 4*i + 16;
+ green_ind[0] = packed & 0x3;
+ green_ind[1] = ( packed >> 2 ) & 0x3;
+ green_ind[2] = ( packed >> 4 ) & 0x3;
+ green_ind[3] = ( packed >> 6 ) & 0x3;
+ }
+
+ // store out the colours
+ for( int i = 0; i < 16; ++i )
+ {
+ rgba[4*i] = codes[indices[i]];
+ rgba[4*i +1] = codes[indices[i + 16] + 8];
+ rgba[4*i +2] = 0;
+ rgba[4*i +3] = 255;
+ }
+}
+// -- GODOT end --
+
+
} // namespace squish
diff --git a/thirdparty/squish/colourblock.h b/thirdparty/squish/colourblock.h
index fee2cd7c5d..3cb9b7e3b9 100644
--- a/thirdparty/squish/colourblock.h
+++ b/thirdparty/squish/colourblock.h
@@ -35,6 +35,9 @@ void WriteColourBlock3( Vec3::Arg start, Vec3::Arg end, u8 const* indices, void*
void WriteColourBlock4( Vec3::Arg start, Vec3::Arg end, u8 const* indices, void* block );
void DecompressColour( u8* rgba, void const* block, bool isDxt1 );
+// -- GODOT start --
+void DecompressColourBc5( u8* rgba, void const* block );
+// -- GODOT end --
} // namespace squish
diff --git a/thirdparty/squish/squish.cpp b/thirdparty/squish/squish.cpp
index 1d22a64ad6..fd11a147de 100644
--- a/thirdparty/squish/squish.cpp
+++ b/thirdparty/squish/squish.cpp
@@ -135,7 +135,13 @@ void Decompress( u8* rgba, void const* block, int flags )
colourBlock = reinterpret_cast< u8 const* >( block ) + 8;
// decompress colour
- DecompressColour( rgba, colourBlock, ( flags & kDxt1 ) != 0 );
+ // -- GODOT start --
+ //DecompressColour( rgba, colourBlock, ( flags & kDxt1 ) != 0 );
+ if(( flags & ( kBc5 ) ) != 0)
+ DecompressColourBc5( rgba, colourBlock);
+ else
+ DecompressColour( rgba, colourBlock, ( flags & kDxt1 ) != 0 );
+ // -- GODOT end --
// decompress alpha separately if necessary
if( ( flags & kDxt3 ) != 0 )
diff --git a/thirdparty/thekla_atlas/nvcore/Debug.cpp b/thirdparty/thekla_atlas/nvcore/Debug.cpp
index 81498c219e..4980ffa916 100644
--- a/thirdparty/thekla_atlas/nvcore/Debug.cpp
+++ b/thirdparty/thekla_atlas/nvcore/Debug.cpp
@@ -394,8 +394,10 @@ namespace
#pragma warning(disable:4748)
static NV_NOINLINE int backtrace(void * trace[], int maxcount) {
CONTEXT ctx = { 0 };
+// -- GODOT start --
#if NV_CPU_X86 && !NV_CPU_X86_64
ctx.ContextFlags = CONTEXT_CONTROL;
+#if NV_CC_MSVC
_asm {
call x
x: pop eax
@@ -404,6 +406,13 @@ namespace
mov ctx.Esp, esp
}
#else
+ register long unsigned int ebp asm("ebp");
+ ctx.Eip = (DWORD) __builtin_return_address(0);
+ ctx.Ebp = ebp;
+ ctx.Esp = (DWORD) __builtin_frame_address(0);
+#endif
+// -- GODOT end --
+#else
RtlCaptureContext(&ctx); // Not implemented correctly in x86.
#endif
diff --git a/thirdparty/thekla_atlas/nvmath/ftoi.h b/thirdparty/thekla_atlas/nvmath/ftoi.h
index bee15c0908..182c56d1c3 100644
--- a/thirdparty/thekla_atlas/nvmath/ftoi.h
+++ b/thirdparty/thekla_atlas/nvmath/ftoi.h
@@ -53,7 +53,10 @@ namespace nv
return (val<0) ? ftoi_ceil_xs(val) : ftoi_floor_xs(val);
}
-#if NV_CPU_X86 || NV_CPU_X86_64
+// -- GODOT start --
+//#if NV_CPU_X86 || NV_CPU_X86_64
+#if NV_USE_SSE
+// -- GODOT end --
NV_FORCEINLINE int ftoi_round_sse(float f) {
return _mm_cvt_ss2si(_mm_set_ss(f));
diff --git a/thirdparty/thekla_atlas/nvmath/nvmath.h b/thirdparty/thekla_atlas/nvmath/nvmath.h
index 695f452c1d..f2b69426e1 100644
--- a/thirdparty/thekla_atlas/nvmath/nvmath.h
+++ b/thirdparty/thekla_atlas/nvmath/nvmath.h
@@ -14,10 +14,12 @@
#include <float.h> // finite, isnan
#endif
-#if NV_CPU_X86 || NV_CPU_X86_64
- //#include <intrin.h>
- #include <xmmintrin.h>
-#endif
+// -- GODOT start --
+//#if NV_CPU_X86 || NV_CPU_X86_64
+// //#include <intrin.h>
+// #include <xmmintrin.h>
+//#endif
+// -- GODOT end --
@@ -65,6 +67,13 @@
#endif
+// -- GODOT start --
+#if NV_USE_SSE
+ //#include <intrin.h>
+ #include <xmmintrin.h>
+#endif
+// -- GODOT end --
+
#ifndef PI
#define PI float(3.1415926535897932384626433833)
diff --git a/thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.cpp b/thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.cpp
index 5ce452cb9e..fd37b8c59c 100644
--- a/thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.cpp
+++ b/thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.cpp
@@ -142,9 +142,11 @@ AtlasPacker::AtlasPacker(Atlas * atlas) : m_atlas(atlas), m_bitmap(256, 256)
{
m_width = 0;
m_height = 0;
-
- m_debug_bitmap.allocate(256, 256);
- m_debug_bitmap.fill(Color32(0,0,0,0));
+
+ // -- GODOT start --
+ //m_debug_bitmap.allocate(256, 256);
+ //m_debug_bitmap.fill(Color32(0,0,0,0));
+ // -- GODOT end --
}
AtlasPacker::~AtlasPacker()
@@ -597,8 +599,10 @@ void AtlasPacker::packCharts(int quality, float texelsPerUnit, bool blockAligned
m_bitmap.clearAll();
if (approximateExtent > m_bitmap.width()) {
m_bitmap.resize(approximateExtent, approximateExtent, false);
- m_debug_bitmap.resize(approximateExtent, approximateExtent);
- m_debug_bitmap.fill(Color32(0,0,0,0));
+ // -- GODOT start --
+ //m_debug_bitmap.resize(approximateExtent, approximateExtent);
+ //m_debug_bitmap.fill(Color32(0,0,0,0));
+ // -- GODOT end --
}
@@ -680,20 +684,24 @@ void AtlasPacker::packCharts(int quality, float texelsPerUnit, bool blockAligned
{
//nvDebug("Resize bitmap (%d, %d).\n", nextPowerOfTwo(w), nextPowerOfTwo(h));
m_bitmap.resize(nextPowerOfTwo(U32(w)), nextPowerOfTwo(U32(h)), false);
- m_debug_bitmap.resize(nextPowerOfTwo(U32(w)), nextPowerOfTwo(U32(h)));
+ // -- GODOT start --
+ //m_debug_bitmap.resize(nextPowerOfTwo(U32(w)), nextPowerOfTwo(U32(h)));
+ // -- GODOT end --
}
//nvDebug("Add chart at (%d, %d).\n", best_x, best_y);
addChart(&chart_bitmap, w, h, best_x, best_y, best_r, /*debugOutput=*/NULL);
+ // -- GODOT start --
// IC: Output chart again to debug bitmap.
- if (chart->isVertexMapped()) {
+ /*if (chart->isVertexMapped()) {
addChart(&chart_bitmap, w, h, best_x, best_y, best_r, &m_debug_bitmap);
}
else {
addChart(chart, w, h, best_x, best_y, best_r, &m_debug_bitmap);
- }
+ }*/
+ // -- GODOT end --
//float best_angle = 2 * PI * best_r;
@@ -842,8 +850,10 @@ void AtlasPacker::packCharts(int quality, float texelsPerUnit, bool blockAligned
nvCheck(isAligned(m_width, 4));
nvCheck(isAligned(m_height, 4));
- m_debug_bitmap.resize(m_width, m_height);
- m_debug_bitmap.setFormat(Image::Format_ARGB);
+ // -- GODOT start --
+ //m_debug_bitmap.resize(m_width, m_height);
+ //m_debug_bitmap.setFormat(Image::Format_ARGB);
+ // -- GODOT end --
#if DEBUG_OUTPUT
//outputDebugBitmap("debug_packer_final.tga", m_bitmap, w, h);
diff --git a/thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.h b/thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.h
index 2d305f38cd..845dbfb6f3 100644
--- a/thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.h
+++ b/thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.h
@@ -48,7 +48,9 @@ namespace nv
Atlas * m_atlas;
BitMap m_bitmap;
- Image m_debug_bitmap;
+ // -- GODOT start --
+ //Image m_debug_bitmap;
+ // -- GODOT end --
RadixSort m_radix;
uint m_width;
diff --git a/thirdparty/thekla_atlas/thekla/thekla_atlas.cpp b/thirdparty/thekla_atlas/thekla/thekla_atlas.cpp
index d6f0accf54..de1953db8a 100644
--- a/thirdparty/thekla_atlas/thekla/thekla_atlas.cpp
+++ b/thirdparty/thekla_atlas/thekla/thekla_atlas.cpp
@@ -2,6 +2,9 @@
#include "thekla_atlas.h"
#include <cfloat>
+// -- GODOT start --
+#include <stdio.h>
+// -- GODOT end --
#include "nvmesh/halfedge/Edge.h"
#include "nvmesh/halfedge/Mesh.h"
@@ -112,6 +115,8 @@ static Atlas_Output_Mesh * mesh_atlas_to_output(const HalfEdge::Mesh * mesh, con
output->index_count = face_count * 3;
output->index_array = new int[face_count * 3];
+ // -- GODOT start --
+ int face_ofs = 0;
// Set face indices.
for (int f = 0; f < face_count; f++) {
uint c = charts->faceChartAt(f);
@@ -121,14 +126,26 @@ static Atlas_Output_Mesh * mesh_atlas_to_output(const HalfEdge::Mesh * mesh, con
const Chart * chart = charts->chartAt(c);
nvDebugCheck(chart->faceAt(i) == f);
+ if (i >= chart->chartMesh()->faceCount()) {
+ printf("WARNING: Faces may be missing in the final vertex, which could not be packed\n");
+ continue;
+ }
+
const HalfEdge::Face * face = chart->chartMesh()->faceAt(i);
const HalfEdge::Edge * edge = face->edge;
- output->index_array[3*f+0] = vertexOffset + edge->vertex->id;
- output->index_array[3*f+1] = vertexOffset + edge->next->vertex->id;
- output->index_array[3*f+2] = vertexOffset + edge->next->next->vertex->id;
+ //output->index_array[3*f+0] = vertexOffset + edge->vertex->id;
+ //output->index_array[3*f+1] = vertexOffset + edge->next->vertex->id;
+ //output->index_array[3*f+2] = vertexOffset + edge->next->next->vertex->id;
+ output->index_array[3 * face_ofs + 0] = vertexOffset + edge->vertex->id;
+ output->index_array[3 * face_ofs + 1] = vertexOffset + edge->next->vertex->id;
+ output->index_array[3 * face_ofs + 2] = vertexOffset + edge->next->next->vertex->id;
+ face_ofs++;
}
+ output->index_count = face_ofs * 3;
+ // -- GODOT end --
+
*error = Atlas_Error_Success;
output->atlas_width = w;
output->atlas_height = h;